class Koine::TestRunner::Builder
Public Class Methods
new(arguments)
click to toggle source
# File lib/koine/test_runner/builder.rb, line 6 def initialize(arguments) initialize_from_yaml_config(arguments.config_file) end
Public Instance Methods
build()
click to toggle source
# File lib/koine/test_runner/builder.rb, line 10 def build TestRunner.new(@adapters) end
Private Instance Methods
build_adapter(config)
click to toggle source
# File lib/koine/test_runner/builder.rb, line 24 def build_adapter(config) adapter_name = config.delete('adapter') adapter_class = adapter_name if adapter_class.downcase == adapter_class.to_s adapter_class = "Koine::TestRunner::Adapters::#{classify(adapter_class)}" end unless Object.const_defined?(adapter_class) raise ArgumentError, "Cannot locate adapter #{adapter_name} => #{adapter_class}" end klass = Object.const_get(adapter_class) klass.new(**symbolize_keys(config)) end
classify(klass)
click to toggle source
# File lib/koine/test_runner/builder.rb, line 40 def classify(klass) klass.to_s.split('_').map(&:capitalize).join('') end
initialize_from_yaml_config(config_file)
click to toggle source
# File lib/koine/test_runner/builder.rb, line 16 def initialize_from_yaml_config(config_file) config = YAML.load_file(config_file) @adapters = config['adapters'].map do |adapter_config| build_adapter(adapter_config.last) end end
symbolize_keys(hash)
click to toggle source
# File lib/koine/test_runner/builder.rb, line 44 def symbolize_keys(hash) {}.tap do |new_hash| hash.each do |key, value| new_hash[key.to_sym] = value end end end