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