ruby.morphball.net

RArg - Utility for validating named arguments

RArgは、Hashを名前付き引数(キーワード引数)のように扱い、引数の正当性を検証するためのシンプルなライブラリです。 命名はROptにあやかりました。

以下の3つの機能を備えています。

  1. 必須である引数が含まれているかどうかのチェック - require_arg
  2. 引数が指定されなかったときの初期値(デフォルト値)指定 - default_arg
  3. 引数名の別名(エイリアス)指定 - alias_arg

ダウンロード

インストール

同梱のsetup.rbを実行してください。(適切な位置にlib/rarg.rbがコピーされます)

% ruby setup.rb

もしくは、RubyGemsがインストールされている環境であれば、gemコマンドでRArgのダウンロード&インストールを行うことも可能です。

% gem install rarg

サンプルコード

require 'rarg'

class Foo
    attr_reader :r1, :r2, :d1

    def initialize(options = {})
        re = RArg.parse(options) do
            require_arg :r1, :r2
            default_arg :d1, 0
            alias_arg :a1, :r1
        end

        @r1, @r2, @d1 = re[:r1], re[:r2], re[:d1]
    end
end

Foo.new({}) # Exception: argument of 'r1' is required, but missing (RArg::Error)
Foo.new({:r1 => nil}) # Exception: argument of 'r2' is required, but missing (RArg::Error)
Foo.new({:r1 => nil, :r2 => 10, :nd => 20}) # Exception: 'nd' is not defined (RArg::Error)
Foo.new({:r1 => nil, :r2 => 10}) # No Exception

foo = Foo.new({:r1 => 'R1', :r2 => 'R2'})
p foo.r2 #=> 'R2'
p foo.d1 #=> 0 (default)

foo = Foo.new({:a1 => 'R1', :r2 => nil, :d1 => 'D1'})
p foo.d1 #=> 'D1' (overwritten)
p foo.r1 #=> 'R1' (alias definition: r1 => a1)

一言メッセージフォーム

バグの報告、質問などがありましたら、こちらのフォームからお気軽にどうぞ。

連絡先