ruby.morphball.net

RubyPlus

使うとちょっとRubyが便利になる(かもしれない)小物ライブラリの詰め合わせ。

ダウンロード

ライセンス

パブリックドメインです。再配布や改変などに制限はありません。

変更履歴

version 0.2 (2008-10-15)

使い方

次のように記述することで、RubyPlusに含まれる全てのライブラリを読み込む。

require 'rubyplus'

また、必要なライブラリだけを個別に読み込むこともできる。

require 'rubyplus/in'
require 'rubyplus/boolattr'

各ライブラリ解説

boolattr.rb

method_name?形式のメソッドを簡単に定義できるようにする。

require 'rubyplus'

class Foo
    bool_attr_reader :a, :b
    bool_attr_accessor :c, :d

    def initialize
        @a = true
        @c = false
    end
end

obj = Foo.new
obj.a?  #=> true
obj.c = true
obj.c?  #=> true

in.rb

Object#in?メソッドを追加する。

require 'rubyplus'

range = 20..40
v = 30
v.in?(range)  # range.include?(v) と等価

pathname.rb

rubyに標準添付のpathnameに以下の拡張を行う。

require 'rubyplus'

'/foo/bar'.to_pathname
Path('/foo/bar')
Pathname('/foo/bar')

total.rb

Enumerable#total メソッドを追加する。

require 'rubyplus'

[1, 2, 3, 4].total #=> 10
                   # inject{|t, inc| t + inc} と等価

filewrite.rb

version 0.2 より導入。File#write メソッド、および File#puts メソッドを追加する。設計にあたり、kwatch氏の日記の記事なぜ File.read() でなくて IO.read() なのか? なぜ File.read() はあって File.write() はないのか?を参考にさせていただいた。

require 'rubyplus'

# writeメソッドを使って、output.txtに文字列を書き込む
File.write('output.txt', 'written-text')  

# ファイルオープン時のモード指定も可能
File.write('output.txt', 'written-text', 'wb')

# puts版
File.puts('output.txt', ['line1', 'line2'], 'a')

一言メッセージフォーム

「こんな機能を追加してくれれば便利なんだけど」という要望があれば、こちらのフォームからお気軽にどうぞ。バグ報告や質問もOKです。