Class: HammerCLI::Defaults

Inherits:
Object
  • Object
show all
Defined in:
lib/hammer_cli/defaults.rb

Defined Under Namespace

Classes: DefaultsError, DefaultsPathError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings, file_path = nil) ⇒ Defaults

Returns a new instance of Defaults.



11
12
13
14
15
# File 'lib/hammer_cli/defaults.rb', line 11

def initialize(settings, file_path = nil)

  @defaults_settings = settings || {}
  @path = file_path || DEFAULT_FILE
end

Instance Attribute Details

#defaults_settingsObject (readonly)

Returns the value of attribute defaults_settings.



9
10
11
# File 'lib/hammer_cli/defaults.rb', line 9

def defaults_settings
  @defaults_settings
end

Instance Method Details

#add_defaults_to_conf(default_options, provider) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# 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) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# 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) ⇒ Object



25
26
27
28
29
# 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) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 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

#providersObject



21
22
23
# File 'lib/hammer_cli/defaults.rb', line 21

def providers
  @providers ||= {}
end

#register_provider(provider) ⇒ Object



17
18
19
# File 'lib/hammer_cli/defaults.rb', line 17

def register_provider(provider)
  providers[provider.provider_name.to_s] = provider
end

#write_to_file(defaults) ⇒ Object



61
62
63
64
65
# 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