当gem的主要类名不同时,如何编写Gemspec?

时间:2012-07-19 18:59:49

标签: ruby-on-rails rubygems gem bundler jrubyonrails

我有一个Gemfile作为rails app的一部分,我将其转换为gem。

gem "jruby-openssl", "0.7.4"
gem "nokogiri"
gem 'xml-simple', :require => 'xmlsimple'
gem "httpclient"

如何为我创建的gem编写.gemspec文件? 我写的gemspec看起来像这样。

Gem::Specification.new do |s|
   s.name = "my_gem"
   s.platform    = Gem::Platform::RUBY
   s.authors     = [""]
   s.email       = [""]
   s.homepage    = ""
   s.summary     = %q{MyGem}
   s.description = %q{MyGem}
   s.files = Dir["{app,lib,config,public,db}/**/*"] + ["Rakefile", "Gemfile"]

   s.require_paths = ["lib"]
   s.add_dependency 'nokogiri', '>= 1.5.0'
   s.add_dependency('xml-simple') 
   s.add_dependency 'httpclient'
end

但是,不调用xmlsimple对象,因为add依赖项不能采用与常规gem调用相同的参数。 如何编写gemspec来调用xmlsimple,就像在Gemfile中完成一样?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

s.add_dependency 'xml-simple'

就像你已经拥有的一样。但是,当您在应用程序中需要库时(可能在lib/yourgem.rb内),您可以执行以下操作:

require 'xmlsimple'

而不是:

require 'xml-simple'

我找到了一个使用xml-simple的gem,可能对你的参考有用。 https://github.com/stjohncj/RESTRack