2011-12-26 8 views
0

私はbundlerを使って宝石を書くようにしています。(ryan's railcast - 245の後に)
私はryanの記述に従いました。また、libフォルダに4つのrubyファイルを追加し、requireがどのように異なるgemで動作するかを学びました。宝石を書くときに仕事をする必要はありません

私はlibフォルダに入れられたrbファイルが自動的に必要になると思っていました。 残念ながら私はそれをテストしている間、それは lib/myclass.rbをロードするためのファイルがありません。
これは私のlorem.rbのようです。

require 'lorem/version' 
require 'lorem/myclass' 

Module Lorem 
..... 
end 

何が欠けていますか?どのような宝石が作品を必要とするかをどのような身体も伝えることができます

注意:私はエコーと一緒にやっています。しかし、私がbulderを使用しているとき、gemspecと私は単にファイルをロードしない理由を理解できません。

私の宝石スペックは、あなたのgemspecで事前

+0

からこのヒントを得た

Gem::Specification.new do |s| ... s.files = Dir.glob("{bin,lib}/**/*") ... end 

の内側次与えますか?ライアンの鉄道にはない - 245の記述。ファイルが存在し、my_class.rbも試してみてください –

+0

myclass.rbはlib/loremフォルダに追加したファイルです。私はmyclass.rbにコードを書き出し、それを必要とすることでlorem.rbで使用しようとしました。しかしそれは仕事をしなかった。 –

+0

http://stackoverflow.com/questions/4516533/a-problem-with-the-require-keyword-not-finding-the-file-to-load –

答えて

1

# -*- 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  = ["[email protected]"] 
    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 

感謝を提出、と$:.push File.expand_path("../lib", __FILE__)を交換してください:

$:.unshift('lib') 
+0

私はテストを行っていません。実際には、私は宝石の 'my​​gem'を与える​​ことによって直接レールプロジェクトでそれを試しました –

+0

@KrishnaprasadVarmaあなたのgemspecを投稿することができますか? – buruzaemon

+0

質問にgemspecを追加しました。 –

0

は、最後にそれを割れました。

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

と私は、このmyclass.rbから来るんhttp://yehudakatz.com/2010/04/02/using-gemspecs-as-intended/

+0

誰もがレーキのインストールがlibフォルダ内のすべてのルビコードをコピーする理由を知っていますか?s.filesに記載されているものだけですか? –

+1

それは 's.files'のポイントです:それはあなたの問題を解決することができたことを聞いてうれしい –

+0

@KrishnaprasadVarmaに宝石に含めるべきもののリストです。 – buruzaemon

関連する問題