[#36058] Windows で Thread — rio-t@...
こんにちは、高石です。
14 messages
2002/10/01
[#36059] Re: Windows で Thread
— "U.Nakamura" <usa@...>
2002/10/01
こんにちは、なかむら(う)です。
[#36060] Re: Windows で Thread
— rio-t@...
2002/10/01
こんにちは、高石です。
[#36061] Re: Windows で Thread
— Tietew <tietew-ml-ruby-list@...>
2002/10/01
[#36069] 日本語に混じった URL を抜き出したい — keiichi matsunaga <ma2@...>
松永です。
26 messages
2002/10/02
[#36072] Re: 日本語に混じった URL を抜き出したい
— keiichi matsunaga <ma2@...>
2002/10/02
松永です。
[#36073] Re: 日本語に混じった URL を抜き出したい
— SAITO Shukaku <shukaku@...>
2002/10/02
At Wed, 2 Oct 2002 13:51:42 +0900,
[#36074] Re: 日本語に混じった URL を抜き出したい
— Tatsuhiko Miyagawa <miyagawa@...>
2002/10/02
宮川です。
[#36106] Ruby Weekly News mail archive on blade? — Tanaka Akira <akr@...17n.org>
ふと気がついたんですが、Ruby Weekly News は blade には archive されな
7 messages
2002/10/05
[#36114] RubyのXML対応に関する質問 — Shibukawa Yoshiki <yoshiki@...>
渋川です。
5 messages
2002/10/06
[#36117] 閉じたbinding — Takashi Tsugoh <tks@...>
こんばんは、Tsugohです。
7 messages
2002/10/06
[#36140] rindaで例外を通知する方法? — SAITO Shukaku <shukaku@...>
rindaとwebrickを使ってweb用アプリケーション(と言うのかな?)を作っていま
8 messages
2002/10/11
[#36161] gc_sweepでアボート — 原田 潤 <j-harada@...4u.or.jp>
原田と申します。
10 messages
2002/10/17
[#36178] utf-8 対応 nkf 拡張モジュールについて — たむらけんいち <sgs02516@...>
たむらです。御相談。
9 messages
2002/10/20
[#36186] csvweb.cgi error — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
5 messages
2002/10/21
[#36188] Re: 日本語の字を書くGUIプログラム — Philip Mak <pmak0@...>
--- Philip Mak <pmak0@yahoo.com> wrote:
4 messages
2002/10/21
[#36192] RUBY_PLATFORM にはどんなものがある? — Take_tk <ggb03124@...>
たけ(tk)です
5 messages
2002/10/23
[#36205] [ANN] Ruby/Qte 0.2 — HIDAKA Takahiro <cv8t-hdk@...>
ひだかです。
10 messages
2002/10/27
[#36217] Re: Ruby/Qte 0.2
— SAITO Shukaku <shukaku@...>
2002/10/28
At Sun, 27 Oct 2002 14:03:33 +0900,
[#36226] Re: Ruby/Qte 0.2
— HIDAKA Takahiro <cv8t-hdk@...>
2002/10/29
ひだかです。
[ruby-list:36117] 閉じたbinding
From:
Takashi Tsugoh <tks@...>
Date:
2002-10-06 15:12:26 UTC
List:
ruby-list #36117
こんばんは、Tsugohです。
先ほどから少し、指定したローカル変数だけを eval や ERb の中で
覗けるようには出来無いかと考えていました。
イメージとしては次のような感じで理解して頂けるでしょうか?
estr = 'p [local_variables, foo, bar]'
# 以降 estr は全て事前に定義されているものとします。
eval2( estr ) { foo = 'foo'; bar = 100 }
# stdout => [["foo", "bar"], "foo", 100]
ここまで奇麗(?)に出来無くても、似たようなことは出来無いかと考えた末に
次に様なコードが出来上がりました。
def jail_binding
binding
end
def eval2( estr, defval )
jbin = jail_binding
eval defval, jbin
eval estr, jbin
end
eval2 estr, %q{
foo = 'foo'
bar = 100
}
ここで ERb にも応用するため、eval2 で使用している jbin を返すメソッドを作り
指定したローカル変数だけを閉じこめた binding を返すようにしたのですが、
文字列を使って変数定義している関係上、既に別の場所で定義されている
各種変数の中身を与えるのに次のようなコードになってしまいました。
def closed_binding( defval )
jbin = jail_binding ## jail_binding も既に定義済みとします。
eval defval, jbin
jbin
end
baz = 'foo'
qwe = 100
new_binding = closed_binding %Q{
foo = Marshal.load '#{Marshal.dump baz}'
bar = Marshal.load '#{Marshal.dump qwe}'
}
さすがに Marshal で二重に囲むのは奇麗ではないと思うため
なんとかしてみたいのですが、いまいち良いアイデアが思いつきません。
このままでは Marshal.dump 出来無いオブジェクトは代入できませんし。
実用性はあまりないので出来無くても別に構わないのですが、
もし可能ならどなたか教えて頂けないでしょうか?
よろしくお願いします。
# きっかけになったコードでは、Proc を使えば指定した以外のローカル変数や
# インスタンス変数が見える形で良ければ奇麗に作れるためそれを利用しています。
# 実用上は他の変数が見えても構いませんので。
# 何をもって「奇麗」とするかは人それぞれだということは理解していますので、
# その辺に関してのツッコミはご遠慮願います(^^;;;
-----
Tsugoh
mailto:tks@xxxx-xx.xx