ライブラリ
- ビルトイン (378)
- erb (11)
-
fiddle
/ import (11) - forwardable (33)
- json (22)
- logger (1)
- monitor (11)
- thread (2)
- tracer (22)
- win32ole (22)
クラス
- BasicObject (77)
- Data (4)
- ERB (11)
- File (11)
- Object (88)
- Struct (2)
- Thread (22)
-
Thread
:: Backtrace :: Location (44) - Tracer (22)
-
WIN32OLE
_ EVENT (11) -
WIN32OLE
_ TYPE (11)
モジュール
- Enumerable (66)
-
Fiddle
:: Importer (11) - Forwardable (33)
- JSON (11)
-
JSON
:: Generator :: GeneratorMethods :: Object (11) - ObjectSpace (33)
キーワード
- ! (11)
- != (11)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - == (11)
- Application (1)
- BasicObject (11)
- ConditionVariable (11)
- Location (11)
- Marshal フォーマット (11)
- MonitorMixin (11)
-
NEWS for Ruby 3
. 0 . 0 (4) - Ruby用語集 (11)
-
_ dump (11) -
absolute
_ path (11) -
base
_ label (11) -
cgi
/ session (11) -
create
_ id (11) -
def
_ delegator (11) -
def
_ instance _ delegator (11) -
default
_ event _ sources (11) - define (4)
-
define
_ finalizer (22) - fork (11)
- handler= (11)
-
initialize
_ copy (11) - inspect (22)
-
instance
_ delegate (11) -
instance
_ eval (22) -
instance
_ exec (11) -
instance
_ variable _ defined? (11) -
instance
_ variable _ get (11) - logger (11)
- max (22)
-
method
_ missing (11) - min (44)
- new (13)
- path (11)
- rdoc (11)
-
rdoc
/ generator / json _ index (11) -
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) -
ruby 1
. 8 . 3 feature (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 9 feature (11) -
set
_ get _ line _ procs (22) -
singleton
_ method (11) - start (11)
- struct (11)
-
to
_ json (11) -
to
_ s (22) - tsort (11)
-
undefine
_ finalizer (11) - セキュリティモデル (11)
- 演算子式 (11)
検索結果
先頭5件
-
Object
# initialize(*args , &block) -> object (24273.0) -
ユーザ定義クラスのオブジェクト初期化メソッド。
...しません。
initialize には
Class#new に与えられた引数がそのまま渡されます。
サブクラスではこのメソッドを必要に応じて再定義されること
が期待されています。
initialize という名前のメソッドは自動的に private に設定さ......。
//emlist[][ruby]{
class Foo
def initialize name
puts "initialize Foo"
@name = name
end
end
class Bar < Foo
def initialize name, pass
puts "initialize Bar"
super name
@pass = pass
end
end
it = Bar.new('myname','0500')
p it
#=> initialize Bar
# initialize Foo
# #... -
Object
# initialize _ copy(obj) -> object (12267.0) -
(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。
...
initialize_copy は、Ruby インタプリタが知り得ない情報をコピーするた
めに使用(定義)されます。例えば C 言語でクラスを実装する場合、情報
をインスタンス変数に保持させない場合がありますが、そういった内部情
報を init......ialize_copy でコピーするよう定義しておくことで、dup や clone
を再定義する必要がなくなります。
デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。
initialize_copy と......mlist[][ruby]{
obj = Object.new
class <<obj
attr_accessor :foo
def bar
:bar
end
end
def check(obj)
puts "instance variables: #{obj.inspect}"
puts "tainted?: #{obj.tainted?}"
print "singleton methods: "
begin
p obj.bar
rescue NameError
p $!
end
end
obj.foo = 1
obj.tain......//emlist[][ruby]{
obj = Object.new
class <<obj
attr_accessor :foo
def bar
:bar
end
end
def check(obj)
puts "instance variables: #{obj.inspect}"
print "singleton methods: "
begin
p obj.bar
rescue NameError
p $!
end
end
obj.foo = 1
check Object.new.send(:initialize_copy... -
ObjectSpace
. # define _ finalizer(obj) {|id| . . . } -> Array (12260.0) -
obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。
...ロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するの......回収時に obj の ID を引数として実行されます。
=== 使い方の注意
以下は、define_finalizer の使い方の悪い例です。
//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end
Foo.new
GC.start
//......file は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Proc を
生成することで上記の問題を回避しています。
//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end
def ini... -
ObjectSpace
. # define _ finalizer(obj , proc) -> Array (12260.0) -
obj が解放されるときに実行されるファイナライザ proc を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。固定値 0 と proc を配列にして返します。
...ロックを指定した場合は、そのブロックがファイナライザになります。
obj の回収時にブロックは obj の ID (BasicObject#__id__)を引数とし
て実行されます。
しかし、後述の問題があるのでブロックでファイナライザを登録するの......回収時に obj の ID を引数として実行されます。
=== 使い方の注意
以下は、define_finalizer の使い方の悪い例です。
//emlist[悪い例][ruby]{
class Foo
def initialize
ObjectSpace.define_finalizer(self) {
puts "foo"
}
end
end
Foo.new
GC.start
//......file は、ファイナライザの使い方の
良い例になっています。これは、クラスのコンテキストで Proc を
生成することで上記の問題を回避しています。
//emlist[例][ruby]{
class Bar
def Bar.callback
proc {
puts "bar"
}
end
def ini... -
ObjectSpace
. # undefine _ finalizer(obj) -> object (12230.0) -
obj に対するファイナライザをすべて解除します。 obj を返します。
...す。
//emlist[例][ruby]{
class Sample
def Sample.callback
proc {
puts "finalize"
}
end
def initialize
ObjectSpace.define_finalizer(self, Sample.callback)
end
def undef
ObjectSpace.undefine_finalizer(self)
end
end
Sample.new
GC.start
# => finalize
Sample.new......sample.undef
GC.start
# ※何も出力されない
//}
@see ObjectSpace.#define_finalizer... -
Object
# instance _ variable _ defined?(var) -> bool (12218.0) -
インスタンス変数 var が定義されていたら真を返します。
...//emlist[][ruby]{
class Fred
def initialize(p1, p2)
@a, @b = p1, p2
end
end
fred = Fred.new('cat', 99)
p fred.instance_variable_defined?(:@a) #=> true
p fred.instance_variable_defined?("@b") #=> true
p fred.instance_variable_defined?("@c") #=> false
//}
@see Object#instance_variable_......get,Object#instance_variable_set,Object#instance_variables... -
BasicObject
# instance _ eval(expr , filename = "(eval)" , lineno = 1) -> object (6242.0) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...価では instance_eval の外側のスコープと、ブロックの評価ではそのブロックの外側のスコープと、共有します。
メソッド定義の中で instance_eval でメソッドを定義した場合は、囲むメソッドが実行されたときに
初めて instance_ev......ineno 整数を指定します。行番号 lineno から文字列 expr が書かれているかのように実行されます。
スタックトレースの表示などを差し替えることができます。
//emlist[例][ruby]{
class Foo
def initialize data
@key = data
end......private
def do_fuga
p 'secret'
end
end
some = Foo.new 'XXX'
some.instance_eval{p @key} #=> "XXX"
some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
some.instance_eval 'raise' # ..:10: (eval):1: (RuntimeError)
messg = 'unknown'
some.instance_eval 'raise m... -
Thread
:: Backtrace :: Location # inspect -> String (6230.0) -
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文 字列に変換したオブジェクトを返します。
...race::Location#to_s の結果を人間が読みやすいような文
字列に変換したオブジェクトを返します。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do......|call|
puts call.inspect
end
# => "path/to/foo.rb:5:in `initialize'"
# "path/to/foo.rb:9:in `new'"
# "path/to/foo.rb:9:in `<main>'"
//}... -
Object
# inspect -> String (6224.0) -
オブジェクトを人間が読める形式に変換した文字列を返します。
...ドの結果を使用して
オブジェクトを表示します。
//emlist[][ruby]{
[ 1, 2, 3..4, 'five' ].inspect # => "[1, 2, 3..4, \"five\"]"
Time.new.inspect # => "2008-03-08 19:43:39 +0900"
//}
inspect メソッドをオーバーライドしなかった場合、クラス......変数の名前、値の組を元にした文字列を返します。
//emlist[][ruby]{
class Foo
end
Foo.new.inspect # => "#<Foo:0x0300c868>"
class Bar
def initialize
@bar = 1
end
end
Bar.new.inspect # => "#<Bar:0x0300c868 @bar=1>"
//}
@see Kernel.#p... -
Tracer
. set _ get _ line _ procs(filename) {|line| . . . . } (6224.0) -
あるファイルについて利用する、行番号からソースのその行の内容を返す 手続きを指定します。何も指定しなければデフォルトの動作が利用されます。 指定する手続きは行番号を唯一の引数として呼び出されます。
...@param filename ソースファイルの場所を文字列で指定します。
@param proc 通常、文字列を返す手続きオブジェクトを指定します。
# 例 dummy.rb の3行目から6 行目のトレース出力に !! をつける
require 'tracer'
Tracer.set_get_line_procs(......'./dummy.rb'){|line|
str = "\n"
str = "!!\n" if line >= 3 and line <= 6
str
}
Tracer.on
require 'dummy'
dm = Dummy.new
puts dm.number
=begin
# dummy.rb
class Dummy
def initialize
@number = 135
end
attr :number
end
=end...