Method: Licensed::Bundler::DefinitionExtensions#specs

Defined in:
lib/licensed/sources/bundler/definition.rb

#specsObject

Override specs to avoid logic that would raise Gem::NotFound which is handled in this ./missing_specification.rb, and to not add bundler as a dependency if it’s not a user-requested gem.

Newer versions of Bundler have changed the implementation of specs_for as well which no longer calls this function. Overriding this function gives a stable access point for licensed



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/licensed/sources/bundler/definition.rb', line 15

def specs
  @specs ||= begin
    specs = resolve.materialize(requested_dependencies)

    all_dependencies = requested_dependencies.concat(specs.flat_map(&:dependencies))
    if all_dependencies.any? { |d| d.name == "bundler" } && !specs["bundler"].any?
      bundler = sources..specs.search(bundler_query).last
      specs["bundler"] = bundler
    end

    specs
  end
end