Reputation: 2631
I am working in irb and trying to clean up some code I downloaded.
I am running this:
require '/Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linkedin.rb'
and it works fine. That file contains this:
require File.join(File.expand_path("../",__FILE__),"init")
require 'oauth'
module LinkedIn
puts "helllllooooo"
class << self
#logger.debug "....teeest"
attr_accessor :token, :secret, :default_profile_fields
# config/initializers/linkedin.rb (for instance)
#
# LinkedIn.configure do |config|
# config.token = 'consumer_token'
# config.secret = 'consumer_secret'
# config.default_profile_fields = ['education', 'positions']
# end
#
# elsewhere
#
# client = LinkedIn::Client.new
def configure
yield self
true
end
end
#root_path = File.expand_path("../../../../../",__FILE__)
autoload :Api, File.join(LINKED_IN_LOAD_PATH,"linked_in/api.rb") #"linked_in/api"
autoload :Client, File.join(LINKED_IN_LOAD_PATH,"linked_in/client.rb") #"linked_in/client"
autoload :Mash, File.join(LINKED_IN_LOAD_PATH,"linked_in/mash.rb") #"linked_in/mash"
autoload :Errors, File.join(LINKED_IN_LOAD_PATH,"linked_in/errors.rb") #"linked_in/errors"
autoload :Helpers, File.join(LINKED_IN_LOAD_PATH,"linked_in/helpers.rb") #"linked_in/helpers"
autoload :Search, File.join(LINKED_IN_LOAD_PATH,"linked_in/search.rb") #"linked_in/search"
end
But when I try to run a command like this:
client = LinkedIn::Client.new('key', 'key')
I get this error:
LoadError: no such file to load -- linked_in/helpers/authorization
from /Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linked_in/helpers/authorization.rb:4
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
from /Users/alexgenadinik/projects/cmply/cmply-app/lib/app/social/linkedin/linked_in/client.rb:2
from (irb):2
so it points to line 2 of client.rb which starts like this:
require 'cgi'
require File.join(LINKED_IN_LOAD_PATH, "linked_in","helpers/authorization")
and line 4 of authorization.rb which starts like this:
module LinkedIn
module Helpers
module Authorization
By the way, should I read the error message from the top, or should I start reading from the bottom to see where the error appeared first?
Help much appreciated. I am not sure why it is giving the error.
Upvotes: 1
Views: 561
Reputation: 31726
The dir your file is in is "linkedin", but the dirs you are requiring from are "linked_in", you should change the name of the actual dir to linked_in, since that aligns with naming conventions.
That aside, I'm pretty sure Rails adds all directories under app into the load path. So you should be able to just say require 'linked_in/linked_in'
(assuming you change both the dir and file names) and then you can probably do the same thing with all the autoloads, and get rid of the File.expand_path ...
stuff.
Upvotes: 1