なかだです。 At Thu, 23 Oct 2003 18:12:38 +0900, Hidetoshi NAGAI wrote: > ENV > RUBY_PLATFORM (PLATFORM) > $LOAD_PATH ($:, $-I) > > のすべてにおいて,$SAFE >= 4 でのアクセスに制約がかかります. > RUBY_PLATFORM (PLATFORM) は $SAFE >= 4 では nil が返ります. 制限されるのはトップレベルの定数だけのようですが、ネストしたも のは大丈夫なんでしょうか。 こういう感じのものを考えていたんですが…。 # secure_const.rb class Module def secure_const(id, safe = 4) raise ArgumentError, "#{safe} must be 0..4" unless (0..4) === safe raise SecurityError, "#{safe}" if safe < $SAFE (@secure_consts ||= {})[id] = [safe, remove_const(id)] end def const_missing(id) safe, val = @secure_consts[id] if safe $SAFE < safe or raise SecurityError, id.to_s val else super end end end if $0 == __FILE__ class Object secure_const(:RUBY_PLATFORM) end 5.times do |$SAFE| p RUBY_PLATFORM end end -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦