ライブラリ
- ビルトイン (33)
-
fiddle
/ import (12) - json (12)
- objspace (12)
- openssl (12)
- ostruct (43)
-
rexml
/ sax2listener (12) - socket (36)
- zlib (12)
クラス
- Data (6)
- MatchData (4)
-
OpenSSL
:: ASN1 :: Constructive (12) - OpenStruct (43)
-
RubyVM
:: InstructionSequence (20) -
Socket
:: Option (36)
モジュール
-
Fiddle
:: Importer (12) - ObjectSpace (12)
-
REXML
:: SAX2Listener (12)
キーワード
- CircularDatastructure (12)
-
DATA
_ PTR (12) -
Data
_ Get _ Struct (12) -
Data
_ Make _ Struct (12) -
Data
_ Wrap _ Struct (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 3
. 0 . 0 (5) - RDATA (12)
-
RUBY
_ DATA _ FUNC (12) - Ruby用語集 (12)
- ZStream (12)
-
blk
_ free (12) -
blk
_ mark (12) -
blk
_ orphan (12) -
bm
_ mark (12) -
count
_ tdata _ objects (12) - data (12)
- deconstruct (5)
-
deconstruct
_ keys (5) -
each
_ pair (24) - linger (12)
-
load
_ from _ binary _ extra _ data (10) -
processing
_ instruction (12) -
ruby 1
. 9 feature (12) - tagging (12)
-
to
_ binary (10) -
to
_ h (19) -
to
_ s (12) -
trace
_ ev (12) -
undef
_ setter (12) - union (12)
-
val
_ setter (12) - yaml (12)
検索結果
先頭5件
-
Data (38048.0)
-
「値オブジェクト(value object)」の定義に利用できるクラスです。
...せん。
Data.define でオブジェクトのクラスを定義できます。定義されたクラスは Data のサブクラスとなります。
Data のサブクラスでは、メンバに対するアクセスメソッドが定義されています。
Data と似たクラスに Struct があ......ります。Struct はメンバの書き換えや列挙が可能であるなど、
よりコンテナ風の API を提供するクラスです。
//emlist[例][ruby]{
# Dogクラスを定義
Dog = Data.define(:name, :age)
# Dogクラスのインスタンスを作成
fred = Dog.new("Fred", 5)
#......fred.name # => "Fred"
# キーワード引数でも構築できる
p Dog.new(name: "Terry", age: 3)
# メンバの値を書き換えることはできない
fred.age = 6 # => NoMethodError
//}
なお、Ruby 2.7 以前に存在し Ruby 3.0 で削除された Data クラスとは異なります。... -
Data
# deconstruct -> [object] (27130.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......ure.new(10, 'km')
case distance
in n, 'km' # 裏側で #deconstruct を呼ぶ
puts "It is #{n} kilometers away"
else
puts "Don't know how to handle it"
end
# "It is 10 kilometers away" が表示される
# 以下のようにも書ける
case distance
in Measure(n, 'km')
puts "It is #{n} kilo......meters away"
# ...
end
//}
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see d:spec/pattern_matching#matching_non_prim... -
Data
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (27130.0) -
self のメンバの名前と値の組を Hash で返します。
...前と値の組を 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 "Don't know how to handl......の場合は全てのメンバを意味します。
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び
出す事を想定しています。Data.define は Data のサブクラスを作成する点に
注意してください。
@see d:spec/pattern_... -
VALUE Data
_ Make _ Struct(VALUE klass , type , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , type *svar) (12442.0) -
type 型の構造体をヒープに割り当ててそれへのポインタを svar に代入し、クラス klass のインスタンスである Ruby のオブジェクトを生成し、それを返します。mark free はそれぞれマーク用・解放用の関数へのポインタです。 どちらも、必要ないときはかわりに 0 を渡します。
...UBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には svar の値が渡されます。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct my......type *dummy;
return Data_Make_Struct(MyClass, struct mytype,
mark_my, free_my, dummy);
}... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (12442.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
...RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype......*m = malloc(sizeof(struct mytype));
m->i = 0;
m->s = 0;
return Data_Wrap_Struct(MyClass, 0, free_my, m);
}... -
void Data
_ Get _ Struct(VALUE obj , type , type *svar) (12230.0) -
Ruby のオブジェクト obj から type 型へのポインタを とりだし svar に代入します。
...j から type 型へのポインタを
とりだし svar に代入します。
使用例
struct mytype {
int i;
char *s;
};
VALUE
my_i(VALUE self)
{
struct mytype *m;
Data_Get_Struct(self, struct mytype, m);
return INT2NUM(m->i);
}... -
JSON
:: CircularDatastructure (12000.0) -
JSON 形式の文字列を生成するときに循環するデータ構造があるときに発生する例外です。
JSON 形式の文字列を生成するときに循環するデータ構造があるときに発生する例外です。 -
RubyVM
:: InstructionSequence . load _ from _ binary _ extra _ data(binary) -> String (9135.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#to_binary... -
MatchData
# deconstruct _ keys(array _ of _ names) -> Hash (9100.0) -
引数で指定された名前の名前付きキャプチャを Hash で返します。
...//emlist[例][ruby]{
m = /(?<hours>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2})/.match("18:37:22")
m.deconstruct_keys([:hours, :minutes]) # => {:hours => "18", :minutes => "37"}
m.deconstruct_keys(nil) # => {:hours => "18", :minutes => "37", :seconds => "22"}
# 名前付きキャプチャが定義......されていなかった場合は空のハッシュを返す
m = /(\d{2}):(\d{2}):(\d{2})/.match("18:37:22")
m.deconstruct_keys(nil) # => {}
//}
@see d:spec/pattern_matching#matching_non_primitive_objects... -
struct RData * RDATA(VALUE obj) (6300.0)
-
-
REXML
:: SAX2Listener # processing _ instruction(target , data) -> () (6207.0) -
XML 処理命令(PI)に対し呼び出されるコールバックメソッドです。
...XML 処理命令(PI)に対し呼び出されるコールバックメソッドです。
@param target ターゲット名が文字列で渡されます
@param data 処理命令の内容が文字列で渡されます... -
ObjectSpace
. # count _ tdata _ objects(result _ hash = nil) -> Hash (6134.0) -
T_DATA の種類ごとにオブジェクトの数を格納したハッシュを返します。
...T_DATA の種類ごとにオブジェクトの数を格納したハッシュを返します。
@param result_hash 戻り値のためのハッシュを指定します。省略した場合は新
しくハッシュを作成します。result_hash の内容は上書き......ruby]{
ObjectSpace.count_tdata_objects
# => {RubyVM::InstructionSequence=>504, :parser=>5, :barrier=>6,
# :mutex=>6, Proc=>60, RubyVM::Env=>57, Mutex=>1, Encoding=>99,
# ThreadGroup=>1, Binding=>1, Thread=>1, RubyVM=>1, :iseq=>1,
# Random=>1, ARGF.class=>1, Data=>1, :autoload=>3, Time=>2......オブジェクトです。それ
以外の内部的なオブジェクトの場合、キーはシンボルです。シンボルの値は
rb_data_type_struct に格納された名前が使用されます。
戻り値のハッシュは処理系に依存します。これは将来変更になるかも...