如何确保在独立脚本中安装ruby gem - 第一次运行失败,第二次运行

时间:2016-03-20 19:23:52

标签: ruby rubygems

我对此很陌生,我显然遗漏了一些东西...... 我已经搜索过了,但是找不到与之匹配的东西。

运行: ruby 2.2.4p230(2015-12-16修订版53155)[i386-mingw32]

确保在独立脚本中安装非本机gem

artii - https://github.com/miketierney/artii

def ensure_nn_gem(this_gem)
  begin
    gem this_gem
    rescue LoadError
      `gem install #{this_gem}`
    end
  require this_gem
end

ensure_nn_gem('artii')

首次运行

C:\ Users **** \ Desktop ******** \ lib> ruby​​ my_app.rb

无法转换" \ xC4"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / bubble.flf,跳过

无法转换" \ xC4"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / digital.flf,跳过

无法转换" \ xB0"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / l4me.flf,跳过

无法转换" \ x81"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / pyramid.flf,跳过

无法转换" \ xC4"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / rot13.flf,跳过

无法转换" \ xC4"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / term.flf,跳过

无法转换" \ xC4"从ASCII-8BIT到UTF-8 for lib / figlet / fonts / tsalagi.flf,跳过

C:/Ruby/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require': cannot load such file -- artii (LoadError) from C:/Ruby/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in要求'         来自app.rb:11:ensure_nn_gem' from app.rb:14:in'

第二次运行

该脚本按预期工作。

2 个答案:

答案 0 :(得分:0)

没有魔法 - 这个宝石会在spring的情况下加载并保留在内存中。

尝试添加

require 'artii'

在代码的开头

答案 1 :(得分:0)

我认为您的问题是尝试使用gem this_name语法。 这只适用于Gemfiles, 在脚本中坚持require