class ThorAddons::Helpers::Defaults

Public Class Methods

add(hash, defaults) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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