module Clamp::Option::Declaration

Option declaration methods.

Public Instance Methods

declared_options() click to toggle source
# File lib/clamp/option/declaration.rb, line 27
def declared_options
  @declared_options ||= []
end
find_option(switch) click to toggle source
# File lib/clamp/option/declaration.rb, line 23
def find_option(switch)
  recognised_options.find { |o| o.handles?(switch) }
end
option(switches, type, description, opts = {}, &block) click to toggle source
# File lib/clamp/option/declaration.rb, line 15
def option(switches, type, description, opts = {}, &block)
  Option::Definition.new(switches, type, description, opts).tap do |option|
    block ||= option.default_conversion_block
    define_accessors_for(option, &block)
    declared_options << option
  end
end
recognised_options() click to toggle source
# File lib/clamp/option/declaration.rb, line 31
def recognised_options
  unless @implicit_options_declared ||= false
    declare_implicit_help_option
    @implicit_options_declared = true
  end
  effective_options
end

Private Instance Methods

declare_implicit_help_option() click to toggle source
# File lib/clamp/option/declaration.rb, line 41
def declare_implicit_help_option
  return false if effective_options.find { |o| o.handles?("--help") }
  help_switches = ["--help"]
  help_switches.unshift("-h") unless effective_options.find { |o| o.handles?("-h") }
  option help_switches, :flag, "print help" do
    request_help
  end
end
effective_options() click to toggle source
# File lib/clamp/option/declaration.rb, line 50
def effective_options
  ancestors.inject([]) do |options, ancestor|
    options + options_declared_on(ancestor)
  end
end
options_declared_on(ancestor) click to toggle source
# File lib/clamp/option/declaration.rb, line 56
def options_declared_on(ancestor)
  return [] unless ancestor.is_a?(Clamp::Option::Declaration)
  ancestor.declared_options
end