Module: Subbundle

Defined in:
lib/subbundle.rb,
lib/subbundle/version.rb

Constant Summary collapse

VERSION =
"0.5.0"

Class Method Summary collapse

Class Method Details

.setup(*gems) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/subbundle.rb', line 7

def self.setup(*gems)
  # Don't write to the lockfile.
  Bundler::Definition.no_lock = true

  Bundler.definition.tap do |definition|
    definition.dependencies.keep_if { |dependency| gems.include?(dependency.name) }
    definition.locked_deps.keep_if { |name, _| gems.include?(name) }

    # Overrides the specs
    spec_set = Bundler::SpecSet.new(definition.instance_variable_get(:@locked_specs).for(definition.dependencies, false, true))
    definition.instance_variable_set(:@locked_specs, spec_set)
  end

  Bundler.require
end