module Lakitu::Options
Constants
- DEFAULTS
- PROFILE_DEFAULTS
Public Class Methods
config_options()
click to toggle source
# File lib/lakitu/options.rb, line 29 def self.config_options return { } unless File.exist?(Lakitu::OPTIONS_FILE_PATH) deep_symbolize_keys(::YAML::load(File.read(Lakitu::OPTIONS_FILE_PATH)) || {}) end
default_config()
click to toggle source
# File lib/lakitu/options.rb, line 34 def self.default_config create_provider_defaults YAML.dump(deep_stringify_keys(options.to_h)) end
merge(arg)
click to toggle source
# File lib/lakitu/options.rb, line 25 def self.merge arg @@options = OpenStruct.new(options.to_h.merge arg) end
options()
click to toggle source
# File lib/lakitu/options.rb, line 14 def self.options unless @@options @@options = OpenStruct.new(DEFAULTS.merge config_options) end @@options end
options=(arg)
click to toggle source
# File lib/lakitu/options.rb, line 21 def self.options= arg @@options = arg ? OpenStruct.new(arg) : arg end
Private Class Methods
create_provider_defaults()
click to toggle source
# File lib/lakitu/options.rb, line 66 def self.create_provider_defaults options[:providers] ||= {} Lakitu::Provider.providers.each do |provider_class| provider_key = provider_class.name.downcase.split('::').last.to_sym next if options[:providers][provider_key] result = provider_class.new.profiles.inject({}) do |memo, profile| memo[profile.to_sym] = PROFILE_DEFAULTS.dup memo end options[:providers][provider_key] = result end end
deep_stringify_keys(object)
click to toggle source
# File lib/lakitu/options.rb, line 40 def self.deep_stringify_keys object case object when Hash object.each_with_object({}) do |(key, value), result| result[key.to_s] = deep_stringify_keys(value) end when Array object.map {|e| deep_stringify_keys(e) } else object end end
deep_symbolize_keys(object)
click to toggle source
# File lib/lakitu/options.rb, line 53 def self.deep_symbolize_keys object case object when Hash object.each_with_object({}) do |(key, value), result| result[key.to_sym] = deep_symbolize_keys(value) end when Array object.map {|e| deep_symbolize_keys(e) } else object end end