Sha256: 36153df8bf4ea66ce6c03876b0edea7aee804d4e5399952b24d5f7f3d4cfd1db

Contents?: true

Size: 1004 Bytes

Versions: 37

Compression:

Stored size: 1004 Bytes

Contents

module HammerCLI
  module Options
    class OptionCollector
      attr_accessor :option_processor

      def initialize(recognised_options, option_processor)
        @recognised_options = recognised_options

        if !option_processor.is_a?(HammerCLI::Options::ProcessorList)
          @option_processor = HammerCLI::Options::ProcessorList.new(option_processor)
        else
          @option_processor = option_processor
        end
      end

      def all_options_raw
        @all_options_raw ||= @option_processor.process(@recognised_options, {})
      end

      def all_options
        @all_options ||= translate_nils(all_options_raw)
      end

      def options
        @options ||= all_options.reject { |key, value| value.nil? && all_options_raw[key].nil? }
      end

      private

      def translate_nils(opts)
        Hash[ opts.map { |k,v| [k, translate_nil(v)] } ]
      end

      def translate_nil(value)
        value == HammerCLI::NilValue ? nil : value
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
hammer_cli-3.14.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.13.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.12.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.10.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.9.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.8.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.7.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.5.1 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.6.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.5.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.4.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.3.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.2.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.1.1 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.0.2 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.1.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.0.1 lib/hammer_cli/options/option_collector.rb
hammer_cli-3.0.0 lib/hammer_cli/options/option_collector.rb
hammer_cli-2.5.1 lib/hammer_cli/options/option_collector.rb
hammer_cli-2.5.0 lib/hammer_cli/options/option_collector.rb