Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > ripper/lexerライブラリ > Ripperクラス > tokenize

singleton method Ripper.tokenize

tokenize(src, filename = '-', lineno = 1) -> [String][permalink][rdoc] [added by ripper/lexer]

Ruby プログラム str をトークンに分割し、そのリストを返します。

[PARAM] src:
Ruby プログラムを文字列か IO オブジェクトで指定します。
[PARAM] filename:
src のファイル名を文字列で指定します。省略すると "-" になります。
[PARAM] lineno:
src の開始行番号を指定します。省略すると 1 になります。

require 'ripper'

p Ripper.tokenize("def m(a) nil end")
# => ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]

Ripper.tokenize は空白やコメントも含め、元の文字列にある文字は 1 バイトも残さずに分割します。ただし、ごく僅かな例外として、__END__ 以降の文字列は黙って捨てられます。これは現在のところ仕様と考えてください。