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