ライブラリ
- ビルトイン (61)
- csv (3)
- etc (3)
-
fiddle
/ import (12) - json (1)
-
json
/ add / ostruct (2) -
json
/ add / struct (2) - mkmf (2)
- objspace (1)
- openssl (5)
- ostruct (17)
- rake (1)
-
rexml
/ document (10) -
rexml
/ parsers / pullparser (1) -
rexml
/ sax2listener (1) -
rexml
/ streamlistener (1) - socket (7)
- zlib (1)
クラス
- Addrinfo (3)
- Array (3)
- CSV (3)
-
Fiddle
:: CStruct (5) - Hash (1)
-
OpenSSL
:: ASN1 :: Constructive (3) - OpenStruct (18)
-
REXML
:: Element (1) -
REXML
:: Instruction (8) -
REXML
:: Parsers :: PullEvent (1) -
Rake
:: Application (1) - Range (1)
- RubyVM (1)
-
RubyVM
:: InstructionSequence (21) -
Socket
:: Option (3) - String (1)
- Struct (29)
モジュール
- Etc (1)
-
Fiddle
:: Importer (6) - Kernel (2)
- ObjectSpace (5)
-
OpenSSL
:: ASN1 (1) -
REXML
:: SAX2Listener (1) -
REXML
:: StreamListener (1)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) - == (3)
- Addrinfo (1)
- CStruct (1)
- CircularDatastructure (1)
- Constructive (1)
-
DATA
_ PTR (1) -
Data
_ Get _ Struct (1) -
Data
_ Make _ Struct (1) -
Data
_ Wrap _ Struct (1) - Group (1)
-
INSTRUCTION
_ NAMES (1) - InspectKey (1)
- Instruction (1)
- InstructionSequence (1)
- Marshal フォーマット (1)
-
NEWS for Ruby 2
. 0 . 0 (1) -
NEWS for Ruby 2
. 2 . 0 (1) -
NEWS for Ruby 2
. 3 . 0 (1) - OpenStruct (1)
- Passwd (1)
- RARRAY (1)
- RBASIC (1)
- RBIGNUM (1)
- RCLASS (1)
- RDATA (1)
- RFILE (1)
- RFLOAT (1)
- RHASH (1)
- RMODULE (1)
- ROBJECT (1)
- RREGEXP (1)
- RSTRING (1)
- RSTRUCT (1)
-
RUBY
_ DATA _ FUNC (1) - Ruby用語集 (1)
-
SC
_ THREAD _ DESTRUCTOR _ ITERATIONS (1) - ZStream (1)
- [] (3)
- []= (2)
-
absolute
_ path (1) -
base
_ label (1) - bigdecimal (1)
-
blk
_ copy _ prev (1) -
blk
_ free (1) -
blk
_ mark (1) -
blk
_ orphan (1) -
bm
_ mark (1) - clone (1)
- compile (1)
-
compile
_ file (1) -
compile
_ option (1) -
compile
_ option= (1) - content (1)
- content= (1)
- convert (3)
-
count
_ tdata _ objects (1) -
create
_ value (1) - data (1)
-
delete
_ field (1) - dig (4)
- disasm (2)
- disassemble (2)
-
dyna
_ pop (1) -
dyna
_ push (1) - each (3)
-
each
_ object (4) -
each
_ pair (4) - eql? (2)
- equal? (1)
- eval (1)
-
fc
_ i (1) -
fc
_ path (1) - fiddle (1)
-
fiddle
/ import (1) -
fiddle
/ types (1) -
first
_ lineno (1) -
frame
_ dup (1) -
gvar
_ i (1) - hash (2)
-
have
_ struct _ member (2) - inspect (3)
- instruction (1)
- instruction? (1)
- instructions (1)
-
ivar
_ i (1) -
json
/ add / ostruct (1) -
json
/ add / struct (1) -
json
_ create (2) - label (1)
- length (1)
- linger (1)
-
load
_ from _ binary (1) -
load
_ from _ binary _ extra _ data (1) - malloc (1)
-
mark
_ global _ entry (1) - members (2)
- modifiable (1)
- new (9)
-
new
_ blktag (1) -
new
_ dvar (1) -
new
_ ostruct _ member (1) -
node
_ type (1) - of (1)
- ostruct (1)
- pack (2)
- pack テンプレート文字列 (1)
- path (1)
-
processing
_ instruction (1) -
rb
_ gc _ mark _ frame (1) -
rb
_ global _ entry (1) -
rb
_ gvar _ defined (1) -
rb
_ gvar _ get (1) -
rb
_ gvar _ set (1) -
rb
_ reserved _ word (1) -
rb
_ thread _ wait _ for (1) -
rb
_ time _ timespec _ new (1) -
rb
_ timespec _ now (1) -
remove
_ trace (1) -
rexml
/ document (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 2 feature (1) -
ruby 1
. 9 feature (1) -
scope
_ dup (1) - select (2)
- size (2)
- sizeof (1)
- socket (1)
-
st
_ init _ table (1) -
st
_ init _ table _ with _ size (1) - struct (1)
- tagging (1)
- tagging= (1)
- target (1)
- target= (1)
-
to
_ a (2) -
to
_ binary (1) -
to
_ h (2) -
to
_ i (1) -
to
_ json (2) -
to
_ ptr (1) -
to
_ s (4) -
to
_ sockaddr (1) -
trace
_ en (1) -
trace
_ ev (1) - traverse (1)
- typealias (1)
-
undef
_ setter (1) - union (1)
- unpack (1)
-
val
_ setter (1) - value (1)
- values (1)
-
values
_ at (1) - yaml (1)
-
yaml
/ store (1)
検索結果
先頭5件
-
Struct (114067.0)
-
構造体クラス。Struct.new はこのクラスのサブクラスを新たに生成します。
構造体クラス。Struct.new はこのクラスのサブクラスを新たに生成します。
個々の構造体はサブクラスから Struct.new を使って生成します。個々
の構造体サブクラスでは構造体のメンバに対するアクセスメソッドが定義され
ています。 -
Struct
. [](*args) -> Struct (63418.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインスタンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//} -
Struct
. new(*args) -> Struct (63418.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインスタンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//} -
Struct
. new(*args) -> Class (63313.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
Struct クラスに新しいサブクラスを作って、それを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を出力します
//}
実装の都合により、クラス名の省略は後づけの機能でした。
メンバ名に String を指定できるのは後方互換... -
Struct
. new(*args) {|subclass| block } -> Class (63313.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
Struct クラスに新しいサブクラスを作って、それを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を出力します
//}
実装の都合により、クラス名の省略は後づけの機能でした。
メンバ名に String を指定できるのは後方互換... -
Struct
. json _ create(hash) -> Struct (63304.0) -
JSON のオブジェクトから Ruby のオブジェクトを生成して返します。
JSON のオブジェクトから Ruby のオブジェクトを生成して返します。
@param hash 適切なキーを持つハッシュを指定します。 -
Struct
# [](member) -> object (63109.0) -
構造体のメンバの値を返します。
構造体のメンバの値を返します。
@param member Integer でメンバのインデックスを指定します。
Symbol, String でメンバの名前を指定します。
@raise IndexError member が整数で存在しないメンバを指定した場合に発生します。
@raise NameError member が String, Symbol で存在しないメンバを指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
obj = Foo.new('FOO', 'BAR')
p ... -
Struct
# ==(other) -> bool (63091.0) -
self と other のクラスが同じであり、各メンバが == メソッドで比較して等しい場合に true を返します。そうでない場合に false を返します。
self と other のクラスが同じであり、各メンバが == メソッドで比較して等しい場合に
true を返します。そうでない場合に false を返します。
@param other self と比較したいオブジェクトを指定します。
//emlist[例][ruby]{
Dog = Struct.new(:name, :age)
dog1 = Dog.new("fred", 5)
dog2 = Dog.new("fred", 5)
p dog1 == dog2 #=> true
p dog1.eql?(dog2) #=> tr... -
Struct
# eql?(other) -> bool (63091.0) -
self と other のクラスが同じであり、各メンバが eql? メソッドで比較して等しい場合に true を返します。そうでない場合に false を返します。
self と other のクラスが同じであり、各メンバが eql? メソッドで比較して等しい場合に
true を返します。そうでない場合に false を返します。
@param other self と比較したいオブジェクトを指定します。
//emlist[例][ruby]{
Dog = Struct.new(:name, :age)
dog1 = Dog.new("fred", 5)
dog2 = Dog.new("fred", 5)
p dog1 == dog2 #=> true
p dog1.eql?(dog2) #=> ... -
Struct
# equal?(other) -> bool (63091.0) -
指定された other が self 自身である場合のみ真を返します。 これは Object クラスで定義されたデフォルトの動作で す。
指定された other が self 自身である場合のみ真を返します。
これは Object クラスで定義されたデフォルトの動作で
す。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
@see Struct#eql?, Struct#== -
Struct
# inspect -> String (63091.0) -
self の内容を人間に読みやすい文字列にして返します。
self の内容を人間に読みやすい文字列にして返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.inspect # => "#<struct Customer name=\... -
Struct
# to _ s -> String (63091.0) -
self の内容を人間に読みやすい文字列にして返します。
self の内容を人間に読みやすい文字列にして返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.inspect # => "#<struct Customer name=\... -
Struct
# []=(member , value) (63073.0) -
構造体の member で指定されたメンバの値を value にして value を返します。
構造体の member で指定されたメンバの値を value にして value を返します。
@param member Integer でメンバのインデックスを指定します。
Symbol, String でメンバの名前を指定します。
@param value メンバに設定する値を指定します。
@raise IndexError member が整数で存在しないメンバを指定した場合に発生します。
@raise NameError member が String, Symbol で存在しないメンバを指定した場合に発生します。
[注意] 本メソッドの記述は ... -
Struct
# each -> Enumerator (63073.0) -
構造体の各メンバに対して繰り返します。
構造体の各メンバに対して繰り返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.each {|x| puts(x) }
# => Joe Smith
# 123 Map... -
Struct
# each {|value| . . . } -> self (63073.0) -
構造体の各メンバに対して繰り返します。
構造体の各メンバに対して繰り返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.each {|x| puts(x) }
# => Joe Smith
# 123 Map... -
Struct
# each _ pair -> Enumerator (63073.0) -
構造体のメンバ名(Symbol)と値の組を引数にブロックを繰り返し実行します。
構造体のメンバ名(Symbol)と値の組を引数にブロックを繰り返し実行します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
Foo.new('FOO', 'BAR').each_pair {|m, v| p [m,v]}
# => [:foo, "FOO"]
# [:bar, "BAR"]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。 -
Struct
# each _ pair {|member , value| . . . } -> self (63073.0) -
構造体のメンバ名(Symbol)と値の組を引数にブロックを繰り返し実行します。
構造体のメンバ名(Symbol)と値の組を引数にブロックを繰り返し実行します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
Foo.new('FOO', 'BAR').each_pair {|m, v| p [m,v]}
# => [:foo, "FOO"]
# [:bar, "BAR"]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。 -
Struct
# hash -> Integer (63073.0) -
self が保持するメンバのハッシュ値を元にして算出した整数を返します。 self が保持するメンバの値が変化すればこのメソッドが返す値も変化します。
self が保持するメンバのハッシュ値を元にして算出した整数を返します。
self が保持するメンバの値が変化すればこのメソッドが返す値も変化します。
//emlist[例][ruby]{
Dog = Struct.new(:name, :age)
dog = Dog.new("fred", 5)
p dog.hash #=> 7917421
dog.name = "john"
p dog.hash #=> -38913223
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して... -
Struct
# length -> Integer (63073.0) -
構造体のメンバの数を返します。
構造体のメンバの数を返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.length #=> 3
//} -
Struct
# members -> [Symbol] (63073.0) -
構造体のメンバの名前(Symbol)の配列を返します。
構造体のメンバの名前(Symbol)の配列を返します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
p Foo.new.members # => [:foo, :bar]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。 -
Struct
# select -> Enumerator (63073.0) -
構造体のメンバの値に対してブロックを評価した値が真であった要素を全て含 む配列を返します。真になる要素がひとつもなかった場合は空の配列を返しま す。
構造体のメンバの値に対してブロックを評価した値が真であった要素を全て含
む配列を返します。真になる要素がひとつもなかった場合は空の配列を返しま
す。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
Lots = Struct.new(:a, :b, :c, :d, :e, :f)
l = Lots.new(11, 22, 33, 44, 55, 66)
l.select {|v| (v % 2).zero? } #=> [22, 44, 66]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して... -
Struct
# select {|i| . . . } -> [object] (63073.0) -
構造体のメンバの値に対してブロックを評価した値が真であった要素を全て含 む配列を返します。真になる要素がひとつもなかった場合は空の配列を返しま す。
構造体のメンバの値に対してブロックを評価した値が真であった要素を全て含
む配列を返します。真になる要素がひとつもなかった場合は空の配列を返しま
す。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
Lots = Struct.new(:a, :b, :c, :d, :e, :f)
l = Lots.new(11, 22, 33, 44, 55, 66)
l.select {|v| (v % 2).zero? } #=> [22, 44, 66]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して... -
Struct
# size -> Integer (63073.0) -
構造体のメンバの数を返します。
構造体のメンバの数を返します。
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してください。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe.length #=> 3
//} -
Struct
# to _ a -> [object] (63073.0) -
構造体のメンバの値を配列にいれて返します。
構造体のメンバの値を配列にいれて返します。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_a
# => ["Joe Smith", "123 Maple, Anytown NC", 12345]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してくだ... -
Struct
# to _ h -> Hash (63073.0) -
self のメンバ名(Symbol)と値の組を Hash にして返します。
self のメンバ名(Symbol)と値の組を Hash にして返します。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_h
# => {:name=>"Joe Smith", :address=>"123 Maple, Anytown NC", :zip=>12345}
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています... -
Struct
# values -> [object] (63073.0) -
構造体のメンバの値を配列にいれて返します。
構造体のメンバの値を配列にいれて返します。
//emlist[例][ruby]{
Customer = Struct.new(:name, :address, :zip)
Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345).to_a
# => ["Joe Smith", "123 Maple, Anytown NC", 12345]
//}
[注意] 本メソッドの記述は Struct の下位クラスのインスタンスに対して呼び
出す事を想定しています。Struct.new は Struct の下位クラスを作成する点に
注意してくだ... -
Struct
# values _ at(*members) -> [object] (63073.0) -
引数で指定されたメンバの値の配列を返します。
引数で指定されたメンバの値の配列を返します。
@param members Integer か Range でメンバのインデックスを指定します。
@raise IndexError member が整数で存在しないメンバを指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar, :baz)
obj = Foo.new('FOO', 'BAR', 'BAZ')
p obj.values_at(0, 1, 2) # => ["FOO", "BAR", "BAZ"]
//}
[注意] 本メソッドの記述は Struct の... -
Struct
. members -> [Symbol] (63067.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体のメンバの名前(Symbol)の配列を返します。
(このメソッドは Struct の下位クラスにのみ定義されています)
構造体のメンバの名前(Symbol)の配列を返します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
p Foo.members # => [:foo, :bar]
//} -
Struct
# dig(key , . . . ) -> object | nil (63019.0) -
self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し ます。途中のオブジェクトが nil であった場合は nil を返します。
self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し
ます。途中のオブジェクトが nil であった場合は nil を返します。
@param key キーを任意個指定します。
//emlist[例][ruby]{
klass = Struct.new(:a)
o = klass.new(klass.new({b: [1, 2, 3]}))
o.dig(:a, :a, :b, 0) # => 1
o.dig(:b, 0) # => nil
//}
@see Array#dig, Hash#d... -
Struct
# to _ json(*args) -> String (63019.0) -
自身を JSON 形式の文字列に変換して返します。
自身を JSON 形式の文字列に変換して返します。
内部的にはハッシュにデータをセットしてから JSON::Generator::GeneratorMethods::Hash#to_json を呼び出しています。
@param args 引数はそのまま JSON::Generator::GeneratorMethods::Hash#to_json に渡されます。
//emlist[例][ruby]{
require "json/add/core"
Person = Struct.new(:name, :age)
Person.new("tanaka", 29).to_json # =... -
OpenStruct
# new _ ostruct _ member(name) -> Symbol (27301.0) -
与えられた名前のアクセサメソッドを自身に定義します。
与えられた名前のアクセサメソッドを自身に定義します。
@param name 文字列かシンボルで定義するアクセサの名前を指定します。 -
struct RStruct * RSTRUCT(VALUE obj) (18901.0)
-
-
REXML
:: StreamListener # instruction(name , instruction) -> () (18601.0) -
XML処理命令(PI)をパースしたときに呼び出されるコールバックメソッドです。
XML処理命令(PI)をパースしたときに呼び出されるコールバックメソッドです。
@param name ターゲット名が文字列で渡されます
@param instruction 処理命令の内容が文字列で渡されます
=== 例
<?xml-stylesheet type="text/css" href="style.css"?>
というPIに対し
name: "xml-stylesheet"
instruction: " type=\"text/css\" href=\"style.css\""
という引数が渡されます。 -
VALUE Data
_ Make _ Struct(VALUE klass , type , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , type *svar) (18373.0) -
type 型の構造体をヒープに割り当ててそれへのポインタを svar に代入し、クラス klass のインスタンスである Ruby のオブジェクトを生成し、それを返します。mark free はそれぞれマーク用・解放用の関数へのポインタです。 どちらも、必要ないときはかわりに 0 を渡します。
type 型の構造体をヒープに割り当ててそれへのポインタを
svar に代入し、クラス klass のインスタンスである
Ruby のオブジェクトを生成し、それを返します。mark
free はそれぞれマーク用・解放用の関数へのポインタです。
どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には svar の値が渡されます。
使用例
struct mytype {
int i;
... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (18373.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 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;
... -
void Data
_ Get _ Struct(VALUE obj , type , type *svar) (18373.0) -
Ruby のオブジェクト obj から type 型へのポインタを とりだし svar に代入します。
Ruby のオブジェクト obj から 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);
} -
Kernel
# have _ struct _ member(type , member , headers = nil) -> bool (18361.0) -
member というメンバを持つ構造体 type がシステムに存在するかどうか検査します。
member というメンバを持つ構造体 type がシステムに存在するかどうか検査します。
member というメンバを持つ構造体 type がシステムに存在する場合は、
グローバル変数 $defs に "-DHAVE_type_member" を追加し、真を返します。
member というメンバを持つ構造体 type が存在しない場合は、偽を返します。
例えば
require 'mkmf'
have_struct_member('struct foo', 'bar') # => true
である場合、HAVE_STRUCT_FOO_BAR というプリプロセッサマクロをコンパ... -
Kernel
# have _ struct _ member(type , member , headers = nil) { . . . } -> bool (18361.0) -
member というメンバを持つ構造体 type がシステムに存在するかどうか検査します。
member というメンバを持つ構造体 type がシステムに存在するかどうか検査します。
member というメンバを持つ構造体 type がシステムに存在する場合は、
グローバル変数 $defs に "-DHAVE_type_member" を追加し、真を返します。
member というメンバを持つ構造体 type が存在しない場合は、偽を返します。
例えば
require 'mkmf'
have_struct_member('struct foo', 'bar') # => true
である場合、HAVE_STRUCT_FOO_BAR というプリプロセッサマクロをコンパ... -
Fiddle
:: Importer # struct(signature) -> Class (18358.0) -
C の構造体型に対応する Ruby のクラスを構築して返します。
C の構造体型に対応する Ruby のクラスを構築して返します。
構造体の各要素は C と似せた表記ができます。そしてそれを
配列で signature に渡してデータを定義します。例えば C における
struct timeval {
long tv_sec;
long tv_usec;
};
という構造体型に対応して
Timeval = struct(["long tv_sec", "long tv_usec"])
として構造体に対応するクラスを生成します。
このメソッドが返すクラスには以下のメソッドが定義されています
* クラスメソッド malloc
... -
REXML
:: Element # instructions -> [REXML :: Instraction] (18301.0) -
すべての instruction 子ノードの配列を返します。
すべての instruction 子ノードの配列を返します。
返される配列は freeze されます。 -
REXML
:: Parsers :: PullEvent # instruction? -> bool (18301.0) -
XML処理命令なら真を返します。
XML処理命令なら真を返します。 -
REXML
:: SAX2Listener # processing _ instruction(target , data) -> () (18301.0) -
XML 処理命令(PI)に対し呼び出されるコールバックメソッドです。
XML 処理命令(PI)に対し呼び出されるコールバックメソッドです。
@param target ターゲット名が文字列で渡されます
@param data 処理命令の内容が文字列で渡されます -
RubyVM
:: INSTRUCTION _ NAMES -> [String] (18301.0) -
RubyVM の命令シーケンスの名前の一覧を返します。
RubyVM の命令シーケンスの名前の一覧を返します。
@see RubyVM::InstructionSequence -
Fiddle
:: CStruct (18073.0) -
C の構造体を表すクラスです。
C の構造体を表すクラスです。
このクラスは直接は使わず、Fiddle::Importer#struct を用いて
このクラスを継承したクラスを生成し、それを利用します。
Fiddle::Importer#struct が生成するクラスには
構造体の各メンバへのアクセサが定義されています。
このアクセサはシグネチャの型とメンバ名に従って定義されます。
例えば
require 'fiddle/import'
include Fiddle::Importer
S = struct(["long foo", "void* bar"])
とすると、 S#foo, S#foo= という... -
json
/ add / struct (18049.0) -
Struct に JSON 形式の文字列に変換するメソッドや JSON 形式の文字列から Ruby のオブジェクトに変換するメソッドを定義します。
Struct に JSON 形式の文字列に変換するメソッドや JSON 形式の文字列から Ruby のオブジェクトに変換するメソッドを定義します。 -
JSON
:: CircularDatastructure (18001.0) -
JSON 形式の文字列を生成するときに循環するデータ構造があるときに発生する例外です。
JSON 形式の文字列を生成するときに循環するデータ構造があるときに発生する例外です。 -
OpenSSL
:: ASN1 :: Constructive (18001.0) -
ASN.1 の構造型を表すクラスです。
ASN.1 の構造型を表すクラスです。
通常はこのクラス自身は用いず、各サブクラスを利用します。 -
OpenStruct (18001.0)
-
要素を動的に追加・削除できる手軽な構造体を提供するクラスです。
要素を動的に追加・削除できる手軽な構造体を提供するクラスです。
OpenStruct のインスタンスに対して未定義なメソッド x= を呼ぶと、
OpenStruct クラスの BasicObject#method_missing で捕捉され、そのインスタンスに
インスタンスメソッド x, x= が定義されます。
この挙動によって要素を動的に変更できる構造体として働きます。
require 'ostruct'
ab = OpenStruct.new
ab.foo = 25
p ab.foo # => 25
ab.bar = 2
p ab.bar ... -
REXML
:: Instruction (18001.0) -
XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。
XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。
XML 処理命令 とは XML 文書中の <? と ?> で挟まれた部分のことで、
アプリケーションへの指示を保持するために使われます。
XML 宣言(文書先頭の <?xml version=... ?>)はXML処理命令ではありませんが、
似た見た目を持っています。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-... -
RubyVM
:: InstructionSequence (18001.0) -
Ruby の Virtual Machine のコンパイル済みの命令シーケンスを表すクラスです。
Ruby の Virtual Machine のコンパイル済みの命令シーケンスを表すクラスです。
Method、Proc オブジェクトや Ruby のソースコードを表す文字列
から VM の命令シーケンスを得る事ができます。また、
RubyVM::InstructionSequence オブジェクトを元に命令シーケンスを読みやす
い文字列に変換する事もできます。Ruby の命令シーケンスコンパイラの設定を
扱う必要がありますが、Ruby の VM がどのように働くかを知るのに有用です。
VM の命令シーケンスの一覧はRuby のソースコード中の insns.def から参照で
きます。
... -
json
/ add / ostruct (18001.0) -
OpenStruct に JSON 形式の文字列に変換するメソッドや JSON 形式の文字列から Ruby のオブジェクトに変換するメソッドを定義します。
OpenStruct に JSON 形式の文字列に変換するメソッドや JSON 形式の文字列から Ruby のオブジェクトに変換するメソッドを定義します。 -
ostruct (18001.0)
-
要素を動的に追加・削除できる手軽な構造体を提供するライブラリです。
要素を動的に追加・削除できる手軽な構造体を提供するライブラリです。 -
Fiddle
:: CStruct . malloc -> Fiddle :: CStruct (9337.0) -
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの) オブジェクトで返します。
構造体のためのメモリを確保し、Fiddle::CStruct の(子孫クラスの)
オブジェクトで返します。
C における
return (struct foo*)malloc(sizeof(struct foo));
というコードと対応していると言えます。 -
Fiddle
:: CStruct . new(addr) -> Fiddle :: CStruct (9319.0) -
addr のアドレスが指すメモリを構造体のアドレスとみなし、 構造体を作ります。
addr のアドレスが指すメモリを構造体のアドレスとみなし、
構造体を作ります。
C におけるキャストと似ています。
return (struct foo*)addr;
というコードと対応していると言えます。
@param addr アドレス -
Etc
:: SC _ THREAD _ DESTRUCTOR _ ITERATIONS -> Integer (9301.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
OpenStruct
. json _ create(hash) -> OpenStruct (9301.0) -
JSON のオブジェクトから OpenStruct のオブジェクトを生成して返します。
JSON のオブジェクトから OpenStruct のオブジェクトを生成して返します。
@param hash OpenStruct.new に指定可能な値をキー 't' もしくは :t に持つハッシュを指定します。 -
OpenStruct
. new(hash = nil) -> OpenStruct (9301.0) -
OpenStruct オブジェクトを生成します。
OpenStruct オブジェクトを生成します。
ハッシュが与えられたとき、それぞれのキーを生成したオブジェクトの要素にし、値をセットします。
@param hash 設定する要素とその値を指定します。
hash には Hash クラスのインスタンス、または each_pair メソッ
ドを持つオブジェクトを用いる事ができます。
@raise NoMethodError hash のキーが to_sym メソッドを持たないときに発生します。
require 'ostruct'
some1 = OpenStruct.new({:a =>"a",:b =... -
REXML
:: Instruction # clone -> REXML :: Instruction (9301.0) -
self を複製します。
self を複製します。 -
REXML
:: Instruction . new(target , content = nil) -> REXML :: Instruction (9301.0) -
新たな Instruction オブジェクトを生成します。
新たな Instruction オブジェクトを生成します。
@param target ターゲット
@param content 内容 -
RubyVM
:: InstructionSequence . compile(source , file = nil , path = nil , line = 1 , options = nil) -> RubyVM :: InstructionSequence (9301.0) -
引数 source で指定した Ruby のソースコードを元にコンパイル済みの RubyVM::InstructionSequence オブジェクトを作成して返します。
引数 source で指定した Ruby のソースコードを元にコンパイル済みの
RubyVM::InstructionSequence オブジェクトを作成して返します。
@param source Ruby のソースコードを文字列で指定します。
@param file ファイル名を文字列で指定します。
@param path 引数 file の絶対パスファイル名を文字列で指定します。
@param line 引数 source の 1 行目の行番号を指定します。
@param options コンパイル時のオプションを true、false、Hash オブ
... -
RubyVM
:: InstructionSequence . compile _ file(file , options = nil) -> RubyVM :: InstructionSequence (9301.0) -
引数 file で指定した Ruby のソースコードを元にコンパイル済みの RubyVM::InstructionSequence オブジェクトを作成して返します。
引数 file で指定した Ruby のソースコードを元にコンパイル済みの
RubyVM::InstructionSequence オブジェクトを作成して返します。
RubyVM::InstructionSequence.compile とは異なり、file、path などの
メタデータは自動的に取得します。
@param file ファイル名を文字列で指定します。
@param options コンパイル時のオプションを true、false、Hash オブ
ジェクトのいずれかで指定します。詳細は
RubyVM::Instr... -
RubyVM
:: InstructionSequence . load _ from _ binary(binary) -> RubyVM :: InstructionSequence (9301.0) -
RubyVM::InstructionSequence#to_binaryにより作られたバイナリフォーマットの文字列からiseqのオブジェクトをロードします。
RubyVM::InstructionSequence#to_binaryにより作られたバイナリフォーマットの文字列からiseqのオブジェクトをロードします。
このローダーは検証機構をもっておらず、壊れたり改変されたバイナリを読み込むと深刻な問題を引き起こします。
他者により提供されたバイナリデータはロードすべきではありません。自分が変換したバイナリデータを使うべきです。
//emlist[例][ruby]{
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
binary = iseq.to_binary
RubyVM:... -
RubyVM
:: InstructionSequence . new(source , file = nil , path = nil , line = 1 , options = nil) -> RubyVM :: InstructionSequence (9301.0) -
引数 source で指定した Ruby のソースコードを元にコンパイル済みの RubyVM::InstructionSequence オブジェクトを作成して返します。
引数 source で指定した Ruby のソースコードを元にコンパイル済みの
RubyVM::InstructionSequence オブジェクトを作成して返します。
@param source Ruby のソースコードを文字列で指定します。
@param file ファイル名を文字列で指定します。
@param path 引数 file の絶対パスファイル名を文字列で指定します。
@param line 引数 source の 1 行目の行番号を指定します。
@param options コンパイル時のオプションを true、false、Hash オブ
... -
RubyVM
:: InstructionSequence . of(body) -> RubyVM :: InstructionSequence (9301.0) -
引数 body で指定した Proc、Method オブジェクトを元に RubyVM::InstructionSequence オブジェクトを作成して返します。
引数 body で指定した Proc、Method オブジェクトを元に
RubyVM::InstructionSequence オブジェクトを作成して返します。
@param body Proc、Method オブジェクトを指定します。
例1:irb で実行した場合
# proc
> p = proc { num = 1 + 2 }
> RubyVM::InstructionSequence.of(p)
> # => <RubyVM::InstructionSequence:block in irb_binding@(irb)>
# method
> def ... -
OpenStruct
# dig(key , . . . ) -> object | nil (9019.0) -
self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し ます。途中のオブジェクトが nil であった場合は nil を返します。
self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し
ます。途中のオブジェクトが nil であった場合は nil を返します。
@param key キーを任意個指定します。
require 'ostruct'
address = OpenStruct.new('city' => "Anytown NC", 'zip' => 12345)
person = OpenStruct.new('name' => 'John Smith', 'address' => address)
person.dig(:address, 'zip') ... -
Fiddle
:: CStruct # to _ i -> Integer (9001.0) -
保持している構造体の先頭アドレスを整数で返します。
保持している構造体の先頭アドレスを整数で返します。 -
Fiddle
:: CStruct # to _ ptr -> Fiddle :: Pointer (9001.0) -
保持している構造体へのポインタを返します。
保持している構造体へのポインタを返します。 -
Fiddle
:: CStruct . size -> Integer (9001.0) -
構造体のサイズをバイト数で返します。
構造体のサイズをバイト数で返します。
このメソッドが返す値は C の構造体としてのサイズです。
Ruby のオブジェクトとしてはより大きなメモリを消費しています。 -
OpenSSL
:: ASN1 :: Constructive # each {|item| . . . } -> self (9001.0) -
構造型のデータに含まれる各要素に対してブロックを 評価します。
構造型のデータに含まれる各要素に対してブロックを
評価します。 -
OpenSSL
:: ASN1 :: Constructive # tagging -> Symbol | nil (9001.0) -
タグ付けの方式を返します。
タグ付けの方式を返します。
:IMPLICIT、:EXPLICIT、nil のいずれかを返します。
タグ(OpenSSL::ASN1::ASN1Data#tag)が :UNIVERSAL ならば
この値は無視されます。
nil は :IMPLICIT と同義です。
@see OpenSSL::ASN1::Constructive#tagging= -
OpenSSL
:: ASN1 :: Constructive # tagging=(tag) (9001.0) -
タグ付けの方式を設定します。
タグ付けの方式を設定します。
@param tagging タグ付けの方式(:IMPLICIT または :EXPLICIT)
@see OpenSSL::ASN1::Constructive#tagging= -
OpenStruct
# ==(other) -> bool (9001.0) -
自身と比較対象のオブジェクトが等しい場合に真を返します。 そうでない場合は、偽を返します。
自身と比較対象のオブジェクトが等しい場合に真を返します。
そうでない場合は、偽を返します。
@param other 比較対象のオブジェクトを指定します。 -
OpenStruct
# [](name) -> object (9001.0) -
引数 name で指定した要素に対応する値を返します。
引数 name で指定した要素に対応する値を返します。
@param name 要素の名前を文字列か Symbol オブジェクトで指定します。
例:
require 'ostruct'
person = OpenStruct.new('name' => 'John Smith', 'age' => 70)
person[:age] # => 70, person.age と同じ -
OpenStruct
# []=(name , value) (9001.0) -
引数 name で指定した要素に対応する値に value をセットします。
引数 name で指定した要素に対応する値に value をセットします。
@param name 要素の名前を文字列か Symbol オブジェクトで指定します。
@param value セットする値を指定します。
例:
require 'ostruct'
person = OpenStruct.new('name' => 'John Smith', 'age' => 70)
person[:age] = 42 # person.age = 42 と同じ
person.age # => 42 -
OpenStruct
# delete _ field(name) -> object (9001.0) -
nameで指定された要素を削除します。
nameで指定された要素を削除します。
その後その要素を参照したら nil が返ります。
@param name 削除する要素を文字列かシンボルで指定します。
@return 削除前の要素の値を返します。 -
OpenStruct
# each _ pair -> Enumerator (9001.0) -
self の各要素の名前と要素を引数としてブロックを評価します。
self の各要素の名前と要素を引数としてブロックを評価します。
ブロックを指定した場合は self を返します。そうでない場合は
Enumerator を返します。
例:
require 'ostruct'
data = OpenStruct.new("country" => "Australia", :population => 20_000_000)
data.each_pair.to_a # => population, 20000000 -
OpenStruct
# each _ pair { |key , value| } -> self (9001.0) -
self の各要素の名前と要素を引数としてブロックを評価します。
self の各要素の名前と要素を引数としてブロックを評価します。
ブロックを指定した場合は self を返します。そうでない場合は
Enumerator を返します。
例:
require 'ostruct'
data = OpenStruct.new("country" => "Australia", :population => 20_000_000)
data.each_pair.to_a # => population, 20000000 -
OpenStruct
# eql?(other) -> bool (9001.0) -
self と other が等しい場合に true を返します。そうでない場合は false を 返します。
self と other が等しい場合に true を返します。そうでない場合は false を
返します。
具体的には other が OpenStruct オブジェクトかそのサブクラスでかつ、
self の各要素を保持した内部の Hash が eql? で比較して等しい場合に
true を返します。
@param other 比較対象のオブジェクトを指定します。 -
OpenStruct
# hash -> Integer (9001.0) -
self のハッシュ値を返します。
self のハッシュ値を返します。 -
OpenStruct
# inspect -> String (9001.0) -
オブジェクトを人間が読める形式に変換した文字列を返します。
オブジェクトを人間が読める形式に変換した文字列を返します。
@see Object#inspect -
OpenStruct
# modifiable -> Hash (9001.0) -
このメソッドは内部的に使用されます。
このメソッドは内部的に使用されます。
自身が Object#freeze されている場合にこのメソッドを呼び出すと例外が発生します。
@raise TypeError 自身が Object#freeze されている場合に発生します。 -
OpenStruct
# to _ h -> { Symbol => object } (9001.0) -
self を各要素の名前をキー(Symbol)、要素が値のハッシュに変換して返 します。
self を各要素の名前をキー(Symbol)、要素が値のハッシュに変換して返
します。
//emlist[例][ruby]{
require 'ostruct'
data = OpenStruct.new("country" => "Australia", :capital => "Canberra")
data.to_h # => {:country => "Australia", :capital => "Canberra" }
//} -
OpenStruct
# to _ json(*args) -> String (9001.0) -
自身を JSON 形式の文字列に変換して返します。
自身を JSON 形式の文字列に変換して返します。
内部的にはハッシュにデータをセットしてから JSON::Generator::GeneratorMethods::Hash#to_json を呼び出しています。
@param args 引数はそのまま JSON::Generator::GeneratorMethods::Hash#to_json に渡されます。
@see JSON::Generator::GeneratorMethods::Hash#to_json -
OpenStruct
# to _ s -> String (9001.0) -
オブジェクトを人間が読める形式に変換した文字列を返します。
オブジェクトを人間が読める形式に変換した文字列を返します。
@see Object#inspect -
OpenStruct
:: InspectKey -> : _ _ inspect _ key _ _ (9001.0) -
内部的に使用する定数です。
内部的に使用する定数です。 -
REXML
:: Instruction # ==(other) -> bool (9001.0) -
other と self が同じ 処理命令である場合に真を返します。
other と self が同じ 処理命令である場合に真を返します。
同じとは、 REXML::Instruction#target と REXML::Instruction#content
が一致することを意味します。
@param other 比較対象 -
REXML
:: Instruction # content -> String | nil (9001.0) -
XML 処理命令の内容を返します。
XML 処理命令の内容を返します。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<?foobar?>
<root />
EOS
doc[2] # => <?p-i xml-stylesheet ...?>
doc[2].target # => "xml-stylesheet"
doc[2].content... -
REXML
:: Instruction # content=(value) (9001.0) -
XML 処理命令の内容を変更します。
XML 処理命令の内容を変更します。
@param value 新たなデータ(文字列) -
REXML
:: Instruction # node _ type -> Symbol (9001.0) -
Symbol :processing_instruction を返します。
Symbol :processing_instruction を返します。 -
REXML
:: Instruction # target -> String (9001.0) -
XML 処理命令のターゲットを返します。
XML 処理命令のターゲットを返します。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<root />
EOS
doc[2] # => <?p-i xml-stylesheet ...?>
doc[2].target # => "xml-stylesheet"
doc[2].content # => "t... -
REXML
:: Instruction # target=(value) (9001.0) -
XML 処理命令のターゲットを value に変更します。
XML 処理命令のターゲットを value に変更します。
@param value 新たなターゲット(文字列) -
RubyVM
:: InstructionSequence # absolute _ path -> String | nil (9001.0) -
self が表す命令シーケンスの絶対パスを返します。
self が表す命令シーケンスの絶対パスを返します。
self を文字列から作成していた場合は nil を返します。
例1:irb で実行した場合
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
# => <RubyVM::InstructionSequence:<compiled>@<compiled>>
iseq.absolute_path
# => nil
例2: RubyVM::InstructionSequence.compile_file を使用した場合
# /tmp/method.... -
RubyVM
:: InstructionSequence # base _ label -> String (9001.0) -
self が表す命令シーケンスの基本ラベルを返します。
self が表す命令シーケンスの基本ラベルを返します。
例1:irb で実行した場合
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
# => <RubyVM::InstructionSequence:<compiled>@<compiled>>
iseq.base_label
# => "<compiled>"
例2: RubyVM::InstructionSequence.compile_file を使用した場合
# /tmp/method.rb
def hello
puts "h... -
RubyVM
:: InstructionSequence # disasm -> String (9001.0) -
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
puts RubyVM::InstructionSequence.compile('1 + 2').disasm
出力:
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putobject 1
0004 putobje... -
RubyVM
:: InstructionSequence # disassemble -> String (9001.0) -
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
puts RubyVM::InstructionSequence.compile('1 + 2').disasm
出力:
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putobject 1
0004 putobje... -
RubyVM
:: InstructionSequence # eval -> object (9001.0) -
self の命令シーケンスを評価してその結果を返します。
self の命令シーケンスを評価してその結果を返します。
RubyVM::InstructionSequence.compile("1 + 2").eval # => 3 -
RubyVM
:: InstructionSequence # first _ lineno -> Integer (9001.0) -
self が表す命令シーケンスの 1 行目の行番号を返します。
self が表す命令シーケンスの 1 行目の行番号を返します。
例1:irb で実行した場合
RubyVM::InstructionSequence.compile('num = 1 + 2').first_lineno
# => 1
例2:
# /tmp/method.rb
require "foo-library"
def foo
p :foo
end
RubyVM::InstructionSequence.of(method(:foo)).first_lineno
# => 2 -
RubyVM
:: InstructionSequence # inspect -> String (9001.0) -
self の情報をラベルとパスを含んだ人間に読みやすい文字列にして返します。
self の情報をラベルとパスを含んだ人間に読みやすい文字列にして返します。
//emlist[例][ruby]{
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
iseq.inspect # => "<RubyVM::InstructionSequence:<compiled>@<compiled>>"
//}
@see RubyVM::InstructionSequence#label,
RubyVM::InstructionSequence#path -
RubyVM
:: InstructionSequence # label -> String (9001.0) -
self が表す命令シーケンスのラベルを返します。通常、メソッド名、クラス名、 モジュール名などで構成されます。
self が表す命令シーケンスのラベルを返します。通常、メソッド名、クラス名、
モジュール名などで構成されます。
トップレベルでは "<main>" を返します。self を文字列から作成していた場合
は "<compiled>" を返します。
例1:irb で実行した場合
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
# => <RubyVM::InstructionSequence:<compiled>@<compiled>>
iseq.label
# => "<compiled>"
例2: R... -
RubyVM
:: InstructionSequence # path -> String (9001.0) -
self が表す命令シーケンスの相対パスを返します。
self が表す命令シーケンスの相対パスを返します。
self の作成時に指定した文字列を返します。self を文字列から作成していた
場合は "<compiled>" を返します。
例1:irb で実行した場合
iseq = RubyVM::InstructionSequence.compile('num = 1 + 2')
# => <RubyVM::InstructionSequence:<compiled>@<compiled>>
iseq.path
# => "<compiled>"
例2: RubyVM::InstructionSequence.compi...