Sha256: e6007dd5d5e5f2d150bc5dcdbfde8861aa30e89b0e410fb22600c0a473ef0e96

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

#! /usr/bin/env ruby
# coding: utf-8

require "optparse"

# FileRenamer 用のオプション解析器。
# ユーザはこれに任意のオプションを追加できる。
#
# 通常の OptionParser と異なり、インスタンス変数 @options に情報を格納する。
# @options は attr_reader に指定されているので、外部から読み取れる。
# @options は Hash であるので、ユーザが on で追加するブロックで
# そのまま鍵と値を追加できる。
# また、@options に追加せずに自前で何か適当な処理をしても良い。
module FileRenamer
  class OptionParser < OptionParser

    attr_reader :options

    def initialize
      @options = {}
      super
      on("-y", "--yes"     , "Yes for all questions."){@options[:yes]     = true}
      on("-n", "--no"      , "No  for all questions."){@options[:no]      = true}
      on("-c", "--copy"    , "Copy mode."            ){@options[:copy]    = true}
      on("-m", "--move"    , "Move mode.(default)"   ){@options[:move]    = true}
      on("-h", "--hardlink", "Hardlink mode."        ){@options[:hardlink]= true}
      on("-s", "--symlink" , "Symlink mode."         ){@options[:symlink] = true}
      on("-q", "--quiet"   , "Quiet mode. Forced non-interactive."){
        @options[:quiet] = true
        #このオプションが設定されているときは強制的に --yes として扱われる。
        #non_interactive_mode になる。
      }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
filerenamer-0.0.8 lib/filerenamer/optionparser.rb
filerenamer-0.0.7 lib/filerenamer/optionparser.rb
filerenamer-0.0.6 lib/filerenamer/optionparser.rb
filerenamer-0.0.5 lib/filerenamer/optionparser.rb
filerenamer-0.0.4 lib/filerenamer/optionparser.rb
filerenamer-0.0.3 lib/filerenamer/optionparser.rb