1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
module Clamp
module Parameter
module Parsing
protected
def parse_parameters
set_parameters_from_command_line
default_parameters_from_environment
end
private
def set_parameters_from_command_line
self.class.parameters.each do |parameter|
begin
parameter.consume(remaining_arguments).each do |value|
parameter.of(self).take(value)
end
rescue ArgumentError => e
signal_usage_error Clamp.message(:parameter_argument_error, :param => parameter.name, :message => e.message)
end
end
end
def default_parameters_from_environment
self.class.parameters.each do |parameter|
parameter.of(self).default_from_environment
end
end
end
end
end
|