Sha256: 9083854473751a7acf4c1789424dc70be85646fd58ee67c99e95ff57a7274dc5

Contents?: true

Size: 1.22 KB

Versions: 13

Compression:

Stored size: 1.22 KB

Contents

module RubyDep
  class RubyVersion
    attr_reader :status # NOTE: monkey-patched by acceptance tests
    attr_reader :version
    attr_reader :engine

    def initialize(ruby_version, engine)
      @engine = engine
      @version = Gem::Version.new(ruby_version)
      @status = detect_status
    end

    def recognized?
      info.any?
    end

    def recommended(status)
      current = Gem::Version.new(@version)
      info.select do |key, value|
        value == status && Gem::Version.new(key) > current
      end.keys.reverse
    end

    private

    VERSION_INFO = {
      'ruby' => {
        '2.3.1' => :unknown,
        '2.3.0' => :buggy,
        '2.2.5' => :unknown,
        '2.2.4' => :buggy,
        '2.2.0' => :insecure,
        '2.1.9' => :buggy,
        '2.0.0' => :insecure
      },

      'jruby' => {
        '2.3.0' => :unknown, # jruby-9.1.2.0, jruby-9.1.0.0
        '2.2.3' => :buggy, # jruby-9.0.5.0
        '2.2.0' => :insecure
      }
    }.freeze

    def info
      @info ||= VERSION_INFO[@engine] || {}
    end

    def detect_status
      return :untracked unless recognized?

      info.each do |ruby, status|
        return status if @version >= Gem::Version.new(ruby)
      end
      :insecure
    end
  end
end

Version data entries

13 entries across 13 versions & 7 rubygems

Version Path
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
alimentos-alu0100945645-0.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
alimentos-alu0100945645-1.0.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
comiditaULL-0.1.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
comidita_ull-0.1.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
comidita_ull-0.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
gameboard-3.1.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
gameboard-3.0.0 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.5.0/lib/ruby_dep/ruby_version.rb
ruby_dep-1.5.0 lib/ruby_dep/ruby_version.rb
vagrant-unbundled-1.8.5.2 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/ruby_version.rb
vagrant-unbundled-1.8.5.1 vendor/bundle/ruby/2.3.0/gems/ruby_dep-1.4.0/lib/ruby_dep/ruby_version.rb
ruby_dep-1.4.0 lib/ruby_dep/ruby_version.rb