Tag: gem

直接修改Gemfile.lock会发生什么?

自从第二次bundle install执行以来,只要未更改Gemfile,就会从Gemfile.lock加载依赖项。 但我想知道如何检测这两个文件之间的变化。 例如,如果我将新的依赖项直接添加到Gemfile.lock中而不将其添加到Gemfile中(与Gemfile中自动生成Gemfile.lock的最佳实践相反), bundle install会将Gemfile视为已更改? 实际上, bundle install进程是否比较整个Gemfile和Gemfile.lock树以检测更改? 如果是,即使我直接向Gemfile.lock添加依赖项,Gemfile也会被检测为已更改(因为不同)并且会重新擦除Gemfile.lock(因此会丢失添加的依赖项…) 自推出以来第二次bundle install的过程是什么? 更清楚的是,我的问题是: 更改是否仅基于Gemfile? 这意味着bundler会保留每个bundle install执行号N的Gemfile快照,只是将它与bundle install执行N + 1进行比较? 或者在bundler内存中没有创建快照,Bundler每次都会与Gemfile.lock进行比较,以检测是否必须将Gemfile视为已更改。

独立ruby脚本中的Rubygem

这是一个非常基本的rubygem问题。 我很熟悉编写这样的简单ruby脚本: #!/usr/bin/ruby require ‘time’ t = Time.at(123) puts t 现在我想在我的脚本中使用我自己的ruby gem。 在我的rails项目中,我可以简单地require ‘my_gem’ 。 但是,这在独立脚本中不起作用。 在独立的ruby脚本中使用我自己的gem的最佳/正确方法是什么?

Gem依赖版本的含义

可以使用前缀= , < , > , <= , >=和~>指定Gem依赖项版本。 除了最后一个,我明白了~>是什么意思?

如何在Mavericks上修复Gemfile中的libv8错误?

当我运行bundle install我得到了 An error occurred while installing libv8 (3.11.8.17), and Bundler cannot continue. Make sure that `gem install libv8 -v ‘3.11.8.17’` succeeds before bundling. Libv8依赖于therubyracer和therubyracergem。 我在3.11.8.17上锁定了我的Gemfile.lock libv8 gem 但我发现我可以将它降级到3.3.10.4 bundle install / update:libv8(therubyracer)安装失败(带有本机扩展) 怎么做? 我也发现工作3.11.8.17 gem但不知道如何在我的系统上实现它。 https://github.com/cowboyd/libv8/issues/107#issuecomment-26146673

安装gem时出错:无法为cygwin的堆保留空间,Win32错误487

我正在尝试在我的机器上安装win32-api gem,在构建原生扩展时我遇到了一些问题: $ gem install win32-api –no-ri –rdoc Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… C:\Programs\dev_kit\bin\make.exe: *** Couldn’t reserve space for cygwin’s heap, Win32 error 0 ERROR: Error installing win32-api: ERROR: Failed to build gem native extension. c:/Programs/ruby/bin/ruby.exe extconf.rb checking for strncpy_s()… no creating Makefile make 0 [main] […]

在脚本中安装gem后,如何加载gem?

我有一个小的Ruby脚本,我正在编写,以自动化在本地机器上准备开发环境。 因为我不能确定所有机器上都存在rubyzip2库,所以我需要在需要时安装脚本。 目前,我的脚本正在执行以下操作: begin require ‘zip/zip’ rescue LoadError system(“gem install rubyzip2”) end 安装gem后,脚本继续执行; 但是,gem尚未加载,因此所有需要rubyzip2代码rubyzip2暂停执行。 如何将gem加载到内存中以便脚本可以在安装后继续运行?

Heroku拒绝推动成熟应用程序(预接收挂钩拒绝)

我越来越 FAILED: http://devcenter.heroku.com/articles/bundler ! Heroku推被拒绝,无法通过Bundler安装gem到git@heroku.com:… [远程拒绝]主 – >主(预接收挂钩拒绝)错误:未能推送一些参考………… ..(见完整列表的底部) 这是一个目前正在使用heroku的应用程序,但是heroku不允许git push heroku master更新代码。 但是,如果我将代码克隆到新文件夹并执行heroku创建以创建具有种子数据的新应用程序,则新应用程序可以正常工作。 但是,我不想使用新的应用程序,因为我有关于我想要保留的正常运行的应用程序的数据。 现有应用程序或gem似乎存在阻止更新的内容。 我不认为数据可以阻止gem安装,所以我不知道该怎么做。 建议? “Heroku推送被拒绝,未能通过Bundler安装gem”意味着问题在于更新gem,还是红鲱鱼? 谢谢。 $ git push heroku master计数对象:536,完成。 Delta压缩最多使用2个线程。 压缩对象:100%(125/125),完成。 书写对象:100%(391/391),1.08 MiB,完成。 总计391(delta 262),重复使用373(delta 251) —–> Heroku receiving push —–> Removing .DS_Store files —–> Rails app detected —–> Detected Rails is not set to serve static_assets Installing rails3_serve_static_assets… […]

ruby的令人难忘的名字生成器gem

在我自己动手并开始拔出字典之前,有没有人知道一个rubygem来生成适合app键的令人难忘的名字。 我需要一些可说明的内容,以便我可以为用户提供唯一的电子邮件地址来提交内容。 我喜欢Heroku的命名为它的应用程序作为一个例子。 floating-sky-58 simple-fog-45

捆绑安装:错误:无法构建gem原生扩展。 nio4rgem

我目前正在使用以下项目: rvm 1.26.11 ruby2.2.1p85 我尝试运行bundle install但是一直收到以下错误: Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 和以下: An error occurred while installing nio4r (1.0.0), and Bundler cannot continue. Make sure that `gem install nio4r -v ‘1.0.0’` succeeds before bundling. 当我尝试运行gem install nio4r -v ‘1.0.0’ : Building native extensions. This could take a while… ERROR: Error installing nio4r: […]

will_paginate JSON支持?

我想知道是否有人可以告诉我,如果will_paginate可以支持开箱即用的JSON,或者是否必须被黑客入侵? 我想将页面数据添加到JSON响应中,而will_paginate管理分页。