Rubyでサブコマンド付きのコマンドを簡単に書けるThor

More than 1 year has passed since last update.

gitやsvnのようなサブコマンド付きのコマンドが・・

$ demo 
Tasks:
  demo abc           # print 'abc'
  demo efg [option]  # print 'efg'
  demo help [TASK]   # Describe available tasks or one specific task

$ demo abc
abc!

$ demo zzz
Could not find task "zzz".

$ demo efg
efg!

$ demo efg -u
EFG!

$ demo help efg
Usage:
  demo efg [option]

Options:
  -u, [--upcase]  # disp upcase

print 'efg'

これ位の記述量で書けるようになります。

demo
#! /usr/bin/env ruby

require 'rubygems'
require 'thor'

class Demo < Thor
  desc "abc", "print 'abc'"
  def abc
    puts 'abc!'
  end

  desc "efg [option]", "print 'efg'"
  option :upcase, :type => :boolean, :aliases => '-u', :desc => "disp upcase"
  def efg
    if options[:upcase]
      puts 'EFG!'
    else
      puts 'efg!'
    end
  end
end

Demo.start

Milkode 0.7milkコマンドの内部で利用しました。

インストール

$ gem install thor

リンク

続き

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.