module KY::API

Constants

MissingParametersError

Public Class Methods

compile(config_or_secrets_path, secrets_or_config_path, output_dir, options={}) click to toggle source
# File lib/ky/api.rb, line 30
def self.compile(config_or_secrets_path, secrets_or_config_path, output_dir, options={})
  Compilation.new(options.with_indifferent_access).tap do |instance|
    config_or_secrets_path  ||= instance.configuration['config_path'] || instance.configuration['secret_path']
    secrets_or_config_path  ||= instance.configuration['secret_path'] || instance.configuration['config_path']
    output_dir ||= instance.configuration['output_dir']
    raise MissingParametersError unless config_or_secrets_path && secrets_or_config_path && output_dir && instance.configuration['procfile_path']
    input_input(config_or_secrets_path, secrets_or_config_path) do |input1, input2|
      instance.compile(input1, input2, output_dir)
    end
  end
end
decode(input_source, output_source) click to toggle source
# File lib/ky/api.rb, line 11
def self.decode(input_source, output_source)
  input_output(input_source, output_source) do |input_object, output_object|
    Manipulation.decode(output_object, input_object)
  end
end
encode(input_source, output_source) click to toggle source
# File lib/ky/api.rb, line 5
def self.encode(input_source, output_source)
  input_output(input_source, output_source) do |input_object, output_object|
    Manipulation.encode(output_object, input_object)
  end
end
env(input_source1, input_source2, output_source) click to toggle source
# File lib/ky/api.rb, line 24
def self.env(input_source1, input_source2, output_source)
  input_output(input_source1, output_source) do |input_object1, output_object|
    with(input_source2, 'r') {|input_object2| EnvGeneration.env(output_object, input_object1, input_object2) }
  end
end
merge(input_source1, input_source2, output_source) click to toggle source
# File lib/ky/api.rb, line 18
def self.merge(input_source1, input_source2, output_source)
  input_output(input_source1, output_source) do |input_object1, output_object|
    with(input_source2, 'r') {|input_object2| Manipulation.merge(output_object, input_object1, input_object2) }
  end
end

Private Class Methods

input_input(input1, input2) { |input_object1, input_object2| ... } click to toggle source
# File lib/ky/api.rb, line 48
def self.input_input(input1, input2)
  with(input1, 'r') {|input_object1| with(input2, 'r') { |input_object2| yield(input_object1, input_object2)  } }
end
input_output(input1, output1) { |input_object, output_object| ... } click to toggle source
# File lib/ky/api.rb, line 44
def self.input_output(input1, output1)
  with(input1, 'r') {|input_object| with(output1, 'w+') { |output_object| yield(input_object, output_object)  } }
end
with(output, mode) { |output| ... } click to toggle source
# File lib/ky/api.rb, line 52
def self.with(output, mode)
  if output.kind_of?(IO)
    yield output
  else
    open(output, mode) do |f|
      yield f
    end
  end
end