ceth
ceth

Reputation: 45295

require file on the top level directory

Here is my project structure:

/app
--/lib
----/porter.rb
--/spec
----/porter_spec.rb

In file porter_spec.rb i have include directive:

require '../lib/porter' 

Now I'm trying to run the test:

cd app
rspec

and get the error:

C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- ../lib/porter (LoadError)
        from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Dropbox/development/myprojects/lj-parser/spec/porter_spec.rb:3:in `<top (required)>'

How can I require file on lib folder?

Upvotes: 2

Views: 1445

Answers (2)

Sergio Tulentsev
Sergio Tulentsev

Reputation: 230286

Apparently, your current dir is not what you think it is.

You should use require_relative (ruby 1.9+):

require_relative '../lib/porter'

Upvotes: 5

Hooopo
Hooopo

Reputation: 1400

In ruby1.9, you can use:

require_relative '../lib/porter'

In ruby1.8 or higher, you can use:

require File.expand_path("../lib/porter", __FILE__)

Upvotes: 3

Related Questions