module Chronicle::ETL::Config

Utility methods to read, write, and access config files

Public Instance Methods

available_credentials() click to toggle source

Returns all available credentials available in ~/.config/chronilce/etl/credenetials/*.yml

# File lib/chronicle/etl/config.rb, line 34
def available_credentials
  job_directory = Runcom::Config.new('chronicle/etl/credentials').current
  Dir.glob(File.join(job_directory, "*.yml")).map do |filename|
    File.basename(filename, ".*")
  end
end
available_jobs() click to toggle source

Returns all jobs available in ~/.config/chronicle/etl/jobs/*.yml

# File lib/chronicle/etl/config.rb, line 26
def available_jobs
  job_directory = Runcom::Config.new('chronicle/etl/jobs').current
  Dir.glob(File.join(job_directory, "*.yml")).map do |filename|
    File.basename(filename, ".*")
  end
end
load(path) click to toggle source

Loads a yml config file

# File lib/chronicle/etl/config.rb, line 10
def load(path)
  config = Runcom::Config.new(path)
  # FIXME: hack to deeply symbolize keys
  JSON.parse(config.to_h.to_json, symbolize_names: true)
end
load_credentials(name) click to toggle source
# File lib/chronicle/etl/config.rb, line 48
def load_credentials(name)
  config = self.load("chronicle/etl/credentials/#{name}.yml")
end
load_job_from_config(job_name) click to toggle source

Load a job definition from job config directory

# File lib/chronicle/etl/config.rb, line 42
def load_job_from_config(job_name)
  definition = self.load("chronicle/etl/jobs/#{job_name}.yml")
  definition[:name] = job_name
  definition
end
write(path, data) click to toggle source

Writes a hash as a yml config file

# File lib/chronicle/etl/config.rb, line 17
def write(path, data)
  config = Runcom::Config.new(path)
  filename = config.all[0].to_s + '.yml'
  File.open(filename, 'w') do |f|
    f << data.to_yaml
  end
end