如何在开发Ruby gem时添加“pry”

我有一个名为“东西”的gem。 我想在开发gem时添加pry作为开发依赖项。 但是我不知道如何加载它。 如果我在lib / something.rb中有“require something”,当我释放gem时,它会抛出一个LoadError,因为pry只是一个开发依赖项。 同时我不想在提交代码时继续添加和删除pry。 仅在开发应用程序时需要pry的最佳方法是什么,但不要求它作为gem的依赖项?

从mongoDB中删除文档

这可能是一个非常愚蠢的问题,但我是MongoDB的新手,所以请耐心等待。 我创建了一个独立的ruby类: require ‘rubygems’ require ‘mongo’ require ‘bson’ require ‘mongo_mapper’ MongoMapper.database = “testing” class Twit include MongoMapper::Document key :id, Integer, :unique => true key :screen_name, String, :unique => true … 然后我用irb执行以下操作 >> twit = Twit.all.first => # >> twit.destroy => true >> Twit.all => [#] 那么如何销毁MongoDB中的文档呢? 我究竟做错了什么?

机架错误 – LoadError:无法加载此类文件

试图通过tekpub机架教程但遇到此错误。 Boot Error Something went wrong while loading app.ru LoadError: cannot load such file — haiku 在我尝试运行的应用程序所在的目录中有一个名为haiku.rb的文件,但是在尝试运行程序时出现上述错误。 这是代码: class EnvironmentOutput def initialize(app=nil) @app = app end def call(env) out = “” unless(@app.nil?) response = @app.call(env)[2] out+=response end env.keys.each {|key| out+=”#{key}=#{env[key]}”} [“200”,{“Content-Type” => “text/html”},[out]] end end require ‘haml’ require ‘haiku’ class MyApp def call(env) poem = […]

使用Selenium WebDriver启用/禁用javascript

出于某种原因,我要为Firefox禁用javascript(手动,我们通过以下步骤提到http://support.mozilla.org/en-US/kb/javascript-settings-for-interactive-web-pages#w_enabling – 并禁用-javascript )。 如何通过Selenium WebDriver使用Ruby实现这一目标?

重新打开IO流与仅使用新流

在Ruby-Docs中,它提供了以下示例: f1 = File.new(“testfile”) f2 = File.new(“testfile”) f2.readlines[0] #=> “This is line one\n” f2.reopen(f1) #=> # f2.readlines[0] #=> “This is line one\n” 我的问题是为什么当你可以f2.close和f1.readlines[0]时重新打开f2 ? 使用新流而不是仅使用新流重新打开是否有任何优势?

Ruby字符串搜索:哪个更快拆分或正则表达式?

这是一个两部分问题。 假设你有一个字符串数组,可以在一个字符处拆分(例如’@’的电子邮件地址或’。’的文件名),这是在拆分字符之前找到字符的最高效方式? my_string.split(char)[0] 要么 my_string[/regex/] 问题的第二部分是你如何编写一个正则表达式来获取角色的第一个实例之前的所有内容。 下面的正则表达式在’。’之前找到某些字符。 (因为’。’不在模式中)但这是我找到解决方案的hacky方法。 my_string[/[A-Za-z0-9\_-]+/] 谢谢!

在公共基线路线上建立路线?

我有一个共同的基本路径; 说: get /base我需要执行基本身份validation并在该路径下为所有子调用工作。 说: get /base/foo和get /base/bar 。 查看http://www.sinatrarb.com/intro.html#Helpers建议我应该可以使用帮助程序来完成此操作。 我正在查看pass助手并在文档中触发新路由时使用call 。 但是,我读到的另一个建议是使用正则表达式IE %r{/base/?:(path)?}或其他一些动态路由。 那么怎么样: def ‘/base’ # do some funky basic auth stuff here # to work with all request to this common # base path? pass end def %r{/base/?(path)?} do |path| case path when ‘foo’ # do something. when ‘bar’ # do something […]

库未加载:/opt/local/lib/libffi.5.dylib但是我正在使用自制程序

我正试图在Mac OS X Lion(XCode 4.3 + OSX GCC Installer + Homebrew)上守卫 错误信息: Library not loaded: /opt/local/lib/libffi.5.dylib 我没有/opt/local目录,因为我没有使用MacPorts而是使用Homebrew 我尝试了brew install libffi ,这是成功的,但gem仍然不起作用。 我也试过卸载并重新安装gem而没有成功。 在安装了apple-gcc42 OSX 10.9(Mavericks)上也会出现问题。 我也试过告诉gem有关libffi的存在,如下所示: gem install ffi:1.0.7 — –with-ldflags=’-L/usr/local/opt/libffi/lib’

使用Puma运行JRuby与最新的核磁共振成像仍然有好处吗?

我正在考虑将我们的ruby解释器更新为JRuby,因为我们必须从我们的应用程序中删除任何2.x特定语法并采用ruby 1.9.3兼容性,因此非常头疼。 哪个不是世界末日。 当运行应用程序时,我发现我们不能在群集模式下使用Puma。 问题是,鉴于过去几年MRI的所有修复和变化,“真实线程”仍然有效的好处是什么? 更新 为了使其更加客观,问题是,“最新版本的MRI是否否定了采用JRuby来实现本机线程为您提供的相同优势的必要性?”

Rails从application.html.erb渲染实例变量

我正在使用Rails 4书来关注敏捷Web开发,我对渲染方面有点困惑。 该问题的简单版本是…在application.html.erb文件中 render @cart 这很令人困惑,因为我认为需要有一个与该视图相关联的控制器才能知道要使用哪个部分和@cart变量。 是否只是通过命名约定,该行寻找像_cart.html.erb这样的部分? 在那种情况下,它实际上不知道@cart是什么,直到它呈现部分? 一些澄清是可爱的。 谢谢!