Tag: gem

是否需要gem加载一切,包括我不使用的东西?

假设x是一个gem,它包含Hello和Goodbye类。 如果我编写一个require ‘x’的程序,但只使用Hello类。 Goodbye类也加载了吗?

Rails – 了解application.js和application.css

铁路新手。 只是试图理解\ assests目录中的这两个文件。 例如,application.js文件包含如下行: //= require jquery //= require jquery_ujs //= require_tree . 我理解require_tree . 只需在当前目录中添加所有JS文件。 通过上下文,我可以说require jquery添加jQuery库。 但它从哪里获得这些jQuery库? 我没有在我的资产文件夹中看到任何jquery.js文件 – 或者在我的整个应用程序中直接看到这个问题? 同样,我正在按照一些说明安装twitter bootstrap( http://rubydoc.info/gems/bootstrap-sass-rails/2.3.2.0/frames )。 将我的gem添加到Gemfile之后,我需要将//= require bootstrap添加到application.js文件中,并将@ @import ‘bootstrap’到我的application.css中,现在它神奇地起作用! 为什么!? 我无法在任何地方找到这些文件 谢谢!

在Mac Snow Leopard上遇到Curb gem的问题

这耗费了我几个小时的时间。 在控制台中我运行:require’curb’ 我收到错误: LoadError: dlopen(/usr/local/lib/ruby/gems/1.8/gems/taf2-curb-0.5.4.0/lib/curb_core.bundle, 9): no suitable image found. Did find: /usr/local/lib/ruby/gems/1.8/gems/taf2-curb-0.5.4.0/lib/curb_core.bundle: mach-o, but wrong architecture – /usr/local/lib/ruby/gems/1.8/gems/taf2-curb-0.5.4.0/lib/curb_core.bundle from /usr/local/lib/ruby/gems/1.8/gems/taf2-curb-0.5.4.0/lib/curb_core.bundle from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require’ from /usr/local/lib/ruby/gems/1.8/gems/taf2-curb-0.5.4.0/lib/curb.rb:1 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require’ from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in’ from /Users/user/Sites/CSG/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require’ from ./lib/tokbox/base_api.rb:7 我已经尝试卸载gem并使用ARCHFLAGS =“ – […]

Rails货币兑换gem有效吗?

只是想知道是否有人使用货币兑换rubygem从外部api获得汇率,实际上是有效的。 我已经尝试了以下gem,但未能让它们中的任何一个按照描述运行: goog_currency,yahoo_currency,google_currency,yahoo_finance_currency 其中一个使用已弃用的代码,因此无法正常工作。 我只是想在铁路视图中显示货币汇率,这是从外部API中获取的。 我也考虑过试图从雅虎/谷歌财经url解析json,但这似乎比它应该更难。

RefineryCMS Engines错误:没有有效的gemspec

我无法安装任何引擎。 从指南安装第一个事件引擎后,我有一个错误,说我没有有效的gem规格。 Using refinerycms-events (1.0) from source at vendor/extensions refinerycms-events at /Users/lydia/Desktop/projects/cmsex/vendor/extensions/events did not have a valid gemspec. This prevents bundler from installing bins or native extensions, but that may not affect its functionality. The validation message from Rubygems was: authors may not be empty 现在,每当我尝试安装另一个引擎时,命令行说安装已成功,但我无法在bundle show上找到该gem。 我无法生成插件和数据库。 我已将这些行添加到我的Gemfile中: gem’refinerycms-blog’,’〜> 2.1.0′ gem’refinerycms-search’,’〜> 2.1.0′ 这是我的gem包含在捆绑中: Gems […]

是否可以要求Gemfile之外的文件?

例如,我正在开发一个gem,当我正在开发时,我使用pry而不是IRB,并使用debugger进行调试。 但是,我不希望可能的贡献者必须安装它们(因为它们可能不需要它们)。 我的第一个想法是将它们放入Bundler组: source :rubygems gemspec group :extras do gem “pry” gem “debugger” end 然后人们可以使用: $ bundle install –without extras 但我希望它是默认的,它们没有安装。 什么是完美的是他们不在我的Gemfile ,但我仍然可以要求它们(如果它们存在于计算机上)。 这个解决方案没问题,因为我不关心它们被锁定的版本。 可以吗?

正确测试gem的方法

如果gem有rails依赖项,你认为以一种可以独立运行或在rails项目下运行它们的方式编写gem测试更好吗?

如何编写安装RubyGem时调用的钩子?

我想写一个Ruby代码片段,当我的Gem首次通过[sudo ]gem install mygem 。 可以吗?

如何在Ruby on Rails gem中包含一个控制器?

我正在尝试为开源项目做贡献,我需要一个控制器来处理需要提交的几个表单。 我在gem内部的目录中创建了这些控制器,名为app/controllers/gemname/my_controller.rb 。 但是,当我尝试访问控制器时,似乎没有加载(我得到一个名称错误就像我输入类似NonExistentController的东西)。 如何使用gem加载我的控制器? 谢谢!

将Ruby gem加载到用户定义的命名空间中

给定一个定义与我编写的代码冲突的顶级类的gem,是否可以以这样的方式要求gem,使其所有类都分组在我可以定义的模块中? 例如,如果unsafe_gem定义了一个类: class Word # … some code end 我需要这样的东西: class Word # My word class. end module SafeContainer # This obviously doesn’t work # (ie the gem still defines ::Word). require ‘unsafe_gem’ end 这样我就可以区分: Word.new # => The class I defined. SafeContainer::Word.new # => The class defined by the gem. 一些进一步的细节:我的代码(例如’Word’类)已经包装在它自己的命名空间中。 但是,我希望能够为用户提供启用“语法糖”forms的选项,这使得某些类可以在顶级命名空间下直接访问。 但是,这会与我正在使用的某个gem创建一个名称冲突,它定义了一个顶级类。 目前提出的解决方案都不起作用,因为gem实际上依赖于其全球定义的类; […]