Sha256: 188fa32eb899c8cbdfca1d1cee3169c0328202295659f65ee5af951e9e8c90df

Contents?: true

Size: 831 Bytes

Versions: 6

Compression:

Stored size: 831 Bytes

Contents

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
clamp-1.2.1 lib/clamp/parameter/parsing.rb
clamp-1.2.0 lib/clamp/parameter/parsing.rb
clamp-1.2.0.beta1 lib/clamp/parameter/parsing.rb
clamp-1.1.2 lib/clamp/parameter/parsing.rb
clamp-1.1.1 lib/clamp/parameter/parsing.rb
clamp-1.1.0 lib/clamp/parameter/parsing.rb