別のキーワード
クラス
- Object (24)
- String (23)
- StringScanner (24)
- Symbol (5)
モジュール
- Psych (8)
検索結果
先頭5件
-
Object
# frozen? -> bool (18119.0) -
オブジェクトが凍結(内容の変更を禁止)されているときに真を返します。
...オブジェクトが凍結(内容の変更を禁止)されているときに真を返します。
//emlist[][ruby]{
obj = "someone"
p obj.frozen? #=> false
obj.freeze
p obj.frozen? #=> true
//}
@see Object#freeze... -
ruby 1
. 6 feature (5155.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) ->......EWOULDBLOCK
=> ruby 1.6.7 (2002-03-01) [i586-linux]
Errno::EAGAIN
Errno::EWOULDBLOCK
=> ruby 1.6.8 (2002-12-24) [i586-linux]
Errno::EAGAIN
-:2: uninitialized constant EWOULDBLOCK at Errno (NameError)
=> ruby 1.6.8 (2003-02-13) [i......ATOR
: File::PATH_SEPARATOR
: RUBY_PLATFORM
: RUBY_RELEASE_DATE
: RUBY_VERSION
これらは、freeze された文字列になりました。
p File::SEPARATOR.frozen?
p File::ALT_SEPARATOR.frozen?
p File::PATH_SEPARATOR.frozen?
=> ruby 1.6.5 (2001-09-19) [i586-li... -
NEWS for Ruby 3
. 0 . 0 (3201.0) -
NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...NEWS for Ruby 3.0.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリス......in Ruby 2.7 will now
result in ArgumentError or different behavior. 14183
* Procs accepting a single rest argument and keywords are no longer
subject to autosplatting. This now matches the behavior of Procs
accepting a single rest argument and no keywords.
16166
//emlist[][ruby]{......bility issues
Excluding feature bug fixes.
* Regexp literals and all Range objects are frozen. 8948 16377 15504
//emlist[][ruby]{
/foo/.frozen? #=> true
(42...).frozen? # => true
//}
* EXPERIMENTAL: Hash#each consistently yields a 2-element array. 12706
* Now `{ a: 1 }.each(&->(k, v) { }... -
Range (90.0)
-
範囲オブジェクトのクラス。 範囲オブジェクトは文字どおり何らかの意味での範囲を表します。数の範囲はもちろん、 日付の範囲や、「"a" から "z" まで」といった文字列の範囲を表すこともできます。
...[範囲オブジェクトの例][ruby]{
Range.new(1, 5) # 1 以上 5 以下
1..5 # 同上
1...5 # 1 以上 5 未満
//}
この例で分かるように、範囲オブジェクトは終端を含む範囲も含まない範囲も表せます。
Ruby 2.6.0 からは、終端に nil......した。
//emlist[終端を持たない範囲オブジェクト][ruby]{
p Range.new(1, nil) # 1 以上(上限無し)を表す
p(1..nil) # 同上
p(1..) # 同上(略した書き方)
//}
また、Ruby 2.7.0 では始端に nil を与えることで「始端を持た......。
//emlist[][ruby]{
range = 1..10
range.first # => 1
range.first = 1 # => NoMethodError
//}
また、Ruby 3.0.0 からすべての Range オブジェクトは freeze されるようになりました。
//emlist[][ruby]{
p (1..10).frozen?
# => true
p Range.new(1, 10).frozen?
# => true
//}... -
Psych
. safe _ load(yaml , legacy _ permitted _ classes=[] , legacy _ permitted _ symbols=[] , legacy _ aliases=false , legacy _ filename=nil) -> object (70.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
デフォルトでは以下のクラスのオブジェクトしか変換しません。
* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデ......例][ruby]{
Psych.safe_load(yaml, permitted_classes: [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれます。
エイリアスはキーワード引数 aliases を指定することで明示的に許可できます。
//emlist[aliases: true の例][ruby]{
x =......reeze: true の例][ruby]{
require "psych"
data = <<~EOS
aaa:
bbb: [hoge]
EOS
yaml = Psych.load(data, freeze: true)
p yaml
# => {"aaa"=>{"bbb"=>["hoge"]}}
p yaml.frozen? # = true
p yaml["aaa"].frozen? # = true
p yaml["aaa"]["bbb"].frozen? # = true... -
Psych
. safe _ load(yaml , permitted _ classes: [] , permitted _ symbols: [] , aliases: false , filename: nil , fallback: nil , symbolize _ names: false , freeze: false) -> object (70.0) -
安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
...安全に YAML フォーマットの文書を読み込み Ruby のオブジェクトを生成して返します。
デフォルトでは以下のクラスのオブジェクトしか変換しません。
* TrueClass
* FalseClass
* NilClass
* Numeric
* String
* Array
* Hash
再帰的なデ......例][ruby]{
Psych.safe_load(yaml, permitted_classes: [Date])
//}
すると上のクラス一覧に加えて Date クラスが読み込まれます。
エイリアスはキーワード引数 aliases を指定することで明示的に許可できます。
//emlist[aliases: true の例][ruby]{
x =......reeze: true の例][ruby]{
require "psych"
data = <<~EOS
aaa:
bbb: [hoge]
EOS
yaml = Psych.load(data, freeze: true)
p yaml
# => {"aaa"=>{"bbb"=>["hoge"]}}
p yaml.frozen? # = true
p yaml["aaa"].frozen? # = true
p yaml["aaa"]["bbb"].frozen? # = true... -
Regexp (42.0)
-
正規表現のクラス。正規表現のリテラルはスラッシュで囲んだ形式 で記述します。
...はスラッシュで囲んだ形式
で記述します。
//emlist[][ruby]{
/^this is regexp/
//}
Regexp.new(string) を使って正規表現オブジェクトを動的に生成する
こともできます。
//emlist[][ruby]{
str = "this is regexp"
rp1 = Regexp.new("^this is regexp")
p rp1 =~ s......"this is regexp"
//}
Ruby 3.0.0 から正規表現リテラルは freeze されるようになりました。
//emlist[][ruby]{
p /abc/.frozen?
# => true
p /a#{42}bc/.frozen?
# => true
p Regexp.new('abc').frozen?
# => false
//}
spec/regexp や d:spec/literal#regexp も参照してください。... -
StringScanner
# string -> String (30.0) -
スキャン対象にしている文字列を返します。
...返します。
//emlist[例][ruby]{
require 'strscan'
s = StringScanner.new('test string')
s.string # => "test string"
//}
返り値は freeze されていません。
//emlist[例][ruby]{
require 'strscan'
s = StringScanner.new('test string')
s.string.frozen? # => false
//}
なお、この......って保証されるわけではありません。
この仕様に依存したコードを書かないようにしましょう。
//emlist[例][ruby]{
require 'strscan'
str = 'test string'
s = StringScanner.new(str)
s.string == str # => true
s.string.eql?(str) # => true (将来は false にな......の文字列を変更することも保証されません。
この仕様に依存したコードを書かないでください。
//emlist[例][ruby]{
require 'strscan'
str = 'test string'
s = StringScanner.new(str)
s.string.replace("0123")
s.scan(/\w+/) # => "0123" (将来は "test" が返... -
ENV (24.0)
-
環境変数を表すオブジェクト。Hash と同様のインターフェースを持ち ます。ただし、Hash と異なり、ENV のキーと値には文字列しか とることができません。
.../emlist[例][ruby]{
p ENV['TERM'].tainted? # => true
p path = ENV['PATH'] # => "/usr/local/bin:/usr/bin:/bin:/usr/X11/bin"
p path.tainted? # => false
//}
また、ENV で得られる文字列は Object#freeze されています。
//emlist[例][ruby]{
p ENV['TERM'].frozen? # => true
/....../}
Windows では環境変数は大文字、小文字を区別しません。(cygwin を除く)
//emlist[例][ruby]{
ENV['OS'] # => Windows_NT
ENV['os'] # => Windows_NT
//}... -
Object
# freeze -> self (24.0) -
オブジェクトを凍結(内容の変更を禁止)します。
...自体を凍結したい
場合は、グローバル変数なら Kernel.#trace_var が使えます。
@return self を返します。
//emlist[][ruby]{
a1 = "foo".freeze
a1 = "bar"
p a1 #=> "bar"
a2 = "foo".freeze
a2.replace("bar") # can't modify frozen String (RuntimeError)
//}
凍結を解除......きます。
//emlist[][ruby]{
a = [1].freeze
p a.frozen? #=> true
a[0] = "foo"
p a # can't modify frozen Array (RuntimeError)
b = a.dup
p b #=> [1]
p b.frozen? #=> false
b[0] = "foo"
p b #=> ["foo"]
//}
@see Object#frozen?,Object#dup,Kernel.#trace_va......自体を凍結したい
場合は、グローバル変数なら Kernel.#trace_var が使えます。
@return self を返します。
//emlist[][ruby]{
a1 = "foo".freeze
a1 = "bar"
p a1 #=> "bar"
a2 = "foo".freeze
a2.replace("bar") # can't modify frozen String (FrozenError)
//}
凍結を解除......きます。
//emlist[][ruby]{
a = [1].freeze
p a.frozen? #=> true
a[0] = "foo"
p a # can't modify frozen Array (FrozenError)
b = a.dup
p b #=> [1]
p b.frozen? #=> false
b[0] = "foo"
p b #=> ["foo"]
//}
@see Object#frozen?,Object#dup,Kernel.#trace_var... -
ENV (18.0)
-
環境変数を表すオブジェクト。Hash と同様のインターフェースを持ち ます。ただし、Hash と異なり、ENV のキーと値には文字列しか とることができません。
...ENV で得られる文字列は Object#freeze されています。
//emlist[例][ruby]{
p ENV['TERM'].frozen? # => true
//}
Windows では環境変数は大文字、小文字を区別しません。(cygwin を除く)
//emlist[例][ruby]{
ENV['OS'] # => Windows_NT
ENV['os'] # => Windows_NT
//}... -
String
# +@ -> String | self (18.0) -
self が freeze されている文字列の場合、元の文字列の複製を返します。 freeze されていない場合は self を返します。
...を返します。
freeze されていない場合は self を返します。
//emlist[例][ruby]{
# frozen_string_literal: false
original_text = "text"
unfrozen_text = +original_text
unfrozen_text.frozen? # => false
original_text == unfrozen_text # => true
original_text.equ......al?(unfrozen_text) # => true
original_text = "text".freeze
unfrozen_text = +original_text
unfrozen_text.frozen? # => false
original_text == unfrozen_text # => true
original_text.equal?(unfrozen_text) # => false
//}
@see String#-@... -
String
# -@ -> String | self (18.0) -
self が freeze されている文字列の場合、self を返します。 freeze されていない場合は元の文字列の freeze された (できる限り既存の) 複製を返します。
...字列の freeze された (できる限り既存の) 複製を返します。
//emlist[例][ruby]{
# frozen_string_literal: false
original_text = "text"
frozen_text = -original_text
frozen_text.frozen? # => true
original_text == frozen_text # => true
original_text.equal?(fr......ozen_text) # => false
original_text = "text".freeze
frozen_text = -original_text
frozen_text.frozen? # => true
original_text == frozen_text # => true
original_text.equal?(frozen_text) # => true
//}
@see String#+@...