ライブラリ
- ビルトイン (44)
モジュール
- Kernel (44)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
untrace
_ var (11) - セキュリティモデル (11)
検索結果
先頭5件
-
Kernel
. # trace _ var(varname , hook) -> [String|Proc] (18234.0) -
グローバル変数 varname への代入のフックを登録します。
...るたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。
trace_var がフックするのは明示的な代入だけです。
フッ......するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。
hook が nil ならば、設定されていた
hook をすべて解除してその配列を返します(ブロックで登録されていれば
Proc オブジェクトで返されます)
それ以外は、nil......hook フックになる文字列または Proc オブジェクトです。
@return フックを登録した場合は nil を返します。解除した場合は解除した
フックを並べた配列を返します。
//emlist[例][ruby]{
trace_var(:$v){|val| puts "hook: $v=#{val.inspect}... -
Kernel
. # trace _ var(varname) {|new _ val| . . . . } -> nil (18134.0) -
グローバル変数 varname への代入のフックを登録します。
...るたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。
trace_var がフックするのは明示的な代入だけです。
フッ......するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。
hook が nil ならば、設定されていた
hook をすべて解除してその配列を返します(ブロックで登録されていれば
Proc オブジェクトで返されます)
それ以外は、nil......hook フックになる文字列または Proc オブジェクトです。
@return フックを登録した場合は nil を返します。解除した場合は解除した
フックを並べた配列を返します。
//emlist[例][ruby]{
trace_var(:$v){|val| puts "hook: $v=#{val.inspect}... -
Kernel
. # trace _ var(varname , hook) -> nil (18134.0) -
グローバル変数 varname への代入のフックを登録します。
...るたびに hook かブロックが評価されます。hook が Proc オブジェクトの場合
代入された値がブロック引数に渡されます。文字列の場合はRubyコードとして評価されます。
trace_var がフックするのは明示的な代入だけです。
フッ......するには、hook に nil を
指定するか、Kernel.#untrace_var を用います。
hook が nil ならば、設定されていた
hook をすべて解除してその配列を返します(ブロックで登録されていれば
Proc オブジェクトで返されます)
それ以外は、nil......hook フックになる文字列または Proc オブジェクトです。
@return フックを登録した場合は nil を返します。解除した場合は解除した
フックを並べた配列を返します。
//emlist[例][ruby]{
trace_var(:$v){|val| puts "hook: $v=#{val.inspect}... -
Kernel
. # untrace _ var(varname , hook = nil) -> [String|Proc] (6249.0) -
グローバル変数 varname に関連付けられたフックを解除します。
...。
@param hook 文字列または Proc オブジェクトです。
@return 解除されたフックの配列を返します。
//emlist[例][ruby]{
trace_var(:$v){|val| print "hookA.#{val.inspect},\n" }
block = proc{|val| print "hookB.#{val.inspect}," }
trace_var(:$v,&block)
$v = 'str' #=>......hookB."str",hookA."str",
untrace_var(:$v,block)
$v = 'str' #=> hookA."str",
trace_var(:$v){|val| print "hookC.#{val.inspect}," }
p untrace_var(:$v) #=> [#<Proc:0x02b68f58@..:9>, #<Proc:0x02b6978c@..:3>]
$v = 'str' # なにも出力されない
//}
@see Kernel.#trace_var... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (282.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...らしい
^^;;)
: ((<Proc/Proc.new>)) [change]
: ((<組み込み関数/lambda>)) [change]
: ((<組み込み関数/proc>)) [change]
以下のように変更されました。((<ruby-dev:20358>))
* Proc.new およびブロック引数で与えられる Proc は
引数チェ......ックがゆるい。break が例外になる。
Proc.new {|a,b,c| p [a,b,c]}.call(1,2)
=> -:1: wrong # of arguments (2 for 3) (ArgumentError)
from -:1:in `call'
from -:1
ruby 1.6.8 (2002-12-24) [i586-lin......r)
from -:1
ruby 1.6.8 (2002-12-24) [i586-linux]
: ((<組み込み関数/trap>)) [bug]
: ((<組み込み関数/trace_var>)) [bug]
第二引数に汚染された文字列を渡すと例外 ((<SecurityError>)) が
起こるようになりました。1.6 では... -
セキュリティモデル (18.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...#truncate File#flock
および FileTest モジュールのメソッド
* IO#ioctl, IO#fcntl
* Process.fork Process.#setpgid Process.#setsid
Process.#setpriority Process.#egid= Process.#kill
* 危険なパスからの Kernel.#load
* 汚染された文字列を引数にしての......れる。
* Proc はその時点でのセーフレベルを記憶する。
その Proc オブジェクトが call されると、記憶していたセーフレベルで実行される。
* 汚染された文字列を第二引数に指定して Kernel.#trap/Kernel.#trace_var を
実...