Sha256: e758cf5c55b2b882df57bdc87a3de8222981ae2624d13896a5e4107767882db0

Contents?: true

Size: 1.32 KB

Versions: 182

Compression:

Stored size: 1.32 KB

Contents

module Bundler::PubGrub
  module RubyGems
    extend self

    def requirement_to_range(requirement)
      ranges = requirement.requirements.map do |(op, ver)|
        case op
        when "~>"
          name = "~> #{ver}"
          bump = ver.class.new(ver.bump.to_s + ".A")
          VersionRange.new(name: name, min: ver, max: bump, include_min: true)
        when ">"
          VersionRange.new(min: ver)
        when ">="
          VersionRange.new(min: ver, include_min: true)
        when "<"
          VersionRange.new(max: ver)
        when "<="
          VersionRange.new(max: ver, include_max: true)
        when "="
          VersionRange.new(min: ver, max: ver, include_min: true, include_max: true)
        when "!="
          VersionRange.new(min: ver, max: ver, include_min: true, include_max: true).invert
        else
          raise "bad version specifier: #{op}"
        end
      end

      ranges.inject(&:intersect)
    end

    def requirement_to_constraint(package, requirement)
      Bundler::PubGrub::VersionConstraint.new(package, range: requirement_to_range(requirement))
    end

    def parse_range(dep)
      requirement_to_range(Gem::Requirement.new(dep))
    end

    def parse_constraint(package, dep)
      range = parse_range(dep)
      Bundler::PubGrub::VersionConstraint.new(package, range: range)
    end
  end
end

Version data entries

182 entries across 182 versions & 6 rubygems

Version Path
harbr-0.1.83 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.82 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.81 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
rubygems-update-3.5.4 bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
bundler-2.5.4 lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.80 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.79 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.78 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.77 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.76 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.75 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.74 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.73 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.72 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.71 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.70 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.69 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.68 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.67 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb
harbr-0.1.66 vendor/bundle/ruby/3.2.0/gems/bundler-2.4.21/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb