2009-02-04 3 views
13

정규 Ruby 설치로 작성한 라이브러리가 필요한 신발 앱을 작성 중입니다. 내 라이브러리는 'net-ssh'젬과 다른 Ruby 라이브러리를 사용합니다.신발 앱이있는 Ruby 라이브러리 및 보석 사용

나는 일반 루비와 직접 내 라이브러리를 실행하면 다음과 같습니다 (이 자신의 명령 줄 인터페이스가) :

ruby my_lib.rb 

을 ... 모두 괜찮습니다. 하지만 내 신발 애플 리케이션 내에서 'my_lib가 net-ssh를 사용하기 때문에'net-ssh '오류가 발생합니다.

은 내가 $로 장난 노력이 같은 신발 응용 프로그램에서 경로 변수를 포함

$:.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' 

을 ...하지만 성공이 없었다. 'RubyGem net-ssh를 찾을 수 없습니다'라는 메시지가 나타납니다.

누구나 동일한 문제가 있었습니까? 신발 앱에서 Ruby 라이브러리와 보석을 사용하는 가장 좋은 방법은 무엇입니까?

답변

17

안녕하세요, _why posted on his blog, hackety.org, Shoes 내에서 보석 사용. 도움이되기를 바랍니다!

 
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 
+0

baxter, "net-ssh"gem 파일을 Shoes gem 디렉토리에 복사하는 다소 엉뚱한 해결책을 발견했습니다. 바로 "Shoes.setup"이해야 할 일입니다. 나는 진실에서 그렇게 멀지 않았다! 감사! ;-) – Dema

+0

Hehe, 문제 없음 :) – baxter

2

신발 4의 경우 Shoes.setup 메소드가 사용되지 않습니다. 당신은 당신이 중 하나에 의해 필요로하는 보석을 설치할 수 있습니다

  1. gem install net-ssh
  2. 들러와 Gemfile을 사용

그런 다음, 당신은 단지 응용 프로그램에서 require 'net-ssh'해야합니다.

+0

동일한 문제가 발생했습니다. 내 로컬 환경은 모두 rvm 기반 이었지만 실행 모드 또는 패키지로 실행 중일 때는 특정 보석 (pdf-reader)을 찾을 수 없었습니다. 앱을 패키징해야했습니다. 그런 다음 보석을 Mac OS X 앱 콘텐츠의 일부인 lib/gems 디렉토리에 직접 복사합니다 (Windows의 경우 동일하지는 않음). 그런 다음 배포 용 컨텐츠를 압축하십시오. 잘 했어. 포장기에 스크립트를 작성하면됩니다. 현재는 드물게 변경됩니다. Mac OS X 10.10. 신발 연방 – Ben