class Bundler::PubGrub::StaticPackageSource::DSL - bundler: Ruby Standard Library Documentation

# class Bundler::PubGrub::StaticPackageSource::DSL

### Public Class Methods

new(packages, root_deps) click to toggle source

    # File bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb, line 10
    def initialize(packages, root_deps)
      @packages = packages
      @root_deps = root_deps
    end

### Public Instance Methods

add(name, version, deps: {}) click to toggle source

    # File bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb, line 19
    def add(name, version, deps: {})
      version = Gem::Version.new(version)
      @packages[name] ||= {}
      raise ArgumentError, "#{name} #{version} declared twice" if @packages[name].key?(version)
      @packages[name][version] = clean_deps(name, version, deps)
    end

root(deps:) click to toggle source

    # File bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb, line 15
    def root(deps:)
      @root_deps.update(deps)
    end

### Private Instance Methods

clean_deps(name, version, deps) click to toggle source

Exclude redundant self-referencing dependencies

    # File bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb, line 29
    def clean_deps(name, version, deps)
      deps.reject {|dep_name, req| name == dep_name && Bundler::PubGrub::RubyGems.parse_range(req).include?(version) }
    end