9e909d5be3
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 ....
112 lines
3.3 KiB
Ruby
112 lines
3.3 KiB
Ruby
module Spec
|
|
module Indexes
|
|
def dep(name, reqs = nil)
|
|
@deps ||= []
|
|
@deps << Bundler::Dependency.new(name, :version => reqs)
|
|
end
|
|
|
|
def platform(*args)
|
|
@platforms ||= []
|
|
@platforms.concat args.map { |p| Gem::Platform.new(p) }
|
|
end
|
|
|
|
alias platforms platform
|
|
|
|
def resolve
|
|
@platforms ||= ['ruby']
|
|
deps = []
|
|
@deps.each do |d|
|
|
@platforms.each do |p|
|
|
deps << Bundler::DepProxy.new(d, p)
|
|
end
|
|
end
|
|
Bundler::Resolver.resolve(deps, @index)
|
|
end
|
|
|
|
def should_resolve_as(specs)
|
|
got = resolve
|
|
got = got.map { |s| s.full_name }.sort
|
|
got.should == specs.sort
|
|
end
|
|
|
|
def should_conflict_on(names)
|
|
begin
|
|
got = resolve
|
|
flunk "The resolve succeeded with: #{got.map { |s| s.full_name }.sort.inspect}"
|
|
rescue Bundler::VersionConflict => e
|
|
Array(names).sort.should == e.conflicts.sort
|
|
end
|
|
end
|
|
|
|
def gem(*args, &blk)
|
|
build_spec(*args, &blk).first
|
|
end
|
|
|
|
def an_awesome_index
|
|
build_index do
|
|
gem "rack", %w(0.8 0.9 0.9.1 0.9.2 1.0 1.1)
|
|
gem "rack-mount", %w(0.4 0.5 0.5.1 0.5.2 0.6)
|
|
|
|
# --- Rails
|
|
versions "1.2.3 2.2.3 2.3.5 3.0.0.beta 3.0.0.beta1" do |version|
|
|
gem "activesupport", version
|
|
gem "actionpack", version do
|
|
dep "activesupport", version
|
|
if version >= v('3.0.0.beta')
|
|
dep "rack", '~> 1.1'
|
|
dep "rack-mount", ">= 0.5"
|
|
elsif version > v('2.3') then dep "rack", '~> 1.0.0'
|
|
elsif version > v('2.0.0') then dep "rack", '~> 0.9.0'
|
|
end
|
|
end
|
|
gem "activerecord", version do
|
|
dep "activesupport", version
|
|
dep "arel", ">= 0.2" if version >= v('3.0.0.beta')
|
|
end
|
|
gem "actionmailer", version do
|
|
dep "activesupport", version
|
|
dep "actionmailer", version
|
|
end
|
|
if version < v('3.0.0.beta')
|
|
gem "railties", version do
|
|
dep "activerecord", version
|
|
dep "actionpack", version
|
|
dep "actionmailer", version
|
|
dep "activesupport", version
|
|
end
|
|
else
|
|
gem "railties", version
|
|
gem "rails", version do
|
|
dep "activerecord", version
|
|
dep "actionpack", version
|
|
dep "actionmailer", version
|
|
dep "activesupport", version
|
|
dep "railties", version
|
|
end
|
|
end
|
|
end
|
|
|
|
versions '1.0 1.2 1.2.1 1.2.2 1.3 1.3.0.1 1.3.5 1.4.0 1.4.2 1.4.2.1' do |version|
|
|
platforms "ruby java mswin32 mingw32" do |platform|
|
|
next if version == v('1.4.2.1') && platform != pl('x86-mswin32')
|
|
next if version == v('1.4.2') && platform == pl('x86-mswin32')
|
|
gem "nokogiri", version, platform do
|
|
dep "weakling", ">= 0.0.3" if platform =~ pl('java')
|
|
end
|
|
end
|
|
end
|
|
|
|
versions '0.0.1 0.0.2 0.0.3' do |version|
|
|
gem "weakling", version
|
|
end
|
|
|
|
# --- Rails related
|
|
versions '1.2.3 2.2.3 2.3.5' do |version|
|
|
gem "activemerchant", version do
|
|
dep "activesupport", ">= #{version}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |