instiki/vendor/plugins/bundler/gems/bundler-1.0.15/spec/support/matchers.rb
Jacques Distler 9e909d5be3 Update Rails, rails_xss and Bundler
Update Bundler to 1.0.15.
Update Rails to 2.3.12.
Update rails_xss plugin.

The latter two were the
source of a considerable
amount of grief, as rails_xss
is now MUCH stricter about what
string methods can be used.

Also made it possible to use
rake 0.9.x with Instiki. But
you probably REALLY want to use

 ruby bundle exec rake ...

instead of just saying

 rake ....
2011-06-15 00:43:38 -05:00

78 lines
2.3 KiB
Ruby

module Spec
module Matchers
RSpec::Matchers.define :have_dep do |*args|
dep = Bundler::Dependency.new(*args)
match do |actual|
actual.length == 1 && actual.all? { |d| d == dep }
end
end
RSpec::Matchers.define :have_gem do |*args|
match do |actual|
actual.length == args.length && actual.all? { |a| args.include?(a.full_name) }
end
end
RSpec::Matchers.define :have_rubyopts do |*args|
args = args.flatten
args = args.first.split(/\s+/) if args.size == 1
#failure_message_for_should "Expected RUBYOPT to have options #{args.join(" ")}. It was #{ENV["RUBYOPT"]}"
match do |actual|
actual = actual.split(/\s+/) if actual.is_a?(String)
args.all? {|arg| actual.include?(arg) } && actual.uniq.size == actual.size
end
end
def should_be_installed(*names)
opts = names.last.is_a?(Hash) ? names.pop : {}
groups = Array(opts[:groups])
groups << opts
names.each do |name|
name, version, platform = name.split(/\s+/)
version_const = name == 'bundler' ? 'Bundler::VERSION' : Spec::Builders.constantize(name)
run "require '#{name}.rb'; puts #{version_const}", *groups
actual_version, actual_platform = out.split(/\s+/)
Gem::Version.new(actual_version).should eq(Gem::Version.new(version))
actual_platform.should == platform
end
end
alias should_be_available should_be_installed
def should_not_be_installed(*names)
opts = names.last.is_a?(Hash) ? names.pop : {}
groups = Array(opts[:groups]) || []
names.each do |name|
name, version = name.split(/\s+/)
run <<-R, *(groups + [opts])
begin
require '#{name}'
puts #{Spec::Builders.constantize(name)}
rescue LoadError, NameError
puts "WIN"
end
R
if version.nil? || out == "WIN"
out.should == "WIN"
else
Gem::Version.new(out).should_not == Gem::Version.new(version)
end
end
end
def should_be_locked
bundled_app("Gemfile.lock").should exist
end
def lockfile_should_be(expected)
should_be_locked
spaces = expected[/\A\s+/, 0] || ""
expected.gsub!(/^#{spaces}/, '')
bundled_app("Gemfile.lock").read.should == expected
end
end
end