クラス
- BasicObject (36)
- Data (54)
- IO (48)
- MatchData (298)
- Object (12)
- Proc (7)
- Regexp (24)
-
RubyVM
:: InstructionSequence (20) - String (12)
- Symbol (9)
モジュール
-
GC
:: Profiler (12) - Kernel (12)
- Marshal (24)
- Process (48)
キーワード
-
$ ~ (12) - << (7)
- == (15)
- DATA (12)
- ENODATA (12)
- MatchData (12)
-
RLIMIT
_ DATA (12) -
SEEK
_ DATA (12) - [] (54)
- begin (12)
- byteoffset (6)
- captures (12)
- deconstruct (5)
-
deconstruct
_ keys (5) - define (6)
- dump (24)
- end (12)
- eql? (15)
- fdatasync (12)
- getrlimit (12)
- hash (15)
- inspect (15)
-
instance
_ eval (24) -
last
_ match (12) - length (12)
-
load
_ from _ binary _ extra _ data (10) - match (33)
- members (6)
-
method
_ missing (12) -
named
_ captures (12) - names (12)
- new (6)
- offset (24)
-
post
_ match (12) -
pre
_ match (12) -
raw
_ data (12) - regexp (12)
- seek (12)
- setrlimit (24)
- size (12)
- string (12)
- sysseek (12)
-
to
_ a (12) -
to
_ binary (10) -
to
_ h (6) -
to
_ s (15) -
values
_ at (12) - with (3)
検索結果
先頭5件
-
Data (38038.0)
-
「値オブジェクト(value object)」の定義に利用できるクラスです。
このクラスは Ruby 3.0 で削除されました。
拡張ライブラリを書く時に new が定義されているとまずい場合が
あるため、Object から new と allocate を undef したクラスです。
Ruby スクリプトレベルでは気にする必要は全くありません。...はありません。
Data.define でオブジェクトのクラスを定義できます。定義されたクラスは Data のサブクラスとなります。
Data のサブクラスでは、メンバに対するアクセスメソッドが定義されています。
Data と似たクラスに St......列挙が可能であるなど、
よりコンテナ風の API を提供するクラスです。
//emlist[例][ruby]{
# Dogクラスを定義
Dog = Data.define(:name, :age)
# Dogクラスのインスタンスを作成
fred = Dog.new("Fred", 5)
# メンバにアクセスできる
p fred.name # =>......"Fred"
# キーワード引数でも構築できる
p Dog.new(name: "Terry", age: 3)
# メンバの値を書き換えることはできない
fred.age = 6 # => NoMethodError
//}
なお、Ruby 2.7 以前に存在し Ruby 3.0 で削除された Data クラスとは異なります。... -
Data
. [](**kwargs) -> Data (21170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......aise ArgumentError 値オブジェクトのメンバの数より多くの引数を渡した場合に発生します。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
p1 = Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new......ケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # => in `new': w... -
Data
. [](*args) -> Data (21170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......aise ArgumentError 値オブジェクトのメンバの数より多くの引数を渡した場合に発生します。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
p1 = Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new......ケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # => in `new': w... -
Data
. new(**kwargs) -> Data (21170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......aise ArgumentError 値オブジェクトのメンバの数より多くの引数を渡した場合に発生します。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
p1 = Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new......ケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # => in `new': w... -
Data
. new(*args) -> Data (21170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......aise ArgumentError 値オブジェクトのメンバの数より多くの引数を渡した場合に発生します。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
p1 = Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new......ケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keyword: :y (ArgumentError)
Point.new(1, 2, 3) # => in `new': w... -
Data
# with(**kwargs) -> Data (21157.0) -
self をコピーしたオブジェクトを返します。
...場合に発生します。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
dog1 = Dog.new("Fred", 5) # => #<data Dog name="Fred", age=5>
dog2 = dog1.with(age: 6) # => #<data Dog name="Fred", age=6>
p dog1 # => #<data Dog name="Fred", age=5>
dog3 = dog1.with(type: "Terrie......dog1.name.upcase!
p dog1 # => #<data Dog name="FRED", age=5>
p dog2 # => #<data Dog name="FRED", age=6>
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する... -
Data
. define(*args) -> Class (21096.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...
Data クラスに新しいサブクラスを作って、それを返します。
サブクラスでは値オブジェクトのメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
p fred.name # =>......ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
fred.age = 6 # => NoMethodError
//}
メンバを持たないサブクラスも定義可能です。
以下のように、パターンマッチに利用できます。
//emlist[例][ruby]{
class HTTPFetcher
Response = Data.define(:bo......dy)
NotFound = Data.define
def get(url)
# ダミーの実装
if url == "http://example.com/"
Response.new(body: "Current time is #{Time.now}")
else
NotFound.new
end
end
end
def fetch(url)
fetcher = HTTPFetcher.new
case fetcher.get(url)
in HTTPFetcher::Respon... -
Data
. define(*args) {|subclass| block } -> Class (21096.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...
Data クラスに新しいサブクラスを作って、それを返します。
サブクラスでは値オブジェクトのメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
p fred.name # =>......ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
fred.age = 6 # => NoMethodError
//}
メンバを持たないサブクラスも定義可能です。
以下のように、パターンマッチに利用できます。
//emlist[例][ruby]{
class HTTPFetcher
Response = Data.define(:bo......dy)
NotFound = Data.define
def get(url)
# ダミーの実装
if url == "http://example.com/"
Response.new(body: "Current time is #{Time.now}")
else
NotFound.new
end
end
end
def fetch(url)
fetcher = HTTPFetcher.new
case fetcher.get(url)
in HTTPFetcher::Respon... -
Data
# hash -> Integer (21042.0) -
自身のハッシュ値を整数で返します。 Data#eql? で比較して等しいオブジェクトは同じハッシュ値を返します。
...自身のハッシュ値を整数で返します。
Data#eql? で比較して等しいオブジェクトは同じハッシュ値を返します。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
dog1 = Dog.new("Fred", 5)
p dog1.hash # => -3931425561194935428
dog2 = Dog.new("Fred", 5)
p dog2.ha......w("Fred", 6)
p dog3.hash # => -4469132459285820530
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see Object#hash... -
Data
# ==(other) -> bool (21032.0) -
self と other のクラスが同じであり、各メンバが == メソッドで比較して等しい場合に true を返します。そうでない場合に false を返します。
...Dog = Data.define(:name, :age)
dog1 = Dog.new("Fred", 5)
dog2 = Dog.new("Fred", 5.0)
p 5 == 5.0 # => true
p 5.eql?(5.0) # => false
p dog1 == dog2 # => true
p dog1.eql?(dog2) # => false
p dog1.equal?(dog2) # => false
//}
[注意] 本メソッドの記述は Data の......サブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see Object#==, Data#eql?... -
Data
# deconstruct -> [object] (21032.0) -
self のメンバの値を配列で返します。
...。
//emlist[例][ruby]{
Measure = Data.define(:amount, :unit)
distance = Measure.new(10, 'km')
distance.deconstruct # => [10, "km"]
//}
このメソッドは以下のようにパターンマッチで利用されます。
//emlist[例][ruby]{
Measure = Data.define(:amount, :unit)
distance = Meas......')
puts "It is #{n} kilometers away"
# ...
end
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see d:spec/pattern_... -
Data
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (21032.0) -
self のメンバの名前と値の組を Hash で返します。
...self のメンバの名前と値の組を Hash で返します。
//emlist[例][ruby]{
Measure = Data.define(:amount, :unit)
distance = Measure.new(10, 'km')
distance.deconstruct_keys(nil) # => {:amount=>10, :unit=>"km"}
distance.deconstruct_keys([:amount]) # => {:amount=>10}
//}
このメ......ソッドは以下のようにパターンマッチで利用されます。
//emlist[例][ruby]{
Measure = Data.define(:amount, :unit)
distance = Measure.new(10, 'km')
case distance
in amount:, unit: 'km' # 裏側で #deconstruct_keys を呼ぶ
puts "It is #{amount} kilometers away"
else
puts......の場合は全てのメンバを意味します。
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see d:spec/pattern_... -
Data
# eql?(other) -> bool (21032.0) -
self と other のクラスが同じであり、各メンバが eql? メソッドで比較して等しい場合に true を返します。そうでない場合に false を返します。
...//emlist[例][ruby]{
Dog = Data.define(:name, :age)
dog1 = Dog.new("Fred", 5)
dog2 = Dog.new("Fred", 5)
p dog1 == dog2 # => true
p dog1.eql?(dog2) # => true
p dog1.equal?(dog2) # => false
//}
[注意] 本メソッドの記述は Data のサブクラスのイ......ンスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see Object#eql?, Data#==... -
Data
# inspect -> String (21032.0) -
self の内容を人間に読みやすい文字列にして返します。
...list[例][ruby]{
Customer = Data.define(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.inspect # => "#<data Customer name=\"Joe Smith\", address=\"123 Maple, Anytown NC\", zip=12345>"
//}
[注意] 本メソッドの記述は Data のサブクラスのイ......ンスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# to _ h -> Hash (21032.0) -
self のメンバ名(Symbol)と値の組を Hash にして返します。
...self のメンバ名(Symbol)と値の組を Hash にして返します。
//emlist[例][ruby]{
Customer = Data.define(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_h
# => {:name=>"Joe Smith", :address=>"123 Maple, Anytown NC", :zip=>12345}
//}
ブロックを......omer = Data.define(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_h {|member, value|
[member, value*2]
} # => {:name=>"Joe SmithJoe Smith", :address=>"123 Maple, Anytown NC123 Maple, Anytown NC", :zip=>24690}
//}
[注意] 本メソッドの記述は Data の......サブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# to _ h {|member , value| block } -> Hash (21032.0) -
self のメンバ名(Symbol)と値の組を Hash にして返します。
...self のメンバ名(Symbol)と値の組を Hash にして返します。
//emlist[例][ruby]{
Customer = Data.define(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_h
# => {:name=>"Joe Smith", :address=>"123 Maple, Anytown NC", :zip=>12345}
//}
ブロックを......omer = Data.define(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_h {|member, value|
[member, value*2]
} # => {:name=>"Joe SmithJoe Smith", :address=>"123 Maple, Anytown NC123 Maple, Anytown NC", :zip=>24690}
//}
[注意] 本メソッドの記述は Data の......サブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# to _ s -> String (21032.0) -
self の内容を人間に読みやすい文字列にして返します。
...list[例][ruby]{
Customer = Data.define(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.inspect # => "#<data Customer name=\"Joe Smith\", address=\"123 Maple, Anytown NC\", zip=12345>"
//}
[注意] 本メソッドの記述は Data のサブクラスのイ......ンスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# members -> [Symbol] (21026.0) -
値オブジェクトのメンバの名前(Symbol)の配列を返します。
...す。
//emlist[例][ruby]{
Foo = Data.define(:foo, :bar)
p Foo.new(1, 2).members # => [:foo, :bar]
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成す... -
Data
. members -> [Symbol] (21008.0) -
値オブジェクトのメンバの名前(Symbol)の配列を返します。
...値オブジェクトのメンバの名前(Symbol)の配列を返します。
//emlist[例][ruby]{
Foo = Data.define(:foo, :bar)
p Foo.members # => [:foo, :bar]
//}... -
Object
:: DATA -> File (6205.0) -
スクリプトの __END__ プログラムの終り以降をアクセスする File オブジェクト。
...んでおくことができます。
DATA 定数はそのデータ部分にアクセスするための File オブジェクトを保持しています。
__END__ を含まないプログラムにおいては DATA は定義されません。
=== 注意
* DATA.rewind で移動する読みとり......ファイル ($0) を指します。
=== 例1
print DATA.gets # => 故人西辞黄鶴楼
print DATA.gets # => 烟花三月下揚州
print DATA.gets # => 孤帆遠影碧空尽
print DATA.gets # => 唯見長江天際流
DATA.gets # => nil
__END__
故人西辞黄......江天際流
=== 例2
sum = 0
DATA.each_line do |line|
sum += line.to_i
end
DATA.rewind
p DATA.gets # => "sum = 0¥n"
__END__
17
19
23
29
31
=== 例3
DATA.gets # => uninitialized constant DATA (NameError)
=== 例4
ファイル... -
RubyVM
:: InstructionSequence . load _ from _ binary _ extra _ data(binary) -> String (6137.0) -
バイナリフォーマットの文字列から埋め込まれたextra_dataを取り出します。
...字列から埋め込まれたextra_dataを取り出します。
//emlist[例][ruby]{
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
binary = iseq.to_binary("extra_data")
RubyVM::InstructionSequence.load_from_binary_extra_data(binary) # => extra_data
//}
@see RubyVM::InstructionSequence... -
GC
:: Profiler . raw _ data -> [Hash , . . . ] | nil (6109.0) -
GC のプロファイル情報を GC の発生ごとに Hash の配列 (:GC_INVOKE_TIME が早いもの順)で返します。GC::Profiler が有効になっ ていない場合は nil を返します。
...します。GC::Profiler が有効になっ
ていない場合は nil を返します。
例:
GC::Profiler.enable
GC.start
GC::Profiler.raw_data
# => [
{
:GC_TIME=>1.3000000000000858e-05,
:GC_INVOKE_TIME=>0.010634999999999999,
:HEAP_USE_SIZE=>289640,
:HEAP_T... -
IO
:: SEEK _ DATA -> Integer (6103.0) -
IO#seek を参照してください。
IO#seek を参照してください。
Linux 3.1 以降で利用可能です。