種類
- インスタンスメソッド (55)
- 特異メソッド (14)
- クラス (2)
ライブラリ
- ビルトイン (71)
クラス
- Data (36)
-
Encoding
:: UndefinedConversionError (22) - Module (11)
キーワード
- == (2)
- Data (2)
- [] (4)
- deconstruct (2)
-
deconstruct
_ keys (2) -
destination
_ encoding (11) -
destination
_ encoding _ name (11) - eql? (2)
- hash (2)
- inspect (2)
- members (4)
- new (4)
-
private
_ method _ defined? (11) -
to
_ h (4) -
to
_ s (2) - with (2)
検索結果
先頭5件
-
Data
. define(*args) -> Class (29144.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...Data クラスに新しいサブクラスを作って、それを返します。
サブクラスでは値オブジェクトのメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
p fred.name # =>......{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
fred.age = 6 # => NoMethodError
//}
メンバを持たないサブクラスも定義可能です。
以下のように、パターンマッチに利用できます。
//emlist[例][ruby]{
class HTTPFetcher
Response = Data.define(:body)......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::Response(bo... -
Data
. define(*args) {|subclass| block } -> Class (29144.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...Data クラスに新しいサブクラスを作って、それを返します。
サブクラスでは値オブジェクトのメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
p fred.name # =>......{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
fred.age = 6 # => NoMethodError
//}
メンバを持たないサブクラスも定義可能です。
以下のように、パターンマッチに利用できます。
//emlist[例][ruby]{
class HTTPFetcher
Response = Data.define(:body)......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::Response(bo... -
Module
# private _ method _ defined?(name) -> bool (20200.0) -
インスタンスメソッド name がモジュールに定義されており、 しかもその可視性が private であるときに true を返します。 そうでなければ false を返します。
...かもその可視性が private であるときに true を返します。
そうでなければ false を返します。
@param name Symbol か String を指定します。
@see Module#method_defined?, Module#public_method_defined?, Module#protected_method_defined?
//emlist[例][ruby]{
module A......end
end
class B
private
def method2() end
end
class C < B
include A
def method3() end
end
A.method_defined? :method1 #=> true
C.private_method_defined? "method1" #=> false
C.private_method_defined? "method2" #=> true
C.method_defined? "method2"... -
Module
# private _ method _ defined?(name , inherit=true) -> bool (20200.0) -
インスタンスメソッド name がモジュールに定義されており、 しかもその可視性が private であるときに true を返します。 そうでなければ false を返します。
...インスタンスメソッド name がモジュールに定義されており、
しかもその可視性が private であるときに true を返します。
そうでなければ false を返します。
@param name Symbol か String を指定します。
@param inherit 真を指定すると......defined?, Module#public_method_defined?, Module#protected_method_defined?
//emlist[例][ruby]{
module A
def method1() end
end
class B
private
def method2() end
end
class C < B
include A
def method3() end
end
A.method_defined? :method1 #=> true
C.private_method_define......d? "method1" #=> false
C.private_method_defined? "method2" #=> true
C.private_method_defined? "method2", true #=> true
C.private_method_defined? "method2", false #=> false
C.method_defined? "method2" #=> false
//}... -
Encoding
:: UndefinedConversionError # destination _ encoding -> Encoding (17100.0) -
エラーを発生させた変換の変換先のエンコーディングを Encoding オブジェクトで返します。
...エラーを発生させた変換の変換先のエンコーディングを Encoding
オブジェクトで返します。
@see Encoding::UndefinedConversionError#source_encoding... -
Encoding
:: UndefinedConversionError # destination _ encoding _ name -> String (17100.0) -
エラーを発生させた変換の変換先のエンコーディングを文字列で返します。
...エラーを発生させた変換の変換先のエンコーディングを文字列で返します。
@see Encoding::UndefinedConversionError#destination_encoding... -
Data (14012.0)
-
「値オブジェクト(value object)」の定義に利用できるクラスです。
...はありません。
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 (11124.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......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': wron... -
Data
. [](*args) -> Data (11124.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......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': wron... -
Data
. new(**kwargs) -> Data (11124.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......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': wron... -
Data
. new(*args) -> Data (11124.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...(このメソッドは Data のサブクラスにのみ定義されています)
値オブジェクトを生成して返します。
@param args 値オブジェクトのメンバの値を指定します。
@param kwargs 値オブジェクトのメンバの値を指定します。
@return 値オ......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': wron... -
Data
# with(**kwargs) -> Data (11112.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
# deconstruct -> array (11018.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 = Measure......ce
in Measure(n, 'km')
puts "It is #{n} kilometers away"
# ...
end
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# deconstruct _ keys(array _ of _ names _ or _ nil) -> hash (11018.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......定します。nil の場合は全てのメンバを意味します。
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。... -
Data
# to _ h -> Hash (11018.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 (11018.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
# ==(other) -> bool (11012.0) -
self と other のクラスが同じであり、各メンバが == メソッドで比較して等しい場合に true を返します。そうでない場合に false を返します。
...og = 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
# eql?(other) -> bool (11012.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
# hash -> Integer (11012.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
# inspect -> String (11012.0) -
self の内容を人間に読みやすい文字列にして返します。
...ist[例][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] (11012.0) -
値オブジェクトのメンバの名前(Symbol)の配列を返します。
...。
//emlist[例][ruby]{
Foo = Data.define(:foo, :bar)
p Foo.new(1, 2).members # => [:foo, :bar]
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する... -
Data
# to _ s -> String (11012.0) -
self の内容を人間に読みやすい文字列にして返します。
...ist[例][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] (11006.0) -
値オブジェクトのメンバの名前(Symbol)の配列を返します。
...値オブジェクトのメンバの名前(Symbol)の配列を返します。
//emlist[例][ruby]{
Foo = Data.define(:foo, :bar)
p Foo.members # => [:foo, :bar]
//}...