class Runner
Constants
- SCHEMA
Public Class Methods
new(config_file: nil)
click to toggle source
# File lib/runner.rb, line 8 def initialize(config_file: nil) default_file = File.join(Dir.home, '.drobot.yaml') @config_file = config_file || default_file @config = YAML.load_file(@config_file) JSON::Validator.validate!(SCHEMA, @config, insert_defaults: true) end
Public Instance Methods
drobots()
click to toggle source
# File lib/runner.rb, line 16 def drobots @drobots ||= @config['drobots'].map do |name, config| credential_provider = determine_provider(config['credentials']['type']).new(config['credentials']) determine_drobot(name).new(credential_provider) end end
run()
click to toggle source
# File lib/runner.rb, line 23 def run drobots.each(&:run) end
Private Instance Methods
determine_drobot(name)
click to toggle source
# File lib/runner.rb, line 29 def determine_drobot(name) drobot = Object.const_get("Drobots::#{name}") raise "#{name} doesn't inherit from Drobot" unless drobot <= Drobot drobot rescue NameError raise "unknown Drobot #{name}" end
determine_provider(name)
click to toggle source
# File lib/runner.rb, line 37 def determine_provider(name) provider_name = "Credentials::#{name}Provider" provider = Object.const_get(provider_name) rescue NameError raise "unknown Provider #{provider_name}" end