- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378
- 1_9_2_180
- 1_9_3_125
- 1_9_3_392
- 2_1_10
- 2_2_9
- 2_4_6
- 2_5_5
- 2_6_3 (0)
- What's this?
This class provides the base to build source plugins All the method here are required to build a source plugin (except `uri_hash`, `gem_install_dir`; they are helpers).
Defaults for methods, where ever possible are provided which is expected to work. But, all source plugins have to override `fetch_gemspec_files` and `install`. Defaults are also not provided for `remote!`, `cache!` and `unlock!`.
The defaults shall work for most situations but nevertheless they can be (preferably should be) overridden as per the plugins’ needs safely (as long as they behave as expected). On overriding `initialize` you should call super first.
If required plugin should override `hash`, `==` and `eql?` methods to be able to match objects representing same sources, but may be created in different situation (like form gemfile and lockfile). The default ones checks only for class and uri, but elaborate source plugins may need more comparisons (e.g. git checking on branch or tag).
@!attribute [r] uri
@return [String] the remote specified with `source` block in Gemfile
@!attribute [r] options
@return [String] options passed during initialization (either from lockfile or Gemfile)
@!attribute [r] name
@return [String] name that can be used to uniquely identify a source
@!attribute [rw] dependency_names
@return [Array<String>] Names of dependencies that the source should try to resolve. It is not necessary to use this list intenally. This is present to be compatible with `Definition` and is used by rubygems source.