많은 사람들은 Ruby가 웹 애플리케이션이 아닌 일을 할 수 있다는 사실을 잊습니다. 이 기사에서는 이 문제를 해결하는 데 도움이 되는 명령줄 응용 프로그램을 빌드하는 방법을 보여 드리고자 합니다!
다음은 익숙할 수 있는 몇 가지 명령줄 응용 프로그램입니다.
psqlrailsbundlergemgit
명령줄 응용 프로그램을 구축하는 방법에는 여러 가지가 있으며 이 기사에서는 그 중 세 가지에 중점을 둘 것입니다.
배울 내용 :
- ARGV 어레이
- OptParse 라이브러리
- 토르의 보석
시작하겠습니다!
Ruby ARGV 상수
명령줄 응용 프로그램은 일반적으로 여러 옵션 또는 '플래그'를 사용합니다.
예를 들어 :
psql --help
Ruby에서 이러한 옵션에 어떻게 액세스할 수 있습니까?
ARGV 사용 배열.
argv.rb 파일에 다음 코드가 있는 경우 :
p ARGV
그리고 ruby argv.rb test abc 1 2 3를 사용하여 이 코드를 실행하면 , 당신은 이것을 얻을 것입니다:
["test", "abc", "1", "2", "3"]
모든 옵션이 포함된 어레이입니다!
옵션 파서를 구현하여 특정 옵션이 전달되었는지 확인할 수 있습니다.
예시 :
def process_argv(option)
case option
when "-h"
puts "This is the help menu."
puts " -v Enable verbose mode"
puts " -c Enable syntax highlighting"
exit
when "-v"
@options[:verbose] = true
when "-c"
@options[:syntax_highlighting] = true
end
end
@options = {}
ARGV.each { |option| process_argv(option) }
p @options
이렇게 실행하면 :
ruby argv.rb -v -c
보게 될 내용 :
{:verbose=>true, :syntax_highlighting=>true}
이것은 간단한 경우에 효과가 있지만 더 큰 응용 프로그램을 작성하려면 다른 솔루션을 고려하는 것이 좋습니다.
옵션 파서 라이브러리 사용 방법
Ruby는 OptionParser와 함께 제공됩니다. 명령줄 옵션을 구문 분석하는 데 사용할 수 있는 클래스입니다.
예시입니다 :
require 'optparse'
@options = {}
OptionParser.new do |opts|
opts.on("-v", "--verbose", "Show extra information") do
@options[:verbose] = true
end
opts.on("-c", "--color", "Enable syntax highlighting") do
@options[:syntax_highlighting] = true
end
end.parse!
p @options
optparse를 사용하면 몇 가지 이점을 얻을 수 있습니다. 자신의 맞춤형 솔루션보다.
예를 들어 :
- 짧은
-v를 사용할 수 있습니다. &긴 버전--verbose추가 작업 없이 모든 플래그의 - 모든 옵션에는 도움말 메뉴의 일부가 될 설명이 있습니다.
- 도움말 메뉴는 자동으로 만들어지므로 옵션을 추가하거나 제거할 때마다 수동으로 업데이트할 필요가 없습니다.
메뉴는 다음과 같습니다. :

가장 좋은 점은?
이 모든 것이 Ruby에 내장되어 있으므로 설치할 것이 없습니다!
토르 젬 사용 방법
옵션 구문 분석에 대한 다른 접근 방식을 찾고 있다면 Thor gem을 살펴봐야 합니다. 이것이 Rails가 사용하는 것입니다.
Rails에서는 다음과 같은 작업을 수행합니다. :
rails newrails generaterails console
rails를 (부분적으로) 다시 생성하려면 다음과 같이 할 수 있는 명령:
require 'thor'
class RailsCLI < Thor
class_option :verbose, :type => :boolean, :aliases => "-v"
desc "new DIRECTORY", "Create a new rails app"
def new
# ...
end
desc "generate THING PARAMETERS", "Generate controller / model / migration"
def generate
# ...
end
desc "console", "Start a rails console"
def console
# ...
end
end
RailsCLI.start(ARGV)
도움말 메뉴는 다음과 같습니다. :

이것은 OptionParser와 매우 다른 스타일입니다. …
...그리고 몇 가지 변수 옵션으로 한 가지 작업을 수행하는 경우 앱에 가장 적합한 선택이 아닐 수도 있습니다.
그러나 rails와 같은 명령이 있는 경우 , 다양한 작업에 사용된다면 Thor는 탁월한 선택입니다!
Ruby Readline 라이브러리
pry와 같은 대화형 인터페이스로 애플리케이션을 구축하시겠습니까? 또는 psql ?
Readline을 확인하세요. 이 작업을 수행하는 데 도움이 되는 모듈입니다.
예시입니다 :
prompt = "> "
while buf = Readline.readline(prompt, true)
puts "Your input was: '#{buf}'"
end
이렇게 하면 프롬프트가 표시되고 Enter 키를 누른 후 작성한 내용을 다시 에코합니다.
CTRL+C를 눌러 프로그램을 종료할 수 있습니다. .
Readline은 입력한 모든 항목의 기록을 유지하며 ctrl+r을 사용하여 기록을 검색할 수 있습니다. 또는 Readline::HISTORY.to_a 코드 내부.
Readline 사용 자동 완성과 같은 기능을 구현할 수도 있습니다. 예제는 이 링크를 참조하세요.
동영상 튜토리얼 보기
결론
GUI 유형의 사용자라도 명령줄 응용 프로그램은 매우 강력하고 재미있게 구축할 수 있습니다.
지금 사용해 보고 나만의 건물을 시작해 보세요 🙂