ライブラリ
- ビルトイン (20)
- psych (102)
-
ripper
/ lexer (10) -
shell
/ command-processor (12)
クラス
- Ripper (10)
-
Shell
:: CommandProcessor (12)
モジュール
- Psych (102)
-
RubyVM
:: AbstractSyntaxTree (20)
キーワード
-
alias
_ command (12) - lex (5)
- load (15)
-
load
_ documents (8) -
load
_ file (12) -
load
_ stream (24) - parse (22)
-
parse
_ file (22) -
safe
_ load (19) - tokenize (5)
検索結果
先頭5件
- RubyVM
:: AbstractSyntaxTree . parse(string) -> RubyVM :: AbstractSyntaxTree :: Node - RubyVM
:: AbstractSyntaxTree . parse(string , keep _ script _ lines: false , error _ tolerant: false , keep _ tokens: false) -> RubyVM :: AbstractSyntaxTree :: Node - Ripper
. tokenize(src , filename = & # 39;-& # 39; , lineno = 1 , raise _ errors: false) -> [String] - Psych
. load _ stream(yaml , filename=nil) -> [object] - Psych
. load _ stream(yaml , filename=nil) {|obj| . . . } -> ()
-
RubyVM
:: AbstractSyntaxTree . parse(string) -> RubyVM :: AbstractSyntaxTree :: Node (6307.0) -
文字列を抽象構文木にパースし、その木の根ノードを返します。
...@param string パースする対象の Ruby のコードを文字列で指定します。
@raise SyntaxError string が Ruby のコードとして正しくない場合に発生します。
//emlist[][ruby]{
pp RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
# => (SCOPE@1:0-1:9
# tbl: [:x]
#......args: nil
# body:
# (LASGN@1:0-1:9 :x
# (OPCALL@1:4-1:9 (LIT@1:4-1:5 1) :+ (LIST@1:8-1:9 (LIT@1:8-1:9 2) nil))))
//}......string パースする対象の Ruby のコードを文字列で指定します。
@param keep_script_lines true を指定すると、 Node#script_lines でノードと関連づけられたソースコードのテキストを取得できます。
@param keep_tokens true を指定すると、 Node#to......rror_tolerant true を指定すると、構文エラーが発生した際にエラー箇所を type が :ERROR であるようなノードに置き換えてツリーを生成します。
@raise SyntaxError string が Ruby のコードとして正しくない場合に発生します。
//emlist[][ru......ubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
# => (SCOPE@1:0-1:9
# tbl: [:x]
# args: nil
# body:
# (LASGN@1:0-1:9 :x
# (OPCALL@1:4-1:9 (LIT@1:4-1:5 1) :+ (LIST@1:8-1:9 (LIT@1:8-1:9 2) nil))))
pp RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2", error_tolerant: true)
# =>... -
RubyVM
:: AbstractSyntaxTree . parse(string , keep _ script _ lines: false , error _ tolerant: false , keep _ tokens: false) -> RubyVM :: AbstractSyntaxTree :: Node (6307.0) -
文字列を抽象構文木にパースし、その木の根ノードを返します。
...string パースする対象の Ruby のコードを文字列で指定します。
@param keep_script_lines true を指定すると、 Node#script_lines でノードと関連づけられたソースコードのテキストを取得できます。
@param keep_tokens true を指定すると、 Node#to......rror_tolerant true を指定すると、構文エラーが発生した際にエラー箇所を type が :ERROR であるようなノードに置き換えてツリーを生成します。
@raise SyntaxError string が Ruby のコードとして正しくない場合に発生します。
//emlist[][ru......ubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
# => (SCOPE@1:0-1:9
# tbl: [:x]
# args: nil
# body:
# (LASGN@1:0-1:9 :x
# (OPCALL@1:4-1:9 (LIT@1:4-1:5 1) :+ (LIST@1:8-1:9 (LIT@1:8-1:9 2) nil))))
pp RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2", error_tolerant: true)
# =>... -
Ripper
. tokenize(src , filename = & # 39;-& # 39; , lineno = 1 , raise _ errors: false) -> [String] (6119.0) -
Ruby プログラム str をトークンに分割し、そのリストを返します。
...Ruby プログラム str をトークンに分割し、そのリストを返します。
@param src Ruby プログラムを文字列か IO オブジェクトで指定します。
@param filename src のファイル名を文字列で指定します。省略すると "-" になります。
@param......s true を指定すると、src にエラーがある場合に例外(SyntaxError)を発生させます。省略すると false になります。
@raise SyntaxError raise_errors が true で、src に文法エラーがある場合に発生します。
//emlist[][ruby]{
require 'ripper'
p Ripper.t......m(a) nil end")
# => ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]
Ripper.tokenize("def req(true) end", raise_errors: true)
# => SyntaxError (syntax error, unexpected `true', expecting ')')
//}
Ripper.tokenize は空白やコメントも含め、
元の文字列にある文字は 1 バ... -
Psych
. load _ stream(yaml , filename=nil) -> [object] (6113.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。
...mlist[例][ruby]{
Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
//}
ブロックありの場合は各オブジェクト引数としてそのブロックを呼び出します。
//emlist[例][ruby]{
list = []
Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
list <<......ist # => ['foo', 'bar']
//}
filename はパース中に発生した例外のメッセージに用います。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@param filename Psych::SyntaxError 発生時にファイル名として表示する文字列。
@raise Psych::Syntax... -
Psych
. load _ stream(yaml , filename=nil) {|obj| . . . } -> () (6113.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。
...mlist[例][ruby]{
Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
//}
ブロックありの場合は各オブジェクト引数としてそのブロックを呼び出します。
//emlist[例][ruby]{
list = []
Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
list <<......ist # => ['foo', 'bar']
//}
filename はパース中に発生した例外のメッセージに用います。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@param filename Psych::SyntaxError 発生時にファイル名として表示する文字列。
@raise Psych::Syntax... -
Psych
. load _ documents(yaml) -> [object] (6107.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。 このメソッドは deprecated です。Psych.load_stream を代わりに 使ってください。
...ジェクトに変換します。
このメソッドは deprecated です。Psych.load_stream を代わりに
使ってください。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたとき... -
Psych
. load _ documents(yaml) {|obj| . . . } -> () (6107.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。 このメソッドは deprecated です。Psych.load_stream を代わりに 使ってください。
...ジェクトに変換します。
このメソッドは deprecated です。Psych.load_stream を代わりに
使ってください。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたとき... -
RubyVM
:: AbstractSyntaxTree . parse _ file(pathname) -> RubyVM :: AbstractSyntaxTree :: Node (6107.0) -
pathname のファイルを読み込み、その内容を抽象構文木にパースし、その木の根ノードを返します。
...pathname のファイルを読み込み、その内容を抽象構文木にパースし、その木の根ノードを返します。
@param pathname パースする対象のファイルパスを指定します
@raise SyntaxError pathname から取得された文字列が Ruby のコードとして......//emlist[][ruby]{
pp RubyVM::AbstractSyntaxTree.parse_file(__FILE__)
# => (SCOPE@1:0-1:50
# tbl: []
# args: nil
# body:
# (FCALL@1:0-1:50 :pp
# (LIST@1:3-1:50
# (CALL@1:3-1:50
# (COLON2@1:3-1:29 (CONST@1:3-1:9 :RubyVM) :AbstractSyntaxTree)
#......:parse_file (LIST@1:41-1:49 (STR@1:41-1:49 "") nil)) nil)))
//}......pathname のファイルを読み込み、その内容を抽象構文木にパースし、その木の根ノードを返します。
@param pathname パースする対象のファイルパスを指定します
@param keep_script_lines true を指定すると、 Node#script_lines でノードと関......m keep_tokens true を指定すると、 Node#token が利用できます。
@param error_tolerant true を指定すると、構文エラーが発生した際にエラー箇所を type が :ERROR であるようなノードに置き換えてツリーを生成します。
@raise SyntaxError pathname... -
RubyVM
:: AbstractSyntaxTree . parse _ file(pathname , keep _ script _ lines: false , error _ tolerant: false , keep _ tokens: false) -> RubyVM :: AbstractSyntaxTree :: Node (6107.0) -
pathname のファイルを読み込み、その内容を抽象構文木にパースし、その木の根ノードを返します。
...pathname のファイルを読み込み、その内容を抽象構文木にパースし、その木の根ノードを返します。
@param pathname パースする対象のファイルパスを指定します
@param keep_script_lines true を指定すると、 Node#script_lines でノードと関......m keep_tokens true を指定すると、 Node#token が利用できます。
@param error_tolerant true を指定すると、構文エラーが発生した際にエラー箇所を type が :ERROR であるようなノードに置き換えてツリーを生成します。
@raise SyntaxError pathname......//emlist[][ruby]{
pp RubyVM::AbstractSyntaxTree.parse_file(__FILE__)
# => (SCOPE@1:0-1:50
# tbl: []
# args: nil
# body:
# (FCALL@1:0-1:50 :pp
# (LIST@1:3-1:50
# (CALL@1:3-1:50
# (COLON2@1:3-1:29 (CONST@1:3-1:9 :RubyVM) :AbstractSyntaxTree)
#... -
Ripper
. lex(src , filename = & # 39;-& # 39; , lineno = 1 , raise _ errors: false) -> [[Integer , Integer] , Symbol , String , Ripper :: Lexer :: State] (319.0) -
Ruby プログラム str をトークンに分割し、そのリストを返します。 ただし Ripper.tokenize と違い、トークンの種類と位置情報も付属します。
...Ruby プログラム str をトークンに分割し、そのリストを返します。
ただし Ripper.tokenize と違い、トークンの種類と位置情報も付属します。
@param src Ruby プログラムを文字列か IO オブジェクトで指定します。
@param filename src......@param raise_errors true を指定すると、src にエラーがある場合に例外(SyntaxError)を発生させます。省略すると false になります。
@raise SyntaxError raise_errors が true で、src に文法エラーがある場合に発生します。
//emlist[][ruby]{
require......n_ident, "m", ENDFN],
# [[1, 5], :on_lparen, "(", BEG|LABEL],
# [[1, 6], :on_ident, "a", ARG],
# [[1, 7], :on_rparen, ")", ENDFN],
# [[1, 8], :on_sp, " ", BEG],
# [[1, 9], :on_kw, "nil", END],
# [[1, 12], :on_sp, " ", END],
# on_kw, "end", END
Ripper.lex("def req(true) e... -
Psych
. safe _ load(yaml , legacy _ permitted _ classes=[] , legacy _ permitted _ symbols=[] , legacy _ aliases=false , legacy _ filename=nil) -> object (207.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...クトしか変換しません。
* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデータ構造はデフォルトでは許可されていません。
任意のクラスを許可するにはキーワード引数 permitted_classes を指定すると、
そ......加されます。例えば Date クラスを許可するには
以下のように書いてください:
//emlist[permitted_classes: に Date を渡した例][ruby]{
Psych.safe_load(yaml, permitted_classes: [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれま......aliases を指定することで明示的に許可できます。
//emlist[aliases: true の例][ruby]{
x = []
x << x
yaml = Psych.dump x
Psych.safe_load yaml # => 例外発生
Psych.safe_load yaml, aliases: true # => エイリアスが読み込まれる
//}
yaml に許可されて... -
Psych
. safe _ load(yaml , permitted _ classes: [] , permitted _ symbols: [] , aliases: false , filename: nil , fallback: nil , symbolize _ names: false) -> object (207.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...クトしか変換しません。
* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデータ構造はデフォルトでは許可されていません。
任意のクラスを許可するにはキーワード引数 permitted_classes を指定すると、
そ......加されます。例えば Date クラスを許可するには
以下のように書いてください:
//emlist[permitted_classes: に Date を渡した例][ruby]{
Psych.safe_load(yaml, permitted_classes: [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれま......aliases を指定することで明示的に許可できます。
//emlist[aliases: true の例][ruby]{
x = []
x << x
yaml = Psych.dump x
Psych.safe_load yaml # => 例外発生
Psych.safe_load yaml, aliases: true # => エイリアスが読み込まれる
//}
yaml に許可されて... -
Psych
. safe _ load(yaml , permitted _ classes: [] , permitted _ symbols: [] , aliases: false , filename: nil , fallback: nil , symbolize _ names: false , freeze: false) -> object (207.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...クトしか変換しません。
* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデータ構造はデフォルトでは許可されていません。
任意のクラスを許可するにはキーワード引数 permitted_classes を指定すると、
そ......加されます。例えば Date クラスを許可するには
以下のように書いてください:
//emlist[permitted_classes: に Date を渡した例][ruby]{
Psych.safe_load(yaml, permitted_classes: [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれま......aliases を指定することで明示的に許可できます。
//emlist[aliases: true の例][ruby]{
x = []
x << x
yaml = Psych.dump x
Psych.safe_load yaml # => 例外発生
Psych.safe_load yaml, aliases: true # => エイリアスが読み込まれる
//}
yaml に許可されて... -
Psych
. safe _ load(yaml , whitelist _ classes = [] , whitelist _ symbols = [] , aliases = false , filename = nil) -> object (207.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデータ構造はデフォルトでは許可されていません。
任意のクラスを許可するには whitelist_classes を指定すると、
そのクラスが追加されます。例えば Date ク......いてください:
//emlist[][ruby]{
Psych.safe_load(yaml, [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれます。
エイリアスは aliases パラメーターを変更することで明示的に許可できます。
//emlist[例][ruby]{
x = []
x << x
y......aml = Psych.dump x
Psych.safe_load yaml # => 例外発生
Psych.safe_load yaml, [], [], true # => エイリアスが読み込まれる
//}
yaml にホワイトリストにないクラスが含まれていた場合は、
Psych::DisallowedClass 例外が発生します。
yaml がエ... -
Psych
. safe _ load(yaml , whitelist _ classes = [] , whitelist _ symbols = [] , aliases = false , filename = nil , symbolize _ names: false) -> object (207.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデータ構造はデフォルトでは許可されていません。
任意のクラスを許可するには whitelist_classes を指定すると、
そのクラスが追加されます。例えば Date ク......いてください:
//emlist[][ruby]{
Psych.safe_load(yaml, [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれます。
エイリアスは aliases パラメーターを変更することで明示的に許可できます。
//emlist[例][ruby]{
x = []
x << x
y......aml = Psych.dump x
Psych.safe_load yaml # => 例外発生
Psych.safe_load yaml, [], [], true # => エイリアスが読み込まれる
//}
yaml にホワイトリストにないクラスが含まれていた場合は、
Psych::DisallowedClass 例外が発生します。
yaml がエ... -
Psych
. load(yaml , filename = nil , fallback = false) -> object (119.0) -
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
...ェクト)
@param filename Psych::SyntaxError 発生時にファイル名として表示する文字列。
@param fallback 引数 yaml に空のYAMLを指定した場合の戻り値を指定します。デフォルトは false です。
@raise Psych::SyntaxError YAMLドキュメントに文法エラ......t[例][ruby]{
Psych.load("--- a") # => 'a'
Psych.load("---\n - a\n - b") # => ['a', 'b']
begin
Psych.load("--- `", "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for t......he next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場合はハッシュのキー
を Symbol に変換して返します。... -
Psych
. load(yaml , filename = nil , fallback: false , symbolize _ names: false) -> object (119.0) -
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
...た例外のメッセージに用います。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@param filename Psych::SyntaxError 発生時にファイル名として表示する文字列。
@param fallback 引数 yaml に空のYAMLを指定した場合の戻り値を指定......す。
true を指定した場合は変換します。デフォルトでは
文字列に変換されます。
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたときに発生します
@see Psych.parse
//emlist[例][rub......ych.load("--- `", "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場......--- `", filename: "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場... -
Psych
. load(yaml , filename: nil , fallback: false , symbolize _ names: false) -> object (119.0) -
YAML ドキュメントを Ruby のデータ構造(オブジェクト)に変換します。
...た例外のメッセージに用います。
@param yaml YAML ドキュメント(文字列 or IO オブジェクト)
@param filename Psych::SyntaxError 発生時にファイル名として表示する文字列。
@param fallback 引数 yaml に空のYAMLを指定した場合の戻り値を指定......す。
true を指定した場合は変換します。デフォルトでは
文字列に変換されます。
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたときに発生します
@see Psych.parse
//emlist[例][rub......--- `", filename: "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5"
end
//}
キーワード引数 symbolize_names に true を指定した場... -
Psych
. parse(yaml , filename = nil) -> Psych :: Nodes :: Document (119.0) -
YAML ドキュメントをパースし、YAML の AST を返します。
...トをパースし、YAML の AST を返します。
入力に複数のドキュメントが含まれている場合は、先頭のものを AST に変換して
返します。
filename はパース中に発生した例外のメッセージに用います。
AST については Psych::Nodes を......me Psych::SyntaxError 発生時にファイル名として表示する文字列。
@raise Psych::SyntaxError YAMLドキュメントに文法エラーが発見されたときに発生します
@see Psych.load
//emlist[例][ruby]{
Psych.parse("---\n - a\n - b") # => #<Psych::Nodes::Document:...>
beg......in
Psych.parse("--- `", "file.txt")
rescue Psych::SyntaxError => ex
p ex.file # => 'file.txt'
p ex.message # => "(file.txt): found character that cannot start any token while scanning for the next token at line 1 column 5"
end
//}...