「るりま」とは?
Rubyの公式日本語リファレンスマニュアルです。
myrurema とは?
myrurema は「るりま」のリファレンスをコマンドラインで利用するツールです。
インストール・初期化
- インストール
$ gem install myrurema
$ rurema --version
myrurema version 0.3.5
- 初期化
$ rurema --init
ヘルプ
$ rurema --help
Usage: rurema [options] <method name or class name>
--init initialize rurema system
--update update documents and database
--server start web server
--preview render a reference as HTML
--list list all classes
---- (OPTIONS)
--port=N port number of the web browser (only meaningful with --server)
--browser open web browser (only meaningful with --server or --preview)
--dry-run show commands only
--no-ask do not ask keyboard input
--ruremadir=PATH specify rurema directory (default: /Users/hoge/.rurema)
--rubyver=STR specify Ruby version (default: 2.4.0)
----- (INFO)
--version show version of myrurema
--help show this message
機能
list
$ rurema --list | head
ACL
ARGF
ARGF.class
Abbrev
Addrinfo
Arc
ArgumentError
Array
Base64
BasicObject
method search
メソッド名のみで検索すると一致するメソッドを表示します。
結果が1件の場合は直接リファレンスが表示されます。
結果が複数の場合は一致するメソッドが一覧表示されます。
対象番号を入力すると該当のリファレンスが表示されます。
結果が1件の場合
$ rurema each_with_object
Enumerable#each_with_object
--- each_with_object(obj) -> Enumerator
--- each_with_object(obj) {|(*args), memo_obj| ... } -> object
与えられた任意のオブジェクトと要素をブロックに渡し繰り返し、最初に与えられたオブジェクトを返します。
ブロックを省略した場合は、上の繰り返しをして、最初に与えたオブジェクトを
最後に返す [[c:Enumerator]] を返します。
@param obj 任意のオブジェクトを指定します。
evens = (1..10).each_with_object([]) {|i, a| a << i*2 }
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
@see [[m:Enumerator#with_object]]
結果が複数件の場合
$ rurema to_s
(1)ARGF.class#to_s (2)Addrinfo#to_s (3)Array#to_s (4)Benchmark::Tms#to_s
(5)BigDecimal#to_s (6)CGI::Cookie#to_s (7)CSV::Row#to_s (8)CSV::Table#to_s
# 中略
(99)WEBrick::HTTPUtils::FormData#to_s (100)WEBrick::HTTPVersion#to_s
(101)WIN32OLE_METHOD#to_s (102)WIN32OLE_PARAM#to_s (103)WIN32OLE_TYPE#to_s
(104)WIN32OLE_TYPELIB#to_s (105)WIN32OLE_VARIABLE#to_s (106)Win32::Registry#to_s
(107)main.to_s
which one? > 99
searching WEBrick::HTTPUtils::FormData#to_s
require 'webrick/httputils'
WEBrick::HTTPUtils::FormData#to_s
--- to_s -> String
自身が表すフォームデータのうちのひとつを文字列として返します。
class search
$ rurema Prime
require 'prime'
class Prime < Object
include Enumerable
素数全体を表します。
=== インスタンスを取得する方法
Prime クラスはシングルトンであると考えてください。Prime クラスはデフォルトのインスタンスを持っており、ユーザーはそのインスタンスを利用すべきです。 [[m:Prime.instance]] によってそのインスタンスを取得できます。
過去との互換性のために [[m:Prime.new]] も残っています。このメソッドは非推奨ですので、新しいプログラムでは利用しないでください。
なお、利便性のためにデフォルトインスタンスのメソッドをクラスメソッドとしても利用できます。
例:
Prime.instance.prime?(2) #=> true
Prime.prime?(2) #=> true
class + method search
$ rurema Prime each
require 'prime'
Prime#each
--- each(upper_bound = nil, generator = EratosthenesGenerator.new){|prime| ... } -> object
--- each(upper_bound = nil, generator = EratosthenesGenerator.new) -> Enumerator
全ての素数を順番に与えられたブロックに渡して評価します。
@param upper_bound 任意の正の整数を指定します。列挙の上界です。
nil が与えられた場合は無限に列挙し続けます。
@param generator 素数生成器のインスタンスを指定します。
@return ブロックの最後に評価された値を返します。
ブロックが与えられなかった場合は、[[c:Enumerator]] と互換性のある外部イテレータを返します。
=== 例:
Prime.each(6).each{|prime| prime } # => 5
Prime.each(7).each{|prime| prime } # => 7
Prime.each(10).each{|prime| prime } # => 7
Prime.each(11).each{|prime| prime } # => 11
=== 例: 30以下の双子素数
Prime.each(30).each_cons(2).select{|p,r| r-p == 2}
#=> [[3, 5], [5, 7], [11, 13], [17, 19]]
=== 注
このメソッドに、真の素数列でない疑似素数を与えるべきではありません。
このメソッドは、素数列の外部イテレータを内部イテレータに変換してRubyらしいプログラミングを提供することが責務です。独自に素数性の保障するのはメソッドの責務ではありません。従って、次のように精度の低い素数生成器を与えると、真に素数とは限らない数列が発生します。
Prime.each(50, Prime::Generator23.new) do |n|
p n #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49]
end
@see [[c:Prime::EratosthenesGenerator]], [[c:Prime::TrialDivisionGenerator]], [[c:Prime::Generator23]]