ライブラリ
- ビルトイン (212)
- bigdecimal (12)
-
irb
/ context (12) -
irb
/ extend-command (12) - psych (31)
- rubygems (12)
-
rubygems
/ remote _ fetcher (12) -
rubygems
/ specification (12) -
webrick
/ httpauth / htdigest (12) -
webrick
/ httpauth / htpasswd (12) -
webrick
/ httpauth / userdb (12)
クラス
- BigDecimal (12)
-
Gem
:: LoadError (12) -
Gem
:: RemoteFetcher (12) -
Gem
:: Specification (12) -
IRB
:: Context (12) - LoadError (12)
- Module (24)
- Object (36)
-
Psych
:: SyntaxError (12) -
RubyVM
:: InstructionSequence (20) -
WEBrick
:: HTTPAuth :: Htdigest (12) -
WEBrick
:: HTTPAuth :: Htpasswd (12)
モジュール
-
IRB
:: ExtendCommandBundle (12) - Kernel (72)
- Marshal (48)
- Psych (19)
-
WEBrick
:: HTTPAuth :: UserDB (12)
キーワード
-
$ -I (12) -
$ : (12) -
$ LOADED _ FEATURES (12) -
$ LOAD _ PATH (12) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - Marshal フォーマット (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 3 . 0 (10) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 1 . 0 (4) - Ruby用語集 (12)
-
_ dump (24) - autoload (24)
- autoload? (24)
- clone (12)
-
def
_ extend _ command (12) - download (12)
- dump (24)
- dup (12)
- file (12)
-
get
_ passwd (36) - irb (12)
-
load
_ from _ binary _ extra _ data (10) -
load
_ modules (12) -
loaded
_ from (12) - name (12)
- path (12)
-
rb
_ jump _ tag (12) - restore (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 4 feature (12) -
ruby 1
. 9 feature (12) -
safe
_ load (19) -
to
_ binary (10) - yaml (12)
- パターンマッチ (9)
検索結果
-
NEWS for Ruby 2
. 0 . 0 (78.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...非互換: Object#inspect は #to_s を呼び出さなくなりました。再定義された #to_s を呼び出すためです。
* LoadError
* 追加: LoadError#path ロードできなかったファイルのパスを返します
* Module
* 追加: Module#prepend 指定したモジ......* String
* 追加: String#b エンコーディングを ASCII-8BIT に設定したコピーされた文字列を返します
* 返り値変更:
* String#lines Enumerator ではなく Array を返します
* String#chars Enumerator ではなく Array を返します
* String......#codepoints Enumerator ではなく Array を返します
* String#bytes Enumerator ではなく Array を返します
* Struct
* 追加: Struct#to_h インスタンス変数の名前と値をハッシュのキーと値にしたハッシュを生成して返します
* Thread
*... -
NEWS for Ruby 2
. 3 . 0 (78.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...降の変更
=== 言語仕様の変更
* frozen-string-literal プラグマ:
* 実験的な機能として fronzen-string-literal というプラグマが導入されました。
8976
* さらに --enable/--disable=frozen-string-literal というコマンドラインオプション......も導入されました
8976
* コマンドラインオプションに --debug または --debug=frozen-string-literal を付けて実行すると、
freeze された文字列を操作しようとして RuntimeError が発生したときにそのオブジェクトが生成された......10600
* Regexp/String: Unicode のバージョンを 7.0.0 から 8.0.0 に更新
* RubyVM::InstructionSequence
* 実験的な機能としてiseqローダー用の低レベルな操作をするメソッドをいくつか追加
使用例は sample/iseq_loader.rb を見てくだ... -
NEWS for Ruby 2
. 7 . 0 (72.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...)
where(sales: ..100)
//}
* 「$;」にnil以外の値を設定すると警告が出るようになりました。 14240
nil以外の時はString#splitで参照した時も警告が出ます。
この警告は「-W:no-deprecated」オプションで止められます。
* 「$,」にn......nst_defined?のようにModule#autoload?が
inheritオプショナル引数を受け付けるようになりました。 15777
* Module#nameが常にfreezeされた文字列を返すようになりました。
同じModuleは常に同じStringを返します。
この......変更されたメソッド
* NilClass#to_s, TrueClass#to_s, FalseClass#to_sが
常にfreezeされたStringを返すようになりました。
返り値のStringは常に同じインスタンスになります。
この変更は実験的です。 16150
* ObjectSpac... -
NEWS for Ruby 3
. 1 . 0 (72.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...* Kernel#load が第2引数にモジュールを渡せるようになり、渡されたモジュールをトップレベルのモジュールとしてファイルを読み込むようになりました。 6210
* Marshal
* 変更されたメソッド
* Marshal.load が freeze: tru......には、ハッシュリテラルを使用する必要があります。 16806
* String
* Unicodeと絵文字のバージョンが13.0.0に更新されました。 17750 18029
* String#unpack と String#unpack1 が任意のバイト数をスキップした後にアンパックを開始す......* TracePoint のコールバック中に再入を許す TracePoint.allow_reentry が追加されました。 15912
* $LOAD_PATH
* 変更されたメソッド
* $LOAD_PATH.resolve_feature_path が失敗時に例外を発生させなくなりました。 16043
* Fiber Scheduler
*... -
yaml (60.0)
-
構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。
...i Suneo"] = {
"age" => 13,
"birthday" => Date.new(1992, 12, 21)
}
p str_r == YAML.load(str_l) # => true
//}
//emlist[例3: 構造化されたログ][ruby]{
require 'yaml'
require 'stringio'
strio_r = StringIO.new(<<~YAML_EOT)
---
time: 2008-02-25 17:03:12 +09:00
target: YAML
version:......正した。
---
time: 2008-02-24 17:00:35 +09:00
target: YAML
version: 3
log: |
アブストラクトを書いた。
YAML_EOT
YAML.load_stream(strio_r).sort_by{ |a| a["version"] }.each do |obj|
puts "version %d\ntime %s\ntarget:%s\n%s\n" % obj.values_at("version", "time", "target"......うにタグを指定することで、読み込み時に記述した値
の型を指定できます。
//emlist[例][ruby]{
require 'yaml'
p YAML.load(<<~EOS)
---
!ruby/sym :foo
EOS
# => :foo
//}
yaml では、Ruby 向けに以下のローカルタグを扱えます。
* !ruby/array: Array... -
irb (36.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...se
IRB.conf[:PROMPT] = {....}
IRB.conf[:PROMPT_MODE] = :DEFAULT
IRB.conf[:SINGLE_IRB] = false
IRB.conf[:SAVE_HISTORY] = nil
IRB.conf[:USE_LOADER] = true
IRB.conf[:USE_READLINE] = nil
IRB.conf[:USE_TRACER] = true
IRB.conf[:VERBOSE] = true
それぞれの設定値の詳細について......行し直す事ができます。
source という名前は UNIX シェルの source コマンドに由来します。
: irb_load(path, prev = nil)
Ruby の load の irb 版です。
ファイル path を Ruby スクリプトとみなし、
現在の irb インタプリタ上で実行し......れます。
: help(*names)
: irb_help(*names)
RI から Ruby のドキュメントを参照します。
//emlist{
irb(main):001:0> help String#match
...
//}
names を指定しなかった場合は、RI を対話的なモードで起動します。メソッ
ド名などを入力す......il
IRB.conf[:PROMPT] = {....}
IRB.conf[:PROMPT_MODE] = :DEFAULT
IRB.conf[:SINGLE_IRB] = false
IRB.conf[:SAVE_HISTORY] = nil
IRB.conf[:USE_LOADER] = true
IRB.conf[:USE_READLINE] = nil
IRB.conf[:USE_TRACER] = true
IRB.conf[:VERBOSE] = true
それぞれの設定値の詳細について......l
IRB.conf[:PROMPT] = {....}
IRB.conf[:PROMPT_MODE] = :DEFAULT
IRB.conf[:SINGLE_IRB] = false
IRB.conf[:SAVE_HISTORY] = 1000
IRB.conf[:USE_LOADER] = true
IRB.conf[:USE_READLINE] = nil
IRB.conf[:USE_TRACER] = true
IRB.conf[:VERBOSE] = true
それぞれの設定値の詳細について... -
Object
# clone(freeze: nil) -> object (18.0) -
オブジェクトの複製を作成して返します。
...ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> t......(shallow copy)といいます。
深い(deep)コピーが必要な場合には、
Marshalモジュールを利用して
//emlist[][ruby]{
Marshal.load(Marshal.dump(obj))
//}
このように複製を作成する方法があります。ただしMarshal出来ないオブジェクトが
含まれてい......には使えません。
//emlist[][ruby]{
obj = ["a","b","c"]
obj_d = obj.dup
obj_d[0] << "PLUS"
p obj #=> ["aPLUS", "b", "c"]
p obj_d #=> ["aPLUS", "b", "c"]
obj_m = Marshal.load(Marshal.dump(obj))
obj_m[1] << "PLUS"
p obj #=> ["aPLUS", "b", "c"]
p obj_m #=> ["aPLUS", "bPLUS", "c"]
//}......ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> f......ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.frozen?) #=> true
p(obj.... -
Object
# dup -> object (18.0) -
オブジェクトの複製を作成して返します。
...ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> t......(shallow copy)といいます。
深い(deep)コピーが必要な場合には、
Marshalモジュールを利用して
//emlist[][ruby]{
Marshal.load(Marshal.dump(obj))
//}
このように複製を作成する方法があります。ただしMarshal出来ないオブジェクトが
含まれてい......には使えません。
//emlist[][ruby]{
obj = ["a","b","c"]
obj_d = obj.dup
obj_d[0] << "PLUS"
p obj #=> ["aPLUS", "b", "c"]
p obj_d #=> ["aPLUS", "b", "c"]
obj_m = Marshal.load(Marshal.dump(obj))
obj_m[1] << "PLUS"
p obj #=> ["aPLUS", "b", "c"]
p obj_m #=> ["aPLUS", "bPLUS", "c"]
//}......ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> f......ているオブジェクトの freeze されていないコピーを作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.frozen?) #=> true
p(obj.... -
パターンマッチ (18.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...が、オブジェクトの一部の要素がマッチしていることを検査できます。
//emlist{
case ["a", 1, "b", "c", 2]
in [*, String, String, *]
"matched"
else
"not matched"
end
//}
===[a:variable_binding] 変数の束縛
深い構造検査の他のパターンマッチの重......、既に終了している
{a: 1, b: 2} in {a:}
//}
つまり、フラグの切り替えによって影響を受けるのは切り替え以降に load されたファイルや `eval` されたコードに限られます。
代わりに、コマンドラインオプションとして 『-W:no-expe......は、既に終了している
[0] => [*, 0, *]
//}
つまり、フラグの切り替えによって影響を受けるのは切り替え以降に load されたファイルや `eval` されたコードに限られます。
代わりに、コマンドラインオプションとして 『-W:no-exper... -
Marshal
. # dump(obj , port , limit = -1) -> IO (13.0) -
obj を指定された出力先に再帰的に出力します。
...と深さチェックを行いません。
デフォルトは -1 です。
@return port を省略すると、obj をダンプした String を返します。
port を指定すると port を返します。
@raise TypeError ファイルに書き出せないオブジェク......オブジェクトをダンプしようとした場合に発生します。
@raise ArgumentError limit 段以上深くリンクしたオブジェクトをダンプしようと
した場合に発生します。
@see Object#marshal_dump, Object#marshal_load... -
void rb
_ jump _ tag(int tag) (12.0) -
初出: 4064
...初出: 4064
rb_load_protect,rb_eval_string_protect,rb_protect
などで捕捉した大域脱出を再生成します。
tagには上記関数の引数で受け取ったstateを指定します。...
