2013-09-02 3 views
3

Я разрабатываю простой рубиновый камень, в котором мне нужны дополнительные классы. Ниже перечислены файлы моего gemname/каталог Lib:LoadError: невозможно загрузить такой файл - gemname/base

lib/ 
    gemname/ 
      base.rb 
      version.rb 
    gemname.rb 

я включил заявление require "gemname/base" в моем gemname.rb.

После сборки и установки драгоценного камня на месте и перейти к irb и require gemname, я получаю следующее сообщение об ошибке:

LoadError: cannot load such file -- ./gemname/base 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require' 
    from /home/swaroop/.rvm/gems/ruby-2.0.0-p0/gems/gemname-0.0.6/lib/gemname.rb:2:in `<top (required)>' 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `require' 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `rescue in require' 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:122:in `require' 
    from (irb):1 
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/bin/irb:13:in `<main>' 

Где я буду неправильно?

+0

Можете ли вы опубликовать содержимое вашего .gemspec файла? – mshiltonj

ответ

2

В вашем lib/gemname.rb

require 'gemname/base.rb' 

Надежда в gemname.specification файл имеет

s.files = Dir["README.md","Gemfile","Rakefile", "spec/*", "lib/**/*"]

, например, увидеть мой драгоценный камень

https://github.com/rajcybage/google_book

или

http://rubygems.org/gems/google_book

+0

Я получаю следующее сообщение об ошибке при попытке вашего решения: LoadError: невозможно загрузить такой файл - /home/swaroop/.rvm/gems/ruby-2.0.0-p0/gems/gemname-0.0.7/lib/ gemname/base.rb – swaroopsm

+0

Вы использовали 'require' –

+0

Я попробовал также require_relative. Но не удачи – swaroopsm

5

Ваш файл gemname.gemspec должен содержать что-то вроде этого.

spec.files = `git ls-files -z`.split("\x0") 

Вы получаете сообщение об ошибке, потому что вы не сделали версии файлов с мерзавцем. Если вы запустите rake install ПЕРЕД использованием git, а затем, если вы

irb 
require "gemname" 

это поднимет ошибку.

Вот почему. Посмотрите на его путь установки, как это.

gem list -d gemname # this should return something like this 

gemname (0.0.1) 
    Author: your name 
    License: MIT 
    Installed at: /Users/your_name/.rbenv/versions/2.0.0/lib/ruby/gems/2.0.0 

Go открыть местоположение и найти папку гем. Вы должны увидеть там nothing.

Теперь добавьте свои файлы в git и совершите хотя бы один раз.

git init 
git add . 
git commit -m "init" 

затем сделать rake install и требуя его не следует поднимать ошибку.

irb 
require "gemname" # no error, and you should see files in this gem's install folder. 
Смежные вопросы