class HammerCLI::Defaults
Attributes
defaults_settings[R]
path[R]
Public Class Methods
new(settings, file_path = nil)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 11 def initialize(settings, file_path = nil) @defaults_settings = settings || {} @path = file_path || DEFAULT_FILE end
Public Instance Methods
add_defaults_to_conf(default_options, provider)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 31 def add_defaults_to_conf(default_options, provider) create_default_file if defaults_settings.empty? update_defaults_file do |defaults| default_options.each do |key, value| key = key.to_sym defaults.delete_if { |k,| defaults_match?(k, key) } defaults[key] = (value ? {:value => value,} : {:provider => provider}) end end end
defaults_set?(param)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 42 def defaults_set?(param) defaults_settings.keys.any? { |k| defaults_match?(k, param) } end
delete_default_from_conf(param)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 25 def delete_default_from_conf(param) update_defaults_file do |defaults| defaults.delete_if { |k,| defaults_match?(k, param) } end end
get_defaults(opt)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 46 def get_defaults(opt) option = opt option = opt.gsub("option_",'') if opt.include? "option_" unless defaults_settings.nil? option_key = defaults_settings[option.to_sym].nil? ? option.gsub('_','-').to_sym : option.to_sym return nil if defaults_settings[option_key].nil? if defaults_settings[option_key][:provider] providers[defaults_settings[option_key][:provider]].get_defaults(option.to_sym) else defaults_settings[option_key][:value] end end end
providers()
click to toggle source
# File lib/hammer_cli/defaults.rb, line 21 def providers @providers ||= {} end
register_provider(provider)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 17 def register_provider(provider) providers[provider.provider_name.to_s] = provider end
write_to_file(defaults)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 61 def write_to_file(defaults) File.open(path,'w') do |h| h.write defaults.to_yaml end end
Protected Instance Methods
create_default_file()
click to toggle source
# File lib/hammer_cli/defaults.rb, line 71 def create_default_file if Dir.exist?(File.dirname(@path)) new_file = File.new(path, "w") new_file.write ":defaults:" new_file.close else raise DefaultsPathError.new(_("Couldn't create %s please create the path before defaults are enabled.") % path) end end
update_defaults_file() { |conf_file| ... }
click to toggle source
# File lib/hammer_cli/defaults.rb, line 81 def update_defaults_file conf_file = YAML.load_file(@path) conf_file[:defaults] ||= {} yield conf_file[:defaults] write_to_file conf_file conf_file end
Private Instance Methods
defaults_match?(default_a, default_b)
click to toggle source
# File lib/hammer_cli/defaults.rb, line 91 def defaults_match?(default_a, default_b) default_a.to_s.gsub('-','_') == default_b.to_s.gsub('-','_') end