Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | ThorでRubyのコマンドライン処理を実装する(自作gem用binに組み込み)

概要

ThorでRubyコマンドライン処理を実装する

詳細

ThorでRubyコマンドライン処理を実装します。
ThorはRubyコマンドラインツール作成時を支援してくれます。

サンプル

公開済みのgem, denreiにThorを適用してみました。
GitHub上のversion0.0.1と0.0.2を比較すると、導入前後が確認出来ます。
https://github.com/tbpgr/denrei
https://rubygems.org/gems/denrei

Gemfile
source 'https://rubygems.org'

# Specify your gem's dependencies in denrei.gemspec
gemspec
gem "rspec", "~> 2.14.1"
gem "thor", "~> 0.18.1"
bin/denrei
#!/usr/bin/env ruby

require "denrei/version"
require "denrei"
require "thor"

module Denrei
  #= Denrei CLI
  class CLI < Thor
    class_option :help, :type => :boolean, :aliases => '-h', :desc => 'help message.'
    class_option :version, :type => :boolean, :desc => 'version'
    default_task :execute

    desc "execute", "show dialog with title, message"
    def execute
      denrei = Denrei::Core.new

      denrei.read_denreifile
      denrei.open
      denrei.keep_tk
    end

    desc "init", "generate Denreifile"
    def init
      Denrei::Core.new.init
    end

    desc "version", "version"
    def version
      p Denrei::VERSION
    end
  end
end

Denrei::CLI.start(ARGV)
実行例

version 0.0.1まではヘルプやversionが表示されていなかったがver0.0.2で表示されるようになった。

$denrei -h
Commands:
  denrei execute         # show dialog with title, message
  denrei help [COMMAND]  # Describe available commands or one specific command
  denrei init            # generate Denreifile
  denrei version         # version

Options:
  -h, [--help]     # help message.
      [--version]  # version

$denrei version
"0.0.2"