Hi,
A project of mine is using Runt expressions to match dates. When
upgraded my rake tasks to 2.5.1 (from 1.3.0) it get this
/usr/bin/ruby1.8 -S rspec spec/delivery_spec.rb spec/reporter_spec.rb
spec/mysql_dump_spec.rb spec/string_ext_spec.rb spec/
backup_configuration_spec.rb spec/postgres_dump_spec.rb spec/
system_command_spec.rb spec/archive_spec.rb spec/
configuration_dsl_spec.rb spec/mailer_spec.rb spec/backup_spec.rb spec/
intake/runt_spec.rb spec/intake/date_spec.rb
/var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/
configuration.rb:393: warning: toplevel constant VERSION referenced by
Runt::Spec::VERSION
/var/lib/gems/1.8/gems/diff-lcs-1.1.2/lib/diff/lcs.rb:16: Diff is not
a module (TypeError)
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require’
from /var/lib/gems/1.8/gems/rspec-expectations-2.5.0/lib/rspec/
expectations/differ.rb:1
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require’
from /var/lib/gems/1.8/gems/rspec-expectations-2.5.0/lib/rspec/
expectations.rb:9
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require’
from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/expecting/
with_rspec.rb:1
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require’
from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/
configuration.rb:173:in expectation_frameworks' from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/ configuration.rb:380:in
configure_expectation_framework’
from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/
command_line.rb:20:in run' from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb: 55:in
run_in_process’
from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:
46:in run' from /var/lib/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb: 10:in
autorun’
from /var/lib/gems/1.8/bin/rspec:19
…
So it seams that Runt::Spec collides with the old Spec namespace
checking code (there’s no VERSION constant in Runt::Spec) and the
Runt::Diff class in collides with the Diff module from diff-lcs. This
should not be the case as both Spec and Diff in Runt are namespaced
Runt.
I don’t really understand all the magic going on in RSpec but i
believe RSpec is to blame here. Am i right?
Cheers
Rob