class RgGen::Core::Options::Option
Public Class Methods
new(option_name) { |self| ... }
click to toggle source
# File lib/rggen/core/options.rb, line 9 def initialize(option_name) @option_name = option_name block_given? && yield(self) end
Public Instance Methods
action(&block)
click to toggle source
# File lib/rggen/core/options.rb, line 41 def action(&block) if block_given? @action = block else @action || default_action end end
default(value = nil, &block)
click to toggle source
# File lib/rggen/core/options.rb, line 23 def default(value = nil, &block) if block_given? @default = block elsif !value.nil? @default = -> { value } elsif @default instance_exec(&@default) end end
description(value = nil)
click to toggle source
# File lib/rggen/core/options.rb, line 33 def description(value = nil) if value @description = value else @description end end
enable(parser, options)
click to toggle source
# File lib/rggen/core/options.rb, line 14 def enable(parser, options) options[@option_name] ||= default parser.on(*args) { |value| handler(value, options, parser) } end
Private Instance Methods
args()
click to toggle source
# File lib/rggen/core/options.rb, line 51 def args [@short_option, @long_option, @option_class, description].compact end
default_action()
click to toggle source
# File lib/rggen/core/options.rb, line 55 def default_action proc do |value, options, option_name, _parser| options[option_name] = value end end
handler(value, options, parser)
click to toggle source
# File lib/rggen/core/options.rb, line 61 def handler(value, options, parser) instance_exec(value, options, @option_name, parser, &action) end