On Apr 27, 2011, at 11:56 PM, Zhi-Qiang Lei wrote:

> Hi,
> 
> I'm trying to package a library into a gem. I write the main file with autoload, just like Rack's.
> 
> module RenrenAPI
> 
>  autoload :Authentication, "renren_api/authentication"
>  autoload :SignatureCalculator, "renren_api/signature_calculator"
>  autoload :HTTPAdapter, "renren_api/http_adapter"
> 
> end
> 
> But when I use the gem, I get a LoadError.
> 
>> RenrenAPI::Authentication
> LoadError: no such file to load -- renren_api/authentication
> 
> The file does exist. Does anyone can tell me what the problem is with my library, which does not happen to Rack.
> 
> Best regards,
> Zhi-Qiang Lei
> zhiqiang.lei / gmail.com
> 


I find the problem is I made a wrong gemspec.

    spec.files = Dir["{lib/*,spec/*}"] + %w{README}

It didn't package the file under "lib/renren_api/". To change it like this will solve this problem.

    spec.files = Dir["{lib/**/*,spec/*}"] + %w{README}

Thanks.

Best regards,
Zhi-Qiang Lei
zhiqiang.lei / gmail.com