당신은 포함 cow
라는 일반 실행 루비 파일을 만들 수 있습니다. 스크립트를 해석하기 위해 사용할 프로그램을 쉘에게 알려줍니다. 이를 통해 사용자는 ruby $(which cow)
대신 cow
으로 간단히 전화 할 수 있습니다.
가 bin
디렉토리에 스크립트를 넣어 :
Gem::Specification.new 'cow' do |gem|
gem.executables = %w(bin/cow)
end
설치하는 동안, 젬이 보석의 바이너리를 설치합니다 :
cow/
bin/
cow <- your executable file
lib/
cow.rb
cow/
say.rb
cow.gemspec
을 이제 당신이해야 할 모든 당신의 보석 사양에 있음을 넣어 사용자 경로의 어딘가에서 찾을 수 있습니다.
옵션 구문 분석의 경우 표준 라이브러리에는 optparse
이 포함되어 있지만 many gems도 있습니다.
나는 내 자신의 유틸리티에서 사용하는 my own option parser, called Acclaim을 만들었습니다. 다음은 샘플입니다 :
class Cow::Command < Acclaim::Command
option :all_caps, '-A', '--all-caps'
when_called do |options, args|
text = args.first.to_s
text.upcase! if options.all_caps?
Cow.say text
end
end
, 당신은 단순히 스크립트를 실행할 수있는 응용 프로그램을 테스트하기 위해서 :
$ pwd
~/projects/cow
$ ./bin/cow moo
# output here...
그러나, 이것은 당신이 사양에서 보석을 구축하고 로컬마다 설치해야합니다 변경 사항을 테스트 할 :
ruby -I ./lib -r cow -e 'puts Cow.version'
0.0.1
gem build cow.gemspec && gem install cow-0.0.1.gem
Bundler 자동으로 부하 경로에 코드를 삽입하여 생활 쉬워집니다
.
$ bundle exec ./bin/cow moo
# output here...
아니오, 나는 그들과 아무런 경험이 없다고 말했다. 그러나 나는 그것이 가능하다고 생각할 것이다. 아마도 보석의 소스 코드를 확인하고 프레임 워크를 테스트하기 위해 테스트를 작성하는 방법을 확인하십시오. – SpoBo
@Beakr, 당신은 루비 보석에 넣지 않고 보석을 만들고 설치하거나 Bundler를 사용할 수 있습니다. 자세한 내용은 내 대답 읽기. –