не нужно работать во время написания драгоценного камня - PullRequest
0 голосов
/ 26 декабря 2011

Я пытаюсь написать драгоценный камень, используя bundler (по железной дороге Райана - 245)
Я следовал всему, что описал Райан.Я также добавил 4 файла ruby ​​в папку lib, чтобы узнать, как require работает с разными гемами.

Я думал, что для этого автоматически потребуются файлы rb, помещенные в папку lib.но, к сожалению, пока я тестирую его, он выдает ошибку, в которой говорится, что такого файла нет для загрузки lib / myclass.rb
Это то, на что похож мой lorem.rb.Может ли кто-нибудь сказать, как работает самоцвет?

Примечание: я использую это с echoe, и оно работает.но когда я использую bulder, gemspec и все, я просто не понимаю, почему он не загружает файлы.

Мой файл спецификаций gem

# -*- encoding: utf-8 -*-
$:.push File.expand_path("../lib", __FILE__)
require "lorem/version"

Gem::Specification.new do |s|
  s.name        = "lorem"
  s.version     = Lorem::VERSION
  s.authors     = ["My Name"]
  s.email       = ["me@domain.com"]
  s.homepage    = ""
  s.summary     = %q{learing bundler gem}
  s.description = %q{Learing bundler gem}

  s.rubyforge_project = "lorem"

  s.files         = `git ls-files`.split("\n")
  s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
  s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
  s.require_paths = ["lib"]

  #s.add_development_dependency "rspec"
  #s.add_development_dependency "supermodel"
end

заранее спасибо

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

В вашем gemspec попробуйте заменить $:.push File.expand_path("../lib", __FILE__) на:

$:.unshift('lib')
0 голосов
/ 27 декабря 2011

Наконец взломали его.

lib = File.expand_path('../lib/', __FILE__)  
$:.unshift lib unless $:.include?(lib) 

и давая следующее внутри

Gem::Specification.new do |s|

  ...
  s.files        = Dir.glob("{bin,lib}/**/*")
  ...

end

Я получил этот совет от http://yehudakatz.com/2010/04/02/using-gemspecs-as-intended/

...