Using Ruby libraries and gems with a Shoes app

一笑奈何 提交于 2019-11-28 21:26:51

问题


I am writing a little Shoes app that requires a library I wrote with my regular Ruby installation. My library uses the 'net-ssh' gem and a bunch of other Ruby libraries.

When I run my library directly with regular ruby (it has its own command-line interface) like this:

ruby my_lib.rb

...all is fine. But when I try to require it within my Shoes app I get an 'no such file to load - net/ssh' error (because my_lib uses net-ssh).

I tried messing around with the $: include path variable in the Shoes app like this:

$:.unshift "C:/ruby/lib/ruby/1.8"
$:.unshift "C:/ruby/lib/ruby/site_ruby/1.8"
require 'rubygems'
gem 'net-ssh'
require 'my_lib.rb'

...but had no success. I get 'Could not find RubyGem net-ssh'.

Anyone has had the same problem? What's the best way to use your Ruby libraries and gems in a Shoes app?


回答1:


Hey, _why posted on his blog, hackety.org, about using gems within Shoes. I hope it helps!

Shoes.setup do
  gem 'json >= 1.1.1'
  gem 'activerecord'
end

require 'json'
require 'activerecord'

Shoes.app do
  @msg = para "ALL SYSTEMS GO"
  animate(20) { @msg.toggle }
end



回答2:


For shoes4, the Shoes.setup method is deprecated. You can install the gems you need by either:

  1. gem install net-ssh
  2. Using bundler and a Gemfile

Then, you only need to require 'net-ssh' in your application.



来源:https://stackoverflow.com/questions/512502/using-ruby-libraries-and-gems-with-a-shoes-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!