class EverydayCliUtils::OptionTypes

Public Class Methods

def_option_type() click to toggle source

endregion

# File lib/everyday-cli-utils/option.rb, line 91
def def_option_type
  def_type(:option,
           method(:option_default),
           method(:option_value_determine),
           method(:option_name_mod),
           method(:option_value_transform))
end
def_option_with_param_type() click to toggle source

endregion

# File lib/everyday-cli-utils/option.rb, line 120
def def_option_with_param_type
  def_type(:option_with_param,
           method(:param_option_default),
           method(:param_option_value_determine),
           method(:param_option_name_mod),
           method(:param_option_value_transform))
end
def_type(type, default_value_block, value_determine_block, name_mod_block = nil, value_transform_block = nil) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 52
def def_type(type, default_value_block, value_determine_block, name_mod_block = nil, value_transform_block = nil)
  @types       ||= {}
  @types[type] = OptionType.new(default_value_block, value_determine_block, name_mod_block, value_transform_block)
end
default_value(type, settings = {}) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 57
def default_value(type, settings = {})
  @types ||= {}
  @types.has_key?(type) ? @types[type].default_value(settings) : nil
end
mod_names(type, names, settings = {}) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 67
def mod_names(type, names, settings = {})
  @types ||= {}
  @types.has_key?(type) ? @types[type].mod_names(names, settings) : names
end
option_default(_) click to toggle source

region option procs

# File lib/everyday-cli-utils/option.rb, line 73
def option_default(_)
  false
end
option_name_mod(names, settings) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 81
def option_name_mod(names, settings)
  settings.has_key?(:desc) ? (names + [settings[:desc]]) : names
end
option_value_determine(current_value, new_value, settings) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 77
def option_value_determine(current_value, new_value, settings)
  new_value ? (!settings[:toggle] || !current_value) : current_value
end
option_value_transform(new_value, _) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 85
def option_value_transform(new_value, _)
  !(!new_value)
end
param_option_default(settings) click to toggle source

region option_with_param procs

# File lib/everyday-cli-utils/option.rb, line 100
def param_option_default(settings)
  settings[:append] ? [] : nil
end
param_option_name_mod(names, settings) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 108
def param_option_name_mod(names, settings)
  names[0] << ' PARAM' unless names.any? { |v| v.include?(' ') }
  names = settings.has_key?(:desc) ? (names + [settings[:desc]]) : names
  settings.has_key?(:type) ? (names + [settings[:type]]) : names
end
param_option_value_determine(current_value, new_value, settings) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 104
def param_option_value_determine(current_value, new_value, settings)
  settings[:append] ? (current_value + new_value) : ((new_value.nil? || new_value == '') ? current_value : new_value)
end
param_option_value_transform(new_value, settings) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 114
def param_option_value_transform(new_value, settings)
  new_value.is_a?(Array) ? (settings[:append] ? new_value : new_value[0]) : (settings[:append] ? [new_value] : new_value)
end
updated_value(type, current_value, new_value, settings = {}) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 62
def updated_value(type, current_value, new_value, settings = {})
  @types ||= {}
  @types.has_key?(type) ? @types[type].updated_value(current_value, new_value, settings) : current_value
end