module Clamp::Parameter::Declaration

Parameter declaration methods.

Public Instance Methods

has_parameters?() click to toggle source
# File lib/clamp/parameter/declaration.rb, line 19
def has_parameters?
  !parameters.empty?
end
inheritable_parameters() click to toggle source
# File lib/clamp/parameter/declaration.rb, line 30
def inheritable_parameters
  superclass_inheritable_parameters + parameters.select(&:inheritable?)
end
parameter(name, description, options = {}, &block) click to toggle source
# File lib/clamp/parameter/declaration.rb, line 23
def parameter(name, description, options = {}, &block)
  Parameter::Definition.new(name, description, options).tap do |parameter|
    define_accessors_for(parameter, &block)
    parameters << parameter
  end
end
parameter_buffer_limit() click to toggle source
# File lib/clamp/parameter/declaration.rb, line 34
def parameter_buffer_limit
  return 0 unless Clamp.allow_options_after_parameters
  return Float::INFINITY if inheritable_parameters.any?(&:multivalued?)
  inheritable_parameters.size
end
parameters() click to toggle source
# File lib/clamp/parameter/declaration.rb, line 15
def parameters
  @parameters ||= []
end

Private Instance Methods

superclass_inheritable_parameters() click to toggle source
# File lib/clamp/parameter/declaration.rb, line 42
def superclass_inheritable_parameters
  return [] unless superclass.respond_to?(:inheritable_parameters, true)
  superclass.inheritable_parameters
end