I am working in irb and trying to clean up some code I downloaded.
我正在使用irb并尝试清理我下载的一些代码。
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:
所以它指向client.rb的第2行,它的开头如下:
require 'cgi'
require File.join(LINKED_IN_LOAD_PATH, "linked_in","helpers/authorization")
and line 4 of authorization.rb which starts like this:
和.rb的第4行,它是这样开始的:
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.
非常感谢。我不确定为什么会出错。
1 个解决方案
#1
1
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.
您的文件所在的目录是“linkedin”,但您要求的目录是“linked_in”,您应该将实际目录的名称更改为linked_in,因为这与命名约定一致。
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.
除此之外,我非常确定Rails将app下的所有目录添加到加载路径中。所以你应该能够说'required_in / linked_in'(假设你改变了dir和文件名)然后你可以对所有自动加载做同样的事情,并摆脱File.expand_path ......东东。
#1
1
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.
您的文件所在的目录是“linkedin”,但您要求的目录是“linked_in”,您应该将实际目录的名称更改为linked_in,因为这与命名约定一致。
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.
除此之外,我非常确定Rails将app下的所有目录添加到加载路径中。所以你应该能够说'required_in / linked_in'(假设你改变了dir和文件名)然后你可以对所有自动加载做同样的事情,并摆脱File.expand_path ......东东。