2017-12-14 1 views
-2

Ruby로 변환하고 싶은 bash 명령 행 도구를 만들었습니다. 나는 프로그램을 작성하기 위해 OptionParser과 물건을 사용해야 만한다는 것을 알고 있지만, 레이크와 같은 프로그램을보고 일단 보석을 설치하면 바로 사용할 준비가 된 것을 볼 수 있습니다. 왜 이런거야? optparse로 프로그램을 만들 때 그것을 내 저장소에 넣고 액세스 권한을 부여해야합니다.보석 설치시 즉시 Ruby 명령 행 도구 사용하기

보석으로 만들면 어떻게 사용자가 Mac이나 Windows와 함께 즉시 사용할 수 있습니까?

+0

루비에 대한 명령 줄 보석 (더 가볍고) 및 [''''] (http : //www.withlab.com/leejarvis/slop) //whatisthor.com/) (훨씬 더 자세하게). – engineersmnky

답변

2

보석은 보석을 설치할 때 젬하여 사용자의 PATH에 추가 된 실행 파일을 포함 할 수 있습니다 감사합니다.

일반적으로 이러한 스크립트는 현재 보석의 bin 디렉토리 (또는 요즘은 exe)에 저장됩니다. 스크립트 자체, 당신이해야에 관해서는

Gem::Specification.new do |spec| 
    spec.name  = 'my_awesome_gem' 
    spec.version  = '0.0.1' 

    spec.bindir  = 'bin' 
    spec.executables = ['my_script'] 

    # ... 
end 

: 당신은 따라서이 같은 것을 넣을 수 있습니다, 당신의 gemspec 파일에서

을 : 그런 다음이 디렉토리에있는 스크립트가 실행 파일로서 취급 할 필요가 당신의 gemspec에 지정할 수 있습니다 실행 파일 (즉, Linux/Mac의 경우 chmod +x bin/my_script)으로 표시되어 있는지 확인하고 첫 번째 줄로 올바른 주류가 있는지 확인하십시오. 일반적으로, 그것은 다음과 같습니다

#!/usr/bin/env ruby 

puts 'Hello World' 

당신은 RubyGems guide에 보석에 실행 파일을 추가하는 방법에 대해 자세히 알아볼 수 있습니다.

마지막으로 bundle gem my_awesome_gem 명령을 사용하여 기본 gem 구조를 만드는 경우 적절한 gemspec 파일과 기본 구조가 자동으로 만들어집니다. 스크립트를 exe 디렉토리에두면 모든 것이 올바르게 작동합니다.

+0

나는 이것을했고'spec.bindir'에'exe'를 지정할 필요가있었습니다. 'bin '이 맞습니까? –

+1

전통적으로'bin' 디렉토리에 넣었던 보석과 함께 노출되는 실행 가능한 스크립트. 현재 (그리고 현재의'bundler '버전과 함께) 이러한 스크립트는 대신'exe' 디렉토리에 저장되는 경향이 있으며'bin'에있는 스크립트는 보석 개발 중에 내부 목적으로 만 사용됩니다. 그러나 이것은 모두 관습입니다. gemspec의 설정과 일치하는 한 원하는 디렉토리를 지정할 수 있습니다. –

+0

도움을 주셔서 감사합니다! 나는 모든 일을해야 해. 이 기사도 도움이되었습니다. http://robdodson.me/how-to-write-a-command-line-ruby-gem/ – gazayas