class Gem::TestCase::SpecFetcherSetup
The SpecFetcherSetup allows easy setup of a remote source in RubyGems tests:
spec_fetcher do |f| f.gem 'a', 1 f.spec 'a', 2 f.gem 'b', 1' 'a' => '~> 1.0' f.clear end
The above declaration creates two gems, a-1 and b-1, with a dependency from b to a. The declaration creates an additional spec a-2, but no gem for it (so it cannot be installed).
After the gems are created they are removed from Gem.dir.
Public Class Methods
Executes a SpecFetcher setup block. Yields an instance then creates the gems and specifications defined in the instance.
# File lib/rubygems/test_utilities.rb, line 204 def self.declare test, repository setup = new test, repository yield setup setup.execute end
Public Instance Methods
Removes any created gems or specifications from Gem.dir (the default install location).
# File lib/rubygems/test_utilities.rb, line 225 def clear @operations << [:clear] end
Returns a Hash of created Specification full names and the corresponding Specification.
# File lib/rubygems/test_utilities.rb, line 233 def created_specs created = {} @gems.keys.each do |spec| created[spec.full_name] = spec end created end
Creates a gem with name
, version
and
deps
. The created gem can be downloaded and installed.
The specification will be yielded before gem creation for customization, but only the block or the dependencies may be set, not both.
# File lib/rubygems/test_utilities.rb, line 285 def gem name, version, dependencies = nil, &block @operations << [:gem, name, version, dependencies, block] end
Creates a legacy platform spec with the name 'pl' and version 1
# File lib/rubygems/test_utilities.rb, line 292 def legacy_platform spec 'pl', 1 do |s| s.platform = Gem::Platform.new 'i386-linux' s.instance_variable_set :@original_platform, 'i386-linux' end end
Creates a spec with name
, version
and
deps
. The created gem can be downloaded and installed.
The specification will be yielded before creation for customization, but only the block or the dependencies may be set, not both.
# File lib/rubygems/test_utilities.rb, line 343 def spec name, version, dependencies = nil, &block @operations << [:spec, name, version, dependencies, block] end