Method: Bundler::Source::Rubygems#specs

Defined in:
lib/bundler/source/rubygems.rb

#specsObject


142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/bundler/source/rubygems.rb', line 142

def specs
  @specs ||= begin
    # remote_specs usually generates a way larger Index than the other
    # sources, and large_idx.merge! small_idx is way faster than
    # small_idx.merge! large_idx.
    index = @allow_remote ? remote_specs.dup : Index.new
    index.merge!(cached_specs) if @allow_cached
    index.merge!(installed_specs) if @allow_local

    if @allow_local
      if @prefer_local
        index.merge!(default_specs)
      else
        # complete with default specs, only if not already available in the
        # index through remote, cached, or installed specs
        index.use(default_specs)
      end
    end

    index
  end
end