Hello all,
I''m bekkou68.
I have a error on custom_require.rb, which occurred when I execute
rspec.
I executed the following command.
$ script/spec spec/models/
Then, I got the following result.
# /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'': no such file to load -- application
(MissingSourceFile)
# from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:
31:in `require''
# from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/
active_support/dependencies.rb:158:in `require''
# from /home/project/vendor/plugins/rspec_on_rails/lib/spec/
rails.rb:3
# from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:
31:in `gem_original_require''
# from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:
31:in `require''
# from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/
active_support/dependencies.rb:158:in `require''
# from /home/project/spec/models/../spec_helper.rb:6
# from /home/project/spec/models/eng_word_spec.rb:1:in `require''
# from /home/project/spec/models/eng_word_spec.rb:1
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
example_group_runner.rb:14:in `load''
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
example_group_runner.rb:14:in `load_files''
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
example_group_runner.rb:13:in `each''
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
example_group_runner.rb:13:in `load_files''
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
options.rb:85:in `run_examples''
# from /home/project/vendor/plugins/rspec/lib/spec/runner/
command_line.rb:19:in `run''
# from script/spec:4
Here is the contents of custom_require.rb.
# ============================== from here
=============================#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++
require ''rubygems''
module Kernel
alias gem_original_require require # :nodoc:
#
# We replace Ruby''s require with our own, which is capable of
# loading gems on demand.
#
# When you call <tt>require ''x''</tt>, this is
what happens:
# * If the file can be loaded from the existing Ruby loadpath, it
# is.
# * Otherwise, installed gems are searched for a file that matches.
# If it''s found in gem ''y'', that gem is activated
(added to the
# loadpath).
#
# The normal <tt>require</tt> functionality of returning false if
# that file has already been loaded is preserved.
#
def require(path) # :nodoc:
gem_original_require path
rescue LoadError => load_error
if load_error.message =~ /#{Regexp.escape path}\z/ and
spec = Gem.searcher.find(path) then
Gem.activate(spec.name, "= #{spec.version}")
gem_original_require path
else
raise load_error
end
end
end # module Kernel
# ============================== to here
=============================
Should I add ''require xxx'' ?
Are they some wrong codes on custom_require.rb?
Should I update RubyGems?
I''m really happy if you help me.
Sincerely,
bekkou68
The error is a couple steps back up the trace, in rspec''s rails.rb. The problem is that you''re running an old version of rspec_on_rails, which expects ApplicationController to be defined in app/controllers/ application.rb, which it isn''t anymore. Upgrading to the new version of rspec_on_rails will fix this. --Matt Jones On Jul 11, 1:46 pm, bekkou68 <tyanat.syadan.bek...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hello all, > > I''m bekkou68. > I have a error on custom_require.rb, which occurred when I execute > rspec. > > I executed the following command. > $ script/spec spec/models/ > > Then, I got the following result. > # /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in > `gem_original_require'': no such file to load -- application > (MissingSourceFile) > # from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb: > 31:in `require'' > # from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/ > active_support/dependencies.rb:158:in `require'' > # from /home/project/vendor/plugins/rspec_on_rails/lib/spec/ > rails.rb:3 > # from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb: > 31:in `gem_original_require'' > # from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb: > 31:in `require'' > # from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/ > active_support/dependencies.rb:158:in `require'' > # from /home/project/spec/models/../spec_helper.rb:6 > # from /home/project/spec/models/eng_word_spec.rb:1:in `require'' > # from /home/project/spec/models/eng_word_spec.rb:1 > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > example_group_runner.rb:14:in `load'' > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > example_group_runner.rb:14:in `load_files'' > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > example_group_runner.rb:13:in `each'' > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > example_group_runner.rb:13:in `load_files'' > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > options.rb:85:in `run_examples'' > # from /home/project/vendor/plugins/rspec/lib/spec/runner/ > command_line.rb:19:in `run'' > # from script/spec:4 > > Here is the contents of custom_require.rb. > # ============================== from here > =============================> #-- > # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. > # All rights reserved. > # See LICENSE.txt for permissions. > #++ > > require ''rubygems'' > > module Kernel > alias gem_original_require require # :nodoc: > > # > # We replace Ruby''s require with our own, which is capable of > # loading gems on demand. > # > # When you call <tt>require ''x''</tt>, this is what happens: > # * If the file can be loaded from the existing Ruby loadpath, it > # is. > # * Otherwise, installed gems are searched for a file that matches. > # If it''s found in gem ''y'', that gem is activated (added to the > # loadpath). > # > # The normal <tt>require</tt> functionality of returning false if > # that file has already been loaded is preserved. > # > def require(path) # :nodoc: > gem_original_require path > rescue LoadError => load_error > if load_error.message =~ /#{Regexp.escape path}\z/ and > spec = Gem.searcher.find(path) then > Gem.activate(spec.name, "= #{spec.version}") > gem_original_require path > else > raise load_error > end > end > end # module Kernel > # ============================== to here > =============================> > Should I add ''require xxx'' ? > Are they some wrong codes on custom_require.rb? > Should I update RubyGems? > > I''m really happy if you help me. > > Sincerely, > bekkou68
Dear Mr.Matt, Thanks for your message, and I''m sorry that I reply late.> Upgrading to the new version of rspec_on_rails will fix this.I tried to update rspec with the following command. $ ruby script/plugin install git://github.com/dchelimsky/rspec.git -r ''refs/tags/1.2.7'' --force $ ruby script/plugin install git://github.com/dchelimsky/rspec-rails.git -r ''refs/tags/1.2.7.1'' --force $ ruby script/generate rspec (http://wiki.github.com/dchelimsky/rspec/rails) Then I can''t execute spec, $ script/spec -v # script/spec:3:in `require'': no such file to load -- spec (LoadError) # from script/spec:3 The contents of spec is following, $ more spec # #!/usr/bin/env ruby # $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../ vendor/plugins/rspec/lib")) # require ''spec'' Now I can''t solve this problem. I''m happy when you help me. Thanks, bekkou68
rspec-rails 1.2.7.1 is surely working for me. Your script/spec file seems like broken, though, I think you''d better recreate your whole project and try again from scratch. I recommend you not to edit the generated script/spec file unless you''re writing a patch for the RSpec project to fix a bug within RSpec. If you''re not sticking on vendorizing plugins, config.gem feature might be an easier way for you. Put the following lines in your config/environments/test.rb file: config.gem ''rspec'', :lib => false, :version => ''1.2.8'' config.gem ''rspec-rails'', :lib => false, :version => ''1.2.7.1'' and run: % ruby script/generate rspec -- Akira Matsuda