Class: ThorAddons::Helpers::Defaults

Inherits:
Object
  • Object
show all
Defined in:
lib/thor-addons/helpers/defaults.rb

Class Method Summary collapse

Class Method Details

.add(hash, defaults) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/thor-addons/helpers/defaults.rb', line 19

def self.add(hash, defaults)
  hash.each_with_object({}) do |(k, v), hsh|
    next unless defaults.include?(k)

    hsh[k] = v.nil? ? defaults[k][:value] : v
  end
end

.load(klass, config) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/thor-addons/helpers/defaults.rb', line 6

def self.load(klass, config)
  options = klass.class_options.dup
  options.merge!(config[:class_options]) if config[:class_options]
  options.merge!(config[:command_options]) if config[:command_options]

  options.each_with_object({}) do |(name, obj), hsh|
    value = obj.respond_to?(:default) ? obj.default : nil
    type = obj.respond_to?(:type) ? obj.type : :string

    hsh[name] = { value: value, type: type }
  end
end

.remove(hash, defaults) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/thor-addons/helpers/defaults.rb', line 27

def self.remove(hash, defaults)
  hash.each_with_object({}) do |(k, v), hsh|
    hsh[k] = nil

    hsh[k] = v unless defaults.include?(k) && defaults[k][:value] == v
  end
end