Sha256: ad2630e91a063cc6c3ef809106007dd444c7f96b586b5217086b700002a40ee3

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

module EY
  module Serverside
    class Adapter
      class Option
        attr_reader :name, :type

        def initialize(name, type, options={:required => false})
          @name, @type = name, type
          @version_requirement = Gem::Requirement.create(options[:version]) if options[:version]
          @options = options
        end

        def to_switch
          "--#{@name}".gsub(/_/, '-')
        end

        def on_version?(serverside_version)
          !@version_requirement or @version_requirement.satisfied_by?(serverside_version)
        end

        # Check if the option should always be included.
        #
        # Returns a boolean.
        def include?
          @options[:include]
        end

        def required_on_version?(serverside_version)
          unless on_version?(serverside_version)
            return false
          end

          case @options[:required]
          when true
            true
          when String
            requirement = Gem::Requirement.create(@options[:required])
            requirement.satisfied_by?(serverside_version)
          else
            false
          end
        end

      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
engineyard-serverside-adapter-2.5.0 lib/engineyard-serverside-adapter/option.rb
engineyard-serverside-adapter-2.4.0 lib/engineyard-serverside-adapter/option.rb
engineyard-serverside-adapter-2.3.1 lib/engineyard-serverside-adapter/option.rb
engineyard-serverside-adapter-2.3.0 lib/engineyard-serverside-adapter/option.rb