17年11月28日の激安の通販専門店ランキングアーカイブ ガチョウコート

17年11月28日の激安の通販専門店ランキングアーカイブ

16年12月16日 ≪ 17年11月28日 ≫ 16年12月18日
カラーD ハードケース IS12T Windows Phone 対応 カバー ジャケット 携帯ケース is12t_a01_170a_d激安の通販専門店ランキング
Gucci(グッチ) 長財布 257012 9643 BROWN激安の通販専門店ランキング
With 入浴备品 AGフットバス(足汤バケツ付) W003激安の通販専門店ランキング
ユーパワー リサ オーディット ゲル加工アートフレーム ビクトリアドリーム 1 LA-10009激安の通販専門店ランキング
Ernie激安の通販専門店ランキング
ソニー 高性能アルカリ乾電池 スタミナX(使用推奨期限10年)単3形 8本シュリンク LR6SG-8PE激安の通販専門店ランキング
2way ショルダー激安の通販専門店ランキング
ビタクラフト Vita Craft(ビタクラフト) 片手鍋 17cm ウルトラ 1L No.9201激安の通販専門店ランキ mgcmafxp. канадский гусь hybridge куртка
SEIKO(����)激安の通販専門店ランキング
【メイド】コスプレ衣装/制服/メイド服/ワンピ/エプロン/アキバ/ゴスロリ/z672激安の通販専門店ランキング
ハナヤマ クリスタルギャラリー ロディ (ブルー)激安の通販専門店ランキング
く��の巣�����激安の通販専門店ランキング
シナリー化粧品激安の通販専門店ランキング
アクネバリア激安の通販専門店ランキング
ã��ã�ã�どã����激安の通販専門店ランキング
�����風�����1000激安の通販専門店ランキング
東㒬激安の通販専門店ランキング
����激安の通販専門店ランキング
流�台������激安の通販専門店ランキング
カラーC ハードケース SO-01C Xperia arc 対応 カバー ジャケット 携帯ケース so01c_a01_062a_c激安の通販専門店ランキング
����� ������������激安の通販専門店ランキング
エプソン(EPSON) インクジェットカートリッジ ICY46 【インク色:イエロー】 1個激安の通販専門店ランキング

ガチョウコート

mens kanada goose takki
canada goose victoria
gås canada
acquistare canada goose online

27speed.com 27Speed.comsimilar sites

27speed ศูนย์ติดฟิล์มกรองแสง V-KOOL & เคลือบแก้ว Glass Coating - glass coating , เคลือบแก้ว, ฟิล์มกรองแสง , ฟิล์มรถยนต์ , ติดฟิล์ม , ฟิล์มติดรถยนต์ , v kool , ฟิล์ม ราคา , v cool , meguiars , เคลือบสี , เคลือบสีรถ , meguiar , ล้างรถ , ขัดเคลือบสี , ฤกษ์ออกรถ , วันออกรถ , สีรถถูกโฉลก , สีถูกโฉลก , สีมงคล , ดูฤกษ์ออกรถ

27speed V-KOOL & Glass Coating Service Center ศูนย์ติดฟิล์มกรองแสง V-KOOL เคลือบแก้ว glass coating , เคลือบแก้ว, ฟิล์มกรองแสง , ฟิล์มรถยนต์ , ติดฟิล์ม , ฟิล์มติดรถยนต์ , v kool Language: N/A

Categories: Career And Education > Education
Site Topics: kool glass meguiars cool coating
    • AD
    • 1

    • 2
      rotbarn.com

      This account has been suspended. Either the domain has been overused, or the reseller ran out of resources.

    • 3
      The Thailand's First Racing cars Community on Web. - Homepage RacingWeb.NET

      RacingWeb - The Biggest Racing Car Website in Thailand., เรซซิ่งเว็บดอทเน็ต เว็บไซต์รถแข่งหรือรถแต่งของเมืองไทย กำหนดรายการแข่งรถทุกสนามสาระน่ารู้เกี่ยวรถ, อุปกรณ์ตกแต่งและเทคโนโลยี ห้องสนทนา, กระดานฝากซื้อขาย ถามตอบปัญหารถ, รวมเว็บบอร์ดคลับ, รายงานรถแรง และอื่นๆ อีกมาก

    • 4
      ขั้นตอนการซื้อรถยนต์ใหม่ป้ายแดง

      ข้อมูล ขั้นตอนการซื้อรถและความรู้ต่างๆ สำหรับท่านที่ท่านที่มีรถยนต์ใหม่ รถป้ายแดง

    • 5
      27speed ศูนย์ติดฟิล์มกรองแสง v-kool & เคลือบแก้ว glass coating - glass coating , เคลือบแก้ว, ฟิล์มกรองแสง , ฟิล์มรถยนต์ , ติดฟิล์ม , ฟิล์มติดรถยนต์ , v kool , ฟิล์ม ราคา , v cool , meguiars , เคลือบสี , เคลือบสีรถ , meguiar , ล้างรถ , ขัดเคลือบสี , ฤกษ์ออกรถ , วันออกรถ , สีรถถูกโฉลก , สีถูกโฉลก , สีมงคล , ดูฤกษ์ออกรถ

      27speed.tarad

    • 6
      Beautiful G'ZOX Real Glass Coat

      G’ZOX Detailingpro by WAC Car Detailing – The No. 1 Professional Body Glass Coating Center, Bangkok, Thailand

    • 7
      fiscal policy research institute: globalization studies

      ��ѡ�ٵ���ż��ʵ���һѳ�ե �ң��Ԫ��š����ѵ���֡�� (globalization studies)

    • 8
      ksavas.de - Kool Savas Community

      Die Kool Savas Community | Forum | Diskografie | Biografie | Livedates | Videos | MP3s | Downloads | Konzertmitschnitte | Newsletter | Bilder | Infos...

    • 9
      v-kool service center �ٹ��դ��� �������-���

      �ٹ��դ��� ������� �ѹ������͹ ��-��� v-kool professional shop

    • 10
      v-kool, huper optik, lamina, 3m

      v-kool huper optik lamina3m

    • AD
    • 11
      ��ʾ��Ϳ ����� �ͷ���

      ���ǡѺ����ѷ   |  ��ú�ԡ��

    • 12
      lafayette core

    • 13
      jglaze ���ͺ��� �ͧ�� 100% ��ҧö ���交� , ducati,harley davidson �դ 3m crystalline:the glass coating for your cars 086-500-6666

      ����16������ glass coating ���ͺ��ǣͧ��100% �ҡ����� ���ʺ�� ��ңͧ�����ͧ jglaze call 086-500-6666

    • 14
      ข่าวรถดอทคอม ข่าวรถยนต์ อัพเดตเรื่องราวเกี่ยวกับยานยนต์ที่นี่

      ข่าวรถดอทคอม ข่าวสารรถยนต์ อัพเดต รถยนต์ใหม่ ราคารถยนต์ ยางรถยนต์ รีวิวรถยนต์ งานมอเตอร์โชว์

    • 15
      typo3 error

      home: kool savas

    • 16
      m.kool transportation products inc. - splash page

      welcome to the m.kool transportation products site. we supply specialized technical equipment for use on ships, cranes, railways, airport control towers and other heavy duty applications.

    • 17
      กลาสเทค (ประเทศไทย) เชื่อมั่นในผู้เชี่ยวชาญด้านกระจกรถยนต์และฟิล์มกรองแสง

      กลาสเทค (ประเทศไทย) เชื่อมั่นในผู้เชี่ยวชาญด้านกระจกรถยนต์และฟิล์มกรองแสง

    • 18
      ガラスクリアコート 耐久年数10年以上のuv効果で劣化を防ぐガラス素材のフロアコーティング

      耐久年数10年以上のUV効果で劣化を防ぐガラス素材のフロアコーティング

    • 19
      hikool.com

      video.hikool

    • 20
      Cool 107.5 | Your 50's, 60's & 70's Super Station!

      Real Cool Links Take Me Back to the 60s! Pages

    • 21
      ตัวแทนจำหน่ายและติดตั้งฟิล์ม v-kool 0-2758-7059-60

      ติดต่อ-สอบถาม ผ่าน ระบบออนไลน์

    • 22
      columbiacoatings.com - best powders - best service - best price!

      columbiacoatings.com is your one stop shop for all your powder coating and powder coating supplies needs. we carry the best quality powders and tools to get the job done on time and on budget.

    • 23
      �ٹ�����������ء��Դ

      �ٹ�����������ء��Դ

    • 24
      We Know Kool

      Become Kool, with kool, apparel, along with clothes , shoes, sunglasses, watches, belts, hand bags, scrubs. Learn Kool thinking with, health, wellness, workout, In crowd Blogs, and philosophy. Enjoy

    • 25
      Hikoolfilm.com ฟิล์มไฮคูล จำหน่ายฟิล์มกรองแสงติดรถยนต์ ฟิล์มติดรถยนต์ ฟิล์มอาคาร ฟิล์มนิรภัย ฟิล์มตกแต่ง ฟิล์มกรองแสงกันความร้อนสูง จาก USA. - ฟิล์มไฮคูล จำหน่ายฟิล์มกรองแสงติดรถยนต์ ฟิล์มติดรถยนต์ ฟิล์มอาคาร ฟิล์มนิรภัย ฟิล์มตกแต่ง ฟิล์มกรองแสงกันความร้อนสูง จาก USA.

      hikoolfilm

    • 26
      AXA Insurance แอกซ่าประกันภัย ประกันภัยอันดับ 1 ของโลก

      AXA แอกซ่าประกันภัย นิยามใหม่/ของการประกันภัย ตัวแทนที่ดี บริษัทประกันภัยที่ยอดเยี่ยม การบริการอุ่นใจ ประกันภัยรถยนต์ ประกันเดินทาง ประกันสุขภาพ ประกันภัยทุกประเภท ราคาถูก ผ่อน0%

    • 27
      V-Kool Film Thailand | ศูนย์ติดตั้งฟิล์มกรองแสงรถยนต์วีคูล ตัวแทนจำหน่ายฟิล์ม V-Kool อย่างเป็นทางการ

      คุณภาพชั้นเยี่ยมจาก USA

    • 28
      vespa kool

      VESPA KOOL About Me

    • 29
      ガラスコーティング・車のポリマー加工等が 自分で出来る通信販売のお店

      ガラスコーティング/車/洗車/磨き/ポリマー加工/専門店/自動車/手洗い洗車/車メンテナンス/新車/中古車/ガラスコート/gfコート/洗車場/洗車機/キズ/傷/埼玉/熊谷/通販/トヨタ/日産/ホンダ/ベンツ/レクサス/ポルシェ/bmw/"

    • 30
      iis7

      ศูนย์ติดตั้งฟิล์มกรองเเสง 3M, SUNTEK,FANNEX, V-Kool, DUVATEC ,SMARTTEC,ศูนย์ติดตั่งฟิล์มกรองแสงสหรับรถยนต์ ,บริการ,ติดตั้ง,ฟิล์มกรองแสง ฟิล์มกรองแสงรถยนต์ ฟิล์มนิรภัย ฟิล์มติดรถยนต์ ฟิล์มรถยนต์ ฟิล์ม

    • 31
      ฟิล์มกรองแสง, ฟิล์มกรองแสงรถยนต์,เครื่องเสียงรถยนต์, ฟิล์มรถยนต์ ,ฟิล์มอาคาร, ฟิล์มป้องกันความร้อน, ฟิล์มนิรภัย จำหน่ายโดย smarttec window films

      จำหน่าย ฟิล์มกรองแสง ฟิล์มกรองแสงรถยนต์ และฟิล์มอาคาร มากว่า 10 ปีโดยบริษัท สมาร์ทเทค เอ็นเตอร์ไพรส์ จำกัด

    • 32
      ติดฟิล์มอาคาร | ฟิล์มติดกระจกบ้าน | สติ๊กเกอร์ฝ้าติดกระจก

      รับติดฟิล์มกรองแสงอาคาร ฟิล์มติดกระจกบ้านอาคาร ฟิล์มฝ้าและสติ๊กเกอร์ฝ้าติดกระจก สำนักงาน ราคาเป็นกันเอง

    • 33
      ฟรีดูดวง ดูดวงรายวัน ดูดวงรายสัปดาห์ แม่นๆ ที่ Horo-Thai.com

      ฟรีดูดวง ดูดวงรายวัน ดูดวงรายสัปดาห์ แบบแม่นๆ เช็คดวง วันนี้ ดวงการงาน ดวงการเงิน และดวงความรัก ดูฤกษ์ดี ฤกษ์มงคล ไพ่ยิปซี อื่นๆ อัพเดททุกวัน ที่นี่ที่เดียว

    • 34
      blocoli - ล้างรถ เคลือบแก้ว เคลือบสี เครื่องขัด we sell car polisher, car wax, polish, car detailing, car coating, เราขายเครื่องขัดสีรถยนต์ และน้ำยาเคลือบสีรถ แวกซ์ คุณภาพ

      ล้างรถ เคลือบแก้ว เคลือบสี เครื่องขัด เครื่องขัดสีรถคุณภาพสูง ทั้งเครื่องดีเอ และโรตารี ผลิตภัณฑ์ดูแล รักษา ขัดเคลือบเงารถยนต์ บริการล้างรถ คาร์แคร์ น้ำยาเคลือบสีรถ เคลือบแก้ว ดีที่สุด

    • 35
      Mitsubishi Mirage (มิตซูบิชิ มิราจ) ข้อมูลข่าวครบถ้วนที่สุด

      นำเสนอทุกแง่มุม ของ Mitsubishi Mirage (รถยนต์ มิตซูบิชิ มิราจ) และ มิตซูบิชิ แอททราจ Mitsubishi Attrage

    • 36
      404 - file or directory not found.

      Jobs in Southern Thailand - หางาน หาพนักงาน - งานภูเก็ต งานสมุย งานกระบี่ งานพังงา งานโรงแรม Hotel jobs Phuket jobs Samui Job Krabi Jobs Phang Nga Job,

    • 37
      index

      CTS ศูนย์บริการเคลือบสีที่ทันสมัยที่สุดในเอเชีย

    • 38
      hotsport88.com

      www.hotsport88.com

    • 39
      webmail http://webmail.ovh.net

      description de votre site

27Speed.com Similar Sites by Traffic



27Speed.com Similar Sites by Visits

people that visited 27Speed.com also visited:

  • nso.in.th

    nso.in.th nso.in.th

    เกมนักษัตรออนไลน์ - เกมบนเว็บ

    เกมบนเว็บบราวเซอร์ พัฒนาโดยคนไทย มาเล่นเกมไทยด้วยกันที่ www.nso.in.th เปิดให้เล่น กรกฎาคม 2556 มาเล่นกันเยอะๆนะ

    View Similar Sites
  • nanonix-th.com

    nanonix-th.com nanonix-th.com

    เคลือบแก้ว nanonix เทคโนโลยีเคลือบแก้วระดับ world class จากประเทศญี่ปุ่น

    น้ำยาเคลือบแก้ว nanonix บริการเคลือบแก้วคริสตัลแท้ 100% มาตรฐานจากญี่ปุ่น

  • sbrand.co.th

    sbrand.co.th sbrand.co.th

    sbrand : ซ่อมสี ซ่อมตัวถัง และ ซ่อมสีรถยนต์ ซ่อมสีด่วน เคลมประกัน เร็วสุดภายใน 1 วัน

    New definition of perfection

    View Similar Sites
  • organicthailand.com

    organicthailand.com organicthailand.com



binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-12 08:22
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
$BF|K\(B Ruby $B%+%s%U%!%l%s%9$N@J$G(B
$B$3$N$H$3$m$N%3%_%C%H$N1F6A$G(B Ruby/Tk
$B4X78$,%(%i!<$r=P$9$h$&$K(B
$B$J$C$F$$$k$H$$$&OC$rJ9$$$?$N$G;n$7$F$_$?$H$3$m!$(B
$B3N$+$KLdBj$,H/@8$7$F$$$^$7$?!%(B
$B<B$N$H$3$m!$;d$K$H$C$F$O!V:$$k!W$I$3$m$+(B
$B5^=j$X$NL?Cf$H$b8@$($k$[$I$NBg%@%a!<%8$H$J$kLdBj$G$9!%(B(;_;)
$BNc$($P<!$N$h$&$J%9%/%j%W%H$,$"$C$?$H$7$^$9!%(B
----< hoge.rb >---------------------------------------
def hoge(*args)
[self, args]
end
p hoge(1, self)
Object.new.instance_eval{ p hoge(2, self)}
------------------------------------------------------
$B$3$l$rC1=c$K(B ruby hoge.rb $B$H$9$l$P!$Nc$($P(B
------------------------------------------------------
[main, [1, main]]
[#<Object:0x401d5cb4>, [2, #<Object:0x401d5cb4>]]
------------------------------------------------------
$B$H=PNO$5$l$^$9!%(B
$B$b$A$m$s(B ruby -e "load 'hoge.rb'" $B$H$7$F$bF1MM$G$9!%(B
$B$G!$%0%m!<%P%k$JL>A06u4V$r1x@w$9$k$3$H$J$/<B9T$7$?$$$H9M$($F(B
----< hoge2.rb >--------------------------------------
def null_binding
Module.new.module_eval{binding}
end
eval(File.read('hoge.rb', null_binding))
------------------------------------------------------
$B$H$7$F(B ruby hoge2.rb $B$J$I$H$7$?>l9g!$(B
$B>/$7A0$^$G$N(B ruby-1.8 ($B>/$J$/$H$b(B ruby-1.8.4
$B$N%j%j!<%9HG(B) $B$G$O(B
------------------------------------------------------
[#<Module:0x401d5db2>, [1, #<Module:0x401d5db2>]]
[#<Object:0x401d5cb4>, [2, #<Object:0x401d5cb4>]]
------------------------------------------------------
$B$J$I$H$$$&$h$&$K!$$&$^$/(B(?)$BF0$$$F$/$l$F$$$^$7$?!%(B
$B$7$+$7!$8=:_$N(B ruby 1.8.4 (2006-06-11) [i686-linux] $B$G$O(B
------------------------------------------------------
hoge2.rb:6:in `null_binding': undefined method `hoge' for
#<Module:0x401d5d90> (NoMethodError)
from hoge2.rb:2:in `null_binding'
from hoge2.rb:2:in `null_binding'
from hoge2.rb:4
------------------------------------------------------
$B$H$J$j$^$9!%(B
$B$3$&$7$?$3$H$O(B ruby -e "load 'hoge.rb', true" $B$N$h$&$J>l9g$O(B
$B$G$-$k$Y$-$J$N$G$O$J$$$+$H$b;W$&$N$G$9$,!$$3$l$b(B
------------------------------------------------------
[main, [1, main]]
./hoge.rb:6: undefined method `hoge' for #<Object:0x401d5a20>
(NoMethodError)
from ./hoge.rb:6
from -e:1
------------------------------------------------------
$B$H$J$C$F$7$^$C$F%@%a$G$9!%(B
$B!V%b%8%e!<%k$N%3%s%F%-%9%H$GI>2A$9$k$s$@$+$i!$$=$&$J$C$FEv$?$jA0!%(B
$B0JA0$K$G$-$F$$$?$3$H$NJ}$,%P%0!W(B
$B$H$*$C$7$c$k$+$b$7$l$^$;$s$,!$(B
load $B$G$b%@%a!$(Bbinding $B$G$b%@%a$H$$$&$3$H$K$J$k$H!$(B
$B4X?t7?$N%a%=%C%IDj5A$r9T$C$F$$$k%9%/%j%W%H$r$=$N$^$^$K(B
$B%0%m!<%P%k$JL>A06u4V$r1x@w$5$;$:$K<B9T$9$k<jCJ$,$"$j$^$;$s!%(B
$B$=$N$?$a!$Hs>o$K:$$C$?>u67$K$J$C$F$$$^$9!%(B
$B$G$-$l$P0JA0$NF0:n$KLa$7$FM_$7$$$N$G$9$,!$(B
$B$b$7!$;EMM>e!$0JA0$N>uBV$K$OLa$9$3$H$O@dBP$K$G$-$J$$$N$G$"$l$P!$(B
$B$<$R$H$b;j5^$KBe49<jCJ$rDs6!$$$?$@$1$^$9$h$&6/$/$*4j$$CW$7$^$9!%(B
# $B<B$OJL$N<jCJ$,B8:_$7$F$$$k$N$G$7$?$i$4$a$s$J$5$$!%(B
# $B$=$N>l9g$O$<$R$H$b65$($r@A$$$?$/;W$$$^$9!%(B
Report post Edit Move Delete topic Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-12 09:35
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
Subject: [ruby-dev:28718] binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
Date: Mon, 12 Jun 2006 15:19:32 +0900
Message-ID: <20060612.151930.41648077.nagai@ai.kyutech.ac.jp>
> $B$<$R$H$b;j5^$KBe49<jCJ$rDs6!$$$?$@$1$^$9$h$&6/$/$*4j$$CW$7$^$9!%(B
$B$A$g$C$H>G$C$F$F!$6/$$I=8=$G=q$$$F$7$^$C$F$^$7$?!%$9$_$^$;$s!%(B
$B$G$9$,!$$D$$$=$&=q$$$F$7$^$C$?$[$I$K:$$C$F$$$k$N$OK\Ev$G$9!%(B
$B$I$&$+$h$m$7$/$*4j$$$7$^$9!%(B
Report post Edit Delete Reply with quote
Module#toplevel_eval (Re: binding $B$N;EMMJQ99!)(B or $B%
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-15 01:35
(Received via mailing list)
永�@���九工大で��
#
å¤?なã?とばã?ã??ã??ってã??ã??でå?¨ãç?¸æ??にã?ã??てなã?でã?ねï¼?ï¼?ï¼?(;_;)
ä»?にæ?ªå½±é?¿ã?でなã?とã?ã?ã?とã??条件にï¼?とã??ã?ã?ã?å®?è£?ã?てみまã?ã?ï¼?
現ç?¶ã«å¯¾ã?てé?常にå?°ã£ã¦ã?ã??まã?ã?ï¼?äº?æ?æ?§ã«ã??å½±é?¿ã?なã?はã?
(だと��ま�)
なのでï¼?なã??とã?æ?¡ç?¨ã?てã?ã?だくã?とはできなã?でã?ã??ã?ã?ï¼?
CVS の ruby_1_8 との差å??ã??æ·»ä»?ã?まã?ï¼?
Module#toplevel_eval は module_eval
とå?æ§?にæ??å­?å??まã?はã??ã?­ã??ã?¯ã§
ã?³ã?¼ã??ç??ã??å?ã?å?ã??ï¼?è©?価ã?まã?ï¼?
ã?だã?ï¼?è©?価ã?ã??ã??ã?³ã?¼ã??ç??の中ではï¼?
*
ã?¢ã?¸ã?¥ã?¼ã?«ã§å®?義ã?ã??ã?ã?¡ã?½ã??ã??ã??é?¢æ?°å??ã?¡ã?½ã??ã??とã?てå?¼ã³å?ºã?ã??ï¼?
* ::CONST
のã??ã?なå®?æ?°ã?¢ã?¯ã?»ã?¹ã¯ï¼?そのã?¢ã?¸ã?¥ã?¼ã?«ã®ã?³ã?³ã??ã?­ã?¹ã??ã??
æ??å?ªå??にè¡?ã?ï¼?è¦?つã?ã??なã?ã??ばæ?¬æ¥ã®ã??ã??ã??ã?¬ã??ã?«ã??æ¤?ç´¢ã?ã??ã?ï¼?
代�の場�はその����� (の�����の)
のã?³ã?³ã??ã?­ã?¹ã??でè¡?ã?ã??ã??ï¼?
とã?ã?ã??ã?になã??まã?ï¼?
ã?ã??にã??ã??ï¼?é?¢æ?°å??のã?¡ã?½ã??ã??ã??使ってä½?ã??ã??ã?ã?¹ã?¯ã?ªã??ã??ã??ï¼?
ã?¢ã?¸ã?¥ã?¼ã?«ã??ã??ã??ã??ã?¬ã??ã?«ã¨ã?て load
ã?てã??å??くはã?でã?ï¼?
ま��::CONST = val
のå®?è¡?などでæ?¬æ¥ã®ã??ã??ã??ã?¬ã??ã?«ã?æ±?æ??ã?ã??ã??ã?とã??
避ã?ã??ã??ã??とæ?ã?まã?ï¼?
なã?ï¼?è©?価ã?ã??ã??ã?³ã?¼ã??の中でæ?°ã?にã?¹ã?¬ã??ã??ã??ä½?っã?å ´å?ï¼?
設å®?はそのã?¹ã?¬ã??ã??にå¼?きç¶?ã?ã??まã?ï¼?
ã?だã?è©?価ã?ã??ã??ã?³ã?¼ã??中でã?ってã??ï¼?requrie (autoload 含ã??)
�
å?¼ã°ã??ã?å ´å?にはï¼?require
ã?å®?äº?ã?ã??までã?のæ?§è³ªã¯ç?¡å?¹ã«ã?ã??まã?ï¼?
# ã?©ã?¤ã??ã?©ã?ªã§ã®ã??ã?©ã??ã?«ã??避ã?ã??ã?ã?ã§ã?ï¼?
ちã??っとé?·ã?でã?ã?ï¼?module_eval
とのé?ã?は次のã??ã?になã??まã?ï¼?
======================================================
module M
HOGE = 111
def foo(*args)
p [self, args]
end
end
class X
end
########################################
begin
p '-----(1)-----'
M.module_eval{foo(1,2,3)}
rescue
p $!
end
#=> #<NoMethodError: undefined method `foo' for M:Module>
begin
p '-----(2)-----'
M.toplevel_eval{foo(1,2,3)}
rescue
p $!
end
#=> [M, [1, 2, 3]]
begin
p '-----(3)-----'
M.module_eval{X.new.instance_eval{foo(1,2,3)}}
rescue
p $!
end
#=> #<NoMethodError: undefined method `foo' for #<X:0x401d1308>>
begin
p '-----(4)-----'
M.toplevel_eval{X.new.instance_eval{foo(1,2,3)}}
rescue
p $!
end
#=> [#<X:0x401d1178>, [1, 2, 3]]
begin
p '-----(5)-----'
M.module_eval{Object.new.instance_eval{foo(1,2,3)}}
rescue
p $!
end
#=> #<NoMethodError: undefined method `foo' for #<Object:0x401d1074>>
begin
p '-----(6)-----'
M.toplevel_eval{Object.new.instance_eval{foo(1,2,3)}}
rescue
p $!
end
#=> [#<Object:0x401d0ed0>, [1, 2, 3]]
begin
p '-----(9)-----'
M.module_eval{Object.new.instance_eval{p HOGE}}
rescue
p $!
end
#=> #<NameError: uninitialized constant HOGE>
begin
p '-----(10)-----'
M.toplevel_eval{Object.new.instance_eval{p HOGE}}
rescue
p $!
end
#=> 111
begin
p '-----(11)-----'
M.module_eval{X.new.instance_eval{p HOGE}}
rescue
p $!
end
#=> #<NameError: uninitialized constant HOGE>
begin
p '-----(12)-----'
M.toplevel_eval{X.new.instance_eval{p HOGE}}
rescue
p $!
end
#=> 111
begin
p '-----(13)-----'
M.module_eval{p ::HOGE}
rescue
p $!
end
#=> #<NameError: uninitialized constant HOGE>
begin
p '-----(14)-----'
M.toplevel_eval{p ::HOGE}
rescue
p $!
end
#=> 111
begin
p '-----(15)-----'
M.module_eval{p ::M}
rescue
p $!
end
#=> M
begin
p '-----(16)-----'
M.toplevel_eval{p ::M}
rescue
p $!
end
#=> M
begin
p '-----(17)-----'
M.module_eval{Object.new.instance_eval{p ::HOGE}}
rescue
p $!
end
#=> #<NameError: uninitialized constant HOGE>
begin
p '-----(18)-----'
M.toplevel_eval{Object.new.instance_eval{p ::HOGE}}
rescue
p $!
end
#=> 111
begin
p '-----(19)-----'
M.module_eval{X.new.instance_eval{p ::HOGE}}
rescue
p $!
end
#=> #<NameError: uninitialized constant HOGE>
begin
p '-----(20)-----'
M.toplevel_eval{X.new.instance_eval{p ::HOGE}}
rescue
p $!
end
#=> 111
begin
p '-----(21)-----'
M.module_eval{
def hoge(*args)
p [self, args]
end
hoge(:a, :b, :c)
Object.new.instance_eval{hoge(:d, :e, :f)}
}
rescue
p $!
end
#=> #<NoMethodError: undefined method `hoge' for M:Module>
begin
p '-----(22)-----'
M.toplevel_eval{
def fuga(*args)
p [self, args]
end
fuga(:a, :b, :c)
Object.new.instance_eval{fuga(:d, :e, :f)}
}
rescue
p $!
end
#=> [M, [:a, :b, :c]]
#=> [#<Object:0x401d04bc>, [:d, :e, :f]]
p '--------------------------'
p m = Module.new #=> #<Module:0x401d0480>
m.toplevel_eval{
FOO = :foo
::BAR = :bar
def baz(*args)
[self, args]
end
p baz(1, FOO, ::FOO, ::BAR)
#=> [#<Module:0x401d0480>, [1, :foo, :foo, :bar]]
p Object.new.instance_eval{baz(2, FOO, ::FOO, ::BAR)}
#=> [#<Object:0x401d02dc>, [2, :foo, :foo, :bar]]
}
p m.constants #=> ["BAR", "FOO"]
======================================================
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval (Re: binding $B$N;EMMJQ99!)(B or
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2006-06-15 09:58
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:28735] Module#toplevel_eval (Re: binding
$B$N;EMMJQ99!)(B or $B%P%0!)(B)"
on Thu, 15 Jun 2006 08:35:03 +0900, Hidetoshi NAGAI
<nagai@ai.kyutech.ac.jp> writes:
|$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
|
|# $BJQ$J$3$H$P$+$j$d$C$F$k$s$GA4$/Aj<j$K$5$l$F$J$$$G$9$M!%!%!%(B(;_;)
[ruby-dev:28718]$B$K$D$$$F$J$i!"8+$F$^$9!#$?$@!"$^$@$I$3$,0-$5(B
$B$7$F$$$k$N$+J,$+$C$F$^$;$s!#$A$g$C$HBT$C$F$/$@$5$$$M!#(B
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-15 14:15
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28736] Re: Module#toplevel_eval (Re: binding
$B$N;EMMJQ99!)(B or $B%P%0!)(B)
Date: Thu, 15 Jun 2006 16:02:58 +0900
Message-ID: <1150343532.253370.20196.nullmailer@x31.priv.netlab.jp>
> [ruby-dev:28718]$B$K$D$$$F$J$i!"8+$F$^$9!#$?$@!"$^$@$I$3$,0-$5(B
> $B$7$F$$$k$N$+J,$+$C$F$^$;$s!#$A$g$C$HBT$C$F$/$@$5$$$M!#(B
$B$"$j$,$H$&$4$6$$$^$9!%$h$m$7$/$*4j$$CW$7$^$9!%(B
$B$A$J$_$K@Z1)5M$^$C$F:n$C$?(B Module#toplevel_eval $B$G$9$,!$(B
$B$=$N3d$K$O7k9=;H$($=$&$G!$!V$A$g$C$H$$$$$+$b!W$H;W$C$F$$$^$9!%(B
$BNc$($P$G$9$,!$%;%-%e%j%F%#>e$NM}M3$G!$FI$_9~$s$@%3!<%I$+$i$N(B
$BDj?t(B ENV $B$X$N%"%/%;%9$K@)8B$r$+$1$?$$>l9g$,$"$C$?$H$7$^$9!%(B
$B$"$i$f$k%1!<%9$r9M$($F$$$k$o$1$G$O$J$$$G$9$,!$<!$N$h$&$K$9$k$H(B
Module#toplevel_eval
$B$NCf$+$i@)Ls$r2sHr$9$k$N$O$+$J$jFq$7$=$&$G$9!%(B
========================================================
class Wrapped_ENV
@@allow_keys = ['USER', 'DISPLAY']
def initialize
@env = ENV
end
def inspect
"Wrapped_ENV"
end
def class
nil
end
def _check_key(key)
@@allow_keys.index(key)
end
private :_check_key
def [](key)
key = key.to_s
(_check_key(key))? @env[key]: nil
end
def []=(key,val)
key = key.to_s
val = val.to_s
@env[key] = val if _check_key(key)
end
end
module XX
ENV = Wrapped_ENV.new
ObjectSpace = nil
Wrapped_ENV = nil
def remove_const(*args)
raise SecurityError, 'deny to remove constants'
end
end
#########################
puts "*** access `ENV' in main"
p ["ENV['USER']", ENV['USER']]
p ["ENV['DISPLAY']", ENV['DISPLAY']]
p ["ENV['HOME']", ENV['HOME']]
XX.toplevel_eval{
puts "\n*** access `ENV' in toplevel_eval"
p ENV
p ["ENV['USER']", ENV['USER']]
p ["ENV['DISPLAY']", ENV['DISPLAY']]
p ["ENV['HOME']", ENV['HOME']]
}
XX.toplevel_eval{
puts "\n*** try to `remove_const :ENV'"
begin
remove_const :ENV
rescue
p $!
end
}
XX.toplevel_eval{
puts "\n*** try to override `remove_const' to call super()"
def remove_const(*args)
super(*args)
end
begin
remove_const :ENV
rescue
p $!
end
def self.remove_const(*args)
super(*args)
end
begin
self.remove_const :ENV
rescue
p $!
end
}
XX.toplevel_eval{
puts "\n*** try to `undef_method :remove_const'"
begin
undef_method :remove_const
rescue
p $!
end
begin
class << self
undef_method :remove_const
end
rescue
p $!
end
begin
remove_const :ENV
rescue
p $!
end
}
XX.toplevel_eval{
puts "\n*** try to access ObjectSpace"
p ObjectSpace
p ::ObjectSpace
puts "\n*** try to access Wrapped_ENV"
p Wrapped_ENV
p ::Wrapped_ENV
}
puts "\n"
XX.toplevel_eval{p ENV}
========================================================
$B<B:]$K<B9T$9$k$H!$$3$&$J$j$^$9!%(B
========================================================
*** access `ENV' in main
["ENV['USER']", "nagai"]
["ENV['DISPLAY']", ":0.0"]
["ENV['HOME']", "/home/nagai"]
*** access `ENV' in toplevel_eval
Wrapped_ENV
["ENV['USER']", "nagai"]
["ENV['DISPLAY']", ":0.0"]
["ENV['HOME']", nil]
*** try to `remove_const :ENV'
#<SecurityError: deny to remove constants>
*** try to override `remove_const' to call super()
#<NoMethodError: super: no superclass method `remove_const'>
#<NoMethodError: super: no superclass method `remove_const'>
*** try to `undef_method :remove_const'
#<NameError: undefined method `remove_const' for class `Class'>
#<NoMethodError: undefined method `remove_const' for XX:Class>
*** try to access ObjectSpace
nil
nil
*** try to access Wrapped_ENV
nil
nil
Wrapped_ENV
========================================================
$B$$$+$,$J$b$N$G$7$g$&!)(B
$B>/$7$O%;%-%e%j%F%#6/2=$KLrN)$?$J$$$G$7$g$&$+!)(B(^_^;
Report post Edit Delete Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2006-06-21 10:46
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:28718] binding $B$N;EMMJQ99!)(B or
$B%P%0!)(B"
on Mon, 12 Jun 2006 15:19:32 +0900, Hidetoshi NAGAI
<nagai@ai.kyutech.ac.jp> writes:
|$B<B$N$H$3$m!$;d$K$H$C$F$O!V:$$k!W$I$3$m$+(B
|$B5^=j$X$NL?Cf$H$b8@$($k$[$I$NBg%@%a!<%8$H$J$kLdBj$G$9!%(B(;_;)
|
|$BNc$($P<!$N$h$&$J%9%/%j%W%H$,$"$C$?$H$7$^$9!%(B
|----< hoge.rb >---------------------------------------
|def hoge(*args)
| [self, args]
|end
|
|p hoge(1, self)
|Object.new.instance_eval{ p hoge(2, self)}
|------------------------------------------------------
|
|$B$3$l$rC1=c$K(B ruby hoge.rb $B$H$9$l$P!$Nc$($P(B
|------------------------------------------------------
|[main, [1, main]]
|[#<Object:0x401d5cb4>, [2, #<Object:0x401d5cb4>]]
|------------------------------------------------------
|$B$H=PNO$5$l$^$9!%(B
|$B$b$A$m$s(B ruby -e "load 'hoge.rb'" $B$H$7$F$bF1MM$G$9!%(B
|
|$B$G!$%0%m!<%P%k$JL>A06u4V$r1x@w$9$k$3$H$J$/<B9T$7$?$$$H9M$($F(B
|----< hoge2.rb >--------------------------------------
|def null_binding
| Module.new.module_eval{binding}
|end
|eval(File.read('hoge.rb', null_binding))
|------------------------------------------------------
|$B$H$7$F(B ruby hoge2.rb $B$J$I$H$7$?>l9g!$(B
|$B>/$7A0$^$G$N(B ruby-1.8 ($B>/$J$/$H$b(B ruby-1.8.4 $B$N%j%j!<%9HG(B) $B$G$O(B
|------------------------------------------------------
|[#<Module:0x401d5db2>, [1, #<Module:0x401d5db2>]]
|[#<Object:0x401d5cb4>, [2, #<Object:0x401d5cb4>]]
|------------------------------------------------------
|$B$J$I$H$$$&$h$&$K!$$&$^$/(B(?)$BF0$$$F$/$l$F$$$^$7$?!%(B
$B$H$$$&$3$H$G!"$h$&$d$C$H;~4V$r$H$C$FD4$Y$F$_$^$7$?!#0JA0$3$l(B
$B$,F0$$$F$$$?$H$$$&$N$,$I$&$K$bG<F@$,9T$+$J$$$N$G!"8E$$%P!<%8%g(B
$B%s$r2~$a$F%3%s%Q%$%k$7$FD4$Y$kI,MW$,$"$j$^$7$?!#(B
$B7kO@$+$i$$$&$H!"(B1.8.3$B$^$G$N%P!<%8%g%s$G$O$3$N%9%/%j%W%H$O3N(B
$B$+$KF0:n$7$^$9$,!"$=$l$O%0%m!<%P%k$JL>A06u4V(B(Object)$B$K(Bhoge$B%a(B
$B%=%C%I$rDj5A$7$F$$$?$+$i$G$9!#$D$^$j!"85!9$N!V%0%m!<%P%k$JL>(B
$BA06u4V$r1x@w$9$k$3$H$J$/<B9T$7$?$$!W$H$$$&MW5a$rK~$?$7$F$$$^(B
$B$;$s!#(B
$B$G$O!"$I$&$9$k$+!"$G$9$,!"(B
* $B!V85$N5sF0$KLa$9!W$N$OIT2DG=$G$O$J$$$N$G$9$,!"!V%P%0$rI|(B
$B3h$5$;$k!W$H$$$&$3$H$J$N$G!"$"$^$j>h$j5$$G$O$"$j$^$;$s!#(B
$B$^$?!"85!9$NMW5a$rK~$?$7$F$$$J$$0J>e$"$^$j0UL#$,$J$$$h$&(B
$B$J5$$,$7$^$9!#(B
* $B$J$K$b$7$J$$!"$@$H(Btk$B$G$O:$$k$s$G$9$h$M!#(B
* toplevel_eval$B$NF3F~!#$^$"!"DI2C$J$N$G(B1.8$B$G$bBLL\$G$O$J$$(B
$B$H;W$&$N$G$9$,!#(Beval$B$,A}$($k$H7y$J4i$r$9$k?M$,L\$KIb$+$V(B
$B$h$&$G$9!#(B
$B$b$&$A$g$C$H9M$($5$;$F$/$@$5$$!#$40U8+Jg=8Cf!#(B
Report post Edit Delete Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-21 12:04
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28780] Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
Date: Wed, 21 Jun 2006 17:45:13 +0900
Message-ID: <1150879512.687108.4987.nullmailer@x31.priv.netlab.jp>
> $B$H$$$&$3$H$G!"$h$&$d$C$H;~4V$r$H$C$FD4$Y$F$_$^$7$?!#0JA0$3$l(B
> $B$,F0$$$F$$$?$H$$$&$N$,$I$&$K$bG<F@$,9T$+$J$$$N$G!"8E$$%P!<%8%g(B
> $B%s$r2~$a$F%3%s%Q%$%k$7$FD4$Y$kI,MW$,$"$j$^$7$?!#(B
>
> $B7kO@$+$i$$$&$H!"(B1.8.3$B$^$G$N%P!<%8%g%s$G$O$3$N%9%/%j%W%H$O3N(B
> $B$+$KF0:n$7$^$9$,!"$=$l$O%0%m!<%P%k$JL>A06u4V(B(Object)$B$K(Bhoge$B%a(B
> $B%=%C%I$rDj5A$7$F$$$?$+$i$G$9!#$D$^$j!"85!9$N!V%0%m!<%P%k$JL>(B
> $BA06u4V$r1x@w$9$k$3$H$J$/<B9T$7$?$$!W$H$$$&MW5a$rK~$?$7$F$$$^(B
> $B$;$s!#(B
$B<B$O1x@w$7$F$7$^$C$F$$$?$N$G$9$M!%(B;;;^_^;;;
> $B$G$O!"$I$&$9$k$+!"$G$9$,!"(B
>
> * $B!V85$N5sF0$KLa$9!W$N$OIT2DG=$G$O$J$$$N$G$9$,!"!V%P%0$rI|(B
> $B3h$5$;$k!W$H$$$&$3$H$J$N$G!"$"$^$j>h$j5$$G$O$"$j$^$;$s!#(B
> $B$^$?!"85!9$NMW5a$rK~$?$7$F$$$J$$0J>e$"$^$j0UL#$,$J$$$h$&(B
> $B$J5$$,$7$^$9!#(B
$B$O$$!%3N$+$K0UL#$,$J$$$H;W$$$^$9!%(B
$BF0$/$h$&$K$O$J$C$F$b!$L\;X$9$Y$-;Q$G$O$"$j$^$;$s$N$G!%(B
> * $B$J$K$b$7$J$$!"$@$H(Btk$B$G$O:$$k$s$G$9$h$M!#(B
$B>/$J$/$H$b%&%#%8%'%C%H%G%b$G$O$+$J$j:$$j$^$9!%(B
$B%&%#%8%'%C%H%G%b$G$O<B9TCf$K3F%G%b%9%/%j%W%H$N%=!<%9$r=q$-49$($F(B
$B:F<B9T$7$F8z2L$r;n$95!G=$,Hw$o$C$F$$$^$9!%(B
$B$3$l$O3X=,>eM-1W$G$9$N$G!$=EMW$J5!G=$@$H;W$C$F$$$^$9!%(B
$B$G$9$,8=>u$N$^$^$G$9$H!$4X?t7?$N%a%=%C%I$r$A$g$C$HDj5A$7$F(B
$BMxMQ$9$k<B83$r;n$_$?>l9g!$K\Mh$O@5$7$/F0$/%=!<%9$G$"$k$K$b4X$o$i$:(B
$B%(%i!<$r@8$8$F$7$^$&%1!<%9$,H/@8$9$k$K$J$j$^$9!%(B
$B$3$l$G$O3X=,$K0-1F6A$,$"$k$H8@$o$6$k$rF@$^$;$s!%(B
$B$I$&BP1~$9$Y$-$+(B ($B2?$r5>@7$K$9$k$+(B) $B$K4X$7$F!$(B
$B$+$J$j87$7$$A*Br$r6/$$$i$l$k$3$H$K$J$j$^$9!%(B
$BFC$K5^=j$rFM$+$l$F$7$^$C$F$$$k$N$,!$(B
$BL$F'%=%U%H$G8=:_3+H/Cf$N(B Ruby/TkORCA $B$G$9!%(B(^_^;
$B%m!<%+%k$G$=$N$^$^$KF0$+$;$k%9%/%j%W%H$r(B
sandbox $B$KFI$_9~$s$G4F;k$7$D$D2TF/$5$;$k;EAH$_$J$N$G$9$,!$(B
$B8=>u$N$^$^$G$O(B sandbox $BFb$G$OF0$+$J$/$J$k$H$$$&%1!<%9$,(B
$B$+$J$jA}Bg$7$^$9!%(B
$B%3%s%;%W%H$H$7$FBgI}$J8eB`$G$"$j!$?I$9$.$^$9!%(B
# $BFH<+$G(B toplevel_eval $B$N$h$&$JBP:v$r2C$($k$K$7$F$b!$(B
# Ruby $B<+BN$N:F%3%s%Q%$%k$,I,MW$H$$$&$3$H$K$J$C$F$7$^$$$^$9!%(B
# $B$3$l$^$G!$%N!<%^%k$J(B Ruby $B$N5!G=HO0O$G<BAu!$<B8=$9$k$h$&$K(B
#
$BEXNO$7$F$-$?$@$1$K!$EXNO$,?eK"$K5"$9$h$&$J$3$H$O$A$g$C$H!%!%!%(B(T_T)
> * toplevel_eval$B$NF3F~!#$^$"!"DI2C$J$N$G(B1.8$B$G$bBLL\$G$O$J$$(B
> $B$H;W$&$N$G$9$,!#(Beval$B$,A}$($k$H7y$J4i$r$9$k?M$,L\$KIb$+$V(B
> $B$h$&$G$9!#(B
toplevel_eval $B$NCf?H$O(B module_eval $B$HF1$8$G$9!%(B
$B0c$&$N$O%/%i%93,AX$rC)$kM%@h=g0L$K$A$g$C$H$@$1:Y9)$r(B
$B2C$($F$$$kE@$N$_(B ($B$@$C$?$H;W$&(B) $B$J$N$G$9$,!$(B
$B$=$l$G$b(B YARV $B$K$OBg$-$/1F6A$9$k$G$7$g$&$+!)(B >
$B$5$5$@$5$s(B
> $B$b$&$A$g$C$H9M$($5$;$F$/$@$5$$!#$40U8+Jg=8Cf!#(B
$B85!9$N5sF0$,%P%0$G$"$C$?$H$9$k$H!$(B
$B$<$R(B toplevel_eval
$B$^$?$O$=$N=$@5J*$rF3F~$7$F$$$?$@$-$?$$$H;W$$$^$9!%(B
$B$G$J$1$l$P!$$G$-$?J}$,K>$^$7$$(B ($B$H;W$($k(B) $B$3$H$,(B
$B$G$-$=$&$G$G$-$J$$$H$$$&$3$H$K$J$k$N$G$O$J$$$G$7$g$&$+!%(B
load(file, true) $B$K$D$$$F$b!$$=$l$,4|BT$5$;$k$3$H$r9M$($k$J$i!$(B
$BL5L>%b%8%e!<%k$G$N(B toplevel_eval
$BAjEv$H$7$?J}$,NI$5$=$&$K46$8$^$9!%(B
$B$?$@$7!$(Bload(file, true) $B$NJQ99$OHs8_49$r4^$_$^$9$N$G(B
$B$3$l$r:#2s$N%j%j!<%9$GJQ99$9$k$3$H$OL5M}$J$N$G$7$g$&$M!%(B
Report post Edit Delete Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-21 12:13
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28780] Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
Date: Wed, 21 Jun 2006 17:45:13 +0900
Message-ID: <1150879512.687108.4987.nullmailer@x31.priv.netlab.jp>
> * toplevel_eval$B$NF3F~!#$^$"!"DI2C$J$N$G(B1.8$B$G$bBLL\$G$O$J$$(B
> $B$H;W$&$N$G$9$,!#(Beval$B$,A}$($k$H7y$J4i$r$9$k?M$,L\$KIb$+$V(B
> $B$h$&$G$9!#(B
[ruby-dev:28735] $B$d(B [ruby-dev:28737] $B$NF0:n$r<($7$F!$(B
$B!V$3$&$7$?;EMM$N(B Module#toplevel_eval $B$NF3F~$r$I$&;W$&$+!)!W(B
$B$H(B ruby-list $B$d(B ruby-talk
$B$KN.$7$F0U8+$r5a$a$?J}$,$$$$$G$7$g$&$+!)(B
Report post Edit Delete Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2006-06-21 14:11
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:28783] Re: binding $B$N;EMMJQ99!)(B or
$B%P%0!)(B"
on Wed, 21 Jun 2006 19:12:00 +0900, Hidetoshi NAGAI
<nagai@ai.kyutech.ac.jp> writes:
|[ruby-dev:28735] $B$d(B [ruby-dev:28737] $B$NF0:n$r<($7$F!$(B
|$B!V$3$&$7$?;EMM$N(B Module#toplevel_eval $B$NF3F~$r$I$&;W$&$+!)!W(B
|$B$H(B ruby-list $B$d(B ruby-talk $B$KN.$7$F0U8+$r5a$a$?J}$,$$$$$G$7$g$&$+!)(B
$B$H$a$^$;$s$1$I!"@dBP$KI,MW$+$H$$$o$l$k$H$=$&$G$b$J$$$h$&$K;W(B
$B$$$^$9(B($BFC$K(Bruby-talk)$B!#8@8l;EMM$K$D$$$F$&$k$5$$$N$O05E]E*$K(B
$BF|K\?M$,B?$$$G$9$+$i!#(B
ruby-core$B$@$HLLGr$$H?1~$,F@$i$l$J$$$H$O8B$j$^$;$s$,!#(B
Report post Edit Delete Reply with quote
Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-21 20:37
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28784] Re: binding $B$N;EMMJQ99!)(B or $B%P%0!)(B
Date: Wed, 21 Jun 2006 21:09:25 +0900
Message-ID: <1150891761.685913.9868.nullmailer@x31.priv.netlab.jp>
> |[ruby-dev:28735] $B$d(B [ruby-dev:28737] $B$NF0:n$r<($7$F!$(B
> |$B!V$3$&$7$?;EMM$N(B Module#toplevel_eval $B$NF3F~$r$I$&;W$&$+!)!W(B
> |$B$H(B ruby-list $B$d(B ruby-talk $B$KN.$7$F0U8+$r5a$a$?J}$,$$$$$G$7$g$&$+!)(B
>
> $B$H$a$^$;$s$1$I!"@dBP$KI,MW$+$H$$$o$l$k$H$=$&$G$b$J$$$h$&$K;W(B
> $B$$$^$9(B($BFC$K(Bruby-talk)$B!#8@8l;EMM$K$D$$$F$&$k$5$$$N$O05E]E*$K(B
> $BF|K\?M$,B?$$$G$9$+$i!#(B
$B$G$OB>=j$KFC$K2?$+$rN.$9$h$&$J$3$H$O$;$:!$(B
$B$^$D$b$H$5$s$NH=CG$r$*BT$A$7$^$9!%(B
$BI,$:$7$b(B Module#toplevel_eval $B$G$"$kI,MW$O$J$$$N$G$9$,!$(B
$B2?$i$+$N<BAu<jCJ$O$<$R$H$bM_$7$$(B ($B8D?ME*$K$O$G$9$,(B)
$B$H$3$m$G$9$N$G!$(B
$B$I$&$+$h$m$7$/$*4j$$CW$7$^$9!%(B
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2006-06-22 05:44
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:28737] Re: Module#toplevel_eval"
on Thu, 15 Jun 2006 21:14:49 +0900, Hidetoshi NAGAI
<nagai@ai.kyutech.ac.jp> writes:
|$B$A$J$_$K@Z1)5M$^$C$F:n$C$?(B Module#toplevel_eval $B$G$9$,!$(B
|$B$=$N3d$K$O7k9=;H$($=$&$G!$!V$A$g$C$H$$$$$+$b!W$H;W$C$F$$$^$9!%(B
$B$h$&$d$C$H%Q%C%A$rFI$_$^$7$?!#$J$s$+%a%=%C%I%-%c%C%7%e$r9MN8(B
$B$7$F$J$$$h$&$J5$$,$9$k$s$G!"F1$8L>A0$N%a%=%C%I$,$"$k$H4|BT$7(B
$B$F$J$$F0$-$r$9$k$h$&$J5$$,$7$^$9!#$+$H$$$C$F!"$I$&D>$;$P$h$$(B
$B$N$+$O$o$+$i$J$$$N$G$9$,!#(B
$B$I$&$K$+$7$F$"$2$?$$$H$3$m$G$O$"$k$N$G$9$,!#(B
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-22 11:08
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28793] Re: Module#toplevel_eval
Date: Thu, 22 Jun 2006 12:42:45 +0900
Message-ID: <1150947764.734852.31289.nullmailer@x31.priv.netlab.jp>
> $B$h$&$d$C$H%Q%C%A$rFI$_$^$7$?!#$J$s$+%a%=%C%I%-%c%C%7%e$r9MN8(B
> $B$7$F$J$$$h$&$J5$$,$9$k$s$G!"F1$8L>A0$N%a%=%C%I$,$"$k$H4|BT$7(B
> $B$F$J$$F0$-$r$9$k$h$&$J5$$,$7$^$9!#$+$H$$$C$F!"$I$&D>$;$P$h$$(B
> $B$N$+$O$o$+$i$J$$$N$G$9$,!#(B
$B%@%a$G$7$?$+!%!%!%(B
$BBg92$F$G:n$C$?$b$N$O=jA'$=$NDxEY$NBeJ*$@$C$?$h$&$G$9$M!%(B(;_;)
#
$B%a%=%C%I$dDj?t$r8!:w$7$F$$$kItJ,$K3d$j9~$a$P$$$$$H;W$C$F$^$7$?$,!$(B
# $B$=$3$^$GC1=c$K$O:Q$^$;$i$l$J$+$C$?$h$&$G$9$M!%(B
# $B%-%c%C%7%e$K$OA4$/L\$,8~$$$F$$$^$;$s$G$7$?!%(B
> $B$I$&$K$+$7$F$"$2$?$$$H$3$m$G$O$"$k$N$G$9$,!#(B
$B$48|0U$r$"$j$,$H$&$4$6$$$^$9!%(B
$B$7$+$7$J$,$i!$$[$H$s$IH,J}:I$,$j$N>u67$G$9$M!%(B(T_T)
$B$=$l$H$b%a%=%C%I%-%c%C%7%e$N7o$,$I$&$K$+$G$-$5$($9$l$P(B
$B$^$@2DG=@-$O$"$k$N$G$7$g$&$+!)(B
$BNc$($P!$%-%c%C%7%e$K!V%H%C%W%l%Y%k$G8+$D$1$?$b$N$+$I$&$+!W$N(B
$B%U%i%0$bJ];}$9$k(B
($B%a%=%C%I$,8+$D$+$i$J$+$C$?$H$-$b%U%i%0$rN)$F$F!$(B
$B$=$N;~E@$N%H%C%W%l%Y%k$^$?$O(B rb_cObject $B$r(B origin
$B$K%;%C%H$9$k(B)
$B$3$H$K$7$F!$(B
==================================================
if (klass $B$H(B mid $B$,0lCW$9$k$b$N$,B8:_(B)
if ($B!V%H%C%W%l%Y%k$G8+$D$1$?!W%U%i%0$,N)$C$F$$$k(B)
if ($B!V8=:_$N%H%C%W%l%Y%k!W$,@_Dj$5$l$F$$$k(B)
if (origin $B$O(B rb_cObject $B$G$"$k(B)
$B%-%c%C%7%e$NFbMF$OL58z(B (
$B8=:_$N%H%C%W%l%Y%k$N$_$r:F8!:w(B )
elsif (origin $B$O8=:_$N%H%C%W%l%Y%k$G$"$k(B)
$B%-%c%C%7%e$NFbMF$OM-8z(B ( method == 0
$B$b!V$J$7!W$H$7$FM-8z(B )
else
$B%-%c%C%7%e$NFbMF$OL58z(B ( $BIaDL$K%U%k8!:w(B )
end
else
if (origin $B$O(B rb_cObject $B$G$"$k(B)
$B%-%c%C%7%e$NFbMF$OM-8z(B ( method == 0
$B$b!V$J$7!W$H$7$FM-8z(B )
else
$B%-%c%C%7%e$NFbMF$OL58z(B ( rb_cObject $B$N$_$r:F8!:w(B
)
end
end
else
$B%-%c%C%7%e$NFbMF$OM-8z(B
end
else
$BIaDL$K%U%k8!:w(B
end
==================================================
$B$H$$$&$h$&$JH=Dj$G$O%@%a$G$7$g$&$+!)(B
$B%H%C%W%l%Y%k@_Dj$N$"$j(B/$B$J$7$r9T$C$?$jMh$?$j$9$k>l9g$K$O(B
$B%-%c%C%7%e%R%C%HN($,$+$J$j2<$,$k2DG=@-$,$"$j$^$9$,!$(B
$B%U%k8!:w$9$k$h$j$O>/$7$O%3%9%H$,Dc$/$G$-$=$&$K;W$($^$9!%(B
# $B$-$C$H$^$?$I$3$+$,H4$1$F$$$F%@%a$J$s$G$7$g$&$M!%(B(^_^;
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
0ec4920185b657a03edf01fff96b4e9b?d=identicon&s=25 Yukihiro Matsumoto (Guest)
on 2006-06-22 11:17
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:28795] Re: Module#toplevel_eval"
on Thu, 22 Jun 2006 18:06:33 +0900, Hidetoshi NAGAI
<nagai@ai.kyutech.ac.jp> writes:
|> $B$h$&$d$C$H%Q%C%A$rFI$_$^$7$?!#$J$s$+%a%=%C%I%-%c%C%7%e$r9MN8(B
|> $B$7$F$J$$$h$&$J5$$,$9$k$s$G!"F1$8L>A0$N%a%=%C%I$,$"$k$H4|BT$7(B
|> $B$F$J$$F0$-$r$9$k$h$&$J5$$,$7$^$9!#$+$H$$$C$F!"$I$&D>$;$P$h$$(B
|> $B$N$+$O$o$+$i$J$$$N$G$9$,!#(B
|
|$B%@%a$G$7$?$+!%!%!%(B
|$BBg92$F$G:n$C$?$b$N$O=jA'$=$NDxEY$NBeJ*$@$C$?$h$&$G$9$M!%(B(;_;)
|
|# $B%a%=%C%I$dDj?t$r8!:w$7$F$$$kItJ,$K3d$j9~$a$P$$$$$H;W$C$F$^$7$?$,!$(B
|# $B$=$3$^$GC1=c$K$O:Q$^$;$i$l$J$+$C$?$h$&$G$9$M!%(B
|# $B%-%c%C%7%e$K$OA4$/L\$,8~$$$F$$$^$;$s$G$7$?!%(B
1.9$B$J$i%-%c%C%7%e$NItJ,$K<j$,F~$C$F$$$F!"2~B$$NM>CO$,$"$k$N(B
$B$+$b$7$l$^$;$s$,!"$3$l$r(B1.8.5$B$KF~$l$k$N$OFq$7$=$&$G$9!#;~4V(B
$B$,8B$i$l$F$k$7!#(B
|$B$7$+$7$J$,$i!$$[$H$s$IH,J}:I$,$j$N>u67$G$9$M!%(B(T_T)
$B$&!<$s!"<B8=$5$;$?$$$3$H$O(B
* ($B%H%C%W%l%Y%k$b4^$a$?(B)$BDj?t$NJ]8n(B
* $B4X?tE*%a%=%C%I$r(B($B$I$3$G$b(B)$B4X?tE*$K8F$S$?$$(B
$B$N#2E@$G$7$g$&$+!#A0<T$O$J$s$H$+$J$j$=$&$J5$$,$7$^$9$,!"8e<T(B
$B$O(B($B$$$^$@;EMM$5$(Dj$+$G$J$$(B)classbox$B$H$+(Bselector
namespace$B$H(B
$B$[$\F1MM$N5!G=$G$9$M$(!#(B
$B$"$k$$$O!"@PDM$5$s$N(Bclass-in-state$B$_$?$$$J$N$r<BAu$9$k$+(B...$B!#(B
$B$b$&$A$g$C$H9M$($5$;$F$/$@$5$$!#(B
$B$^$D$b$H(B $B$f$-$R$m(B /:|)
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-06-22 11:52
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Yukihiro Matsumoto <matz@ruby-lang.org>
Subject: [ruby-dev:28796] Re: Module#toplevel_eval
Date: Thu, 22 Jun 2006 18:17:32 +0900
Message-ID: <1150967851.228494.5818.nullmailer@x31.priv.netlab.jp>
> $B$&!<$s!"<B8=$5$;$?$$$3$H$O(B
>
> * ($B%H%C%W%l%Y%k$b4^$a$?(B)$BDj?t$NJ]8n(B
$B$3$A$i$O(B
$B!V%b%8%e!<%k$NCf$G$H$$$&@)Ls2<$GI>2A$7$h$&$H$7$F$$$k$N$K!$(B
$B$=$N%b%8%e!<%k$K(B CONST $B$rDj5A$7$F$$$?$H$7$F$b(B
::CONST $B$G%H%C%W%l%Y%k$N(B CONST $B$K$"$C$5$j%"%/%;%9$,(B
$B$G$-$F$7$^$&$N$C$F7y$8$c$J$$!)!W(B
$B$H$$$&46$8$G!$(B
> * $B4X?tE*%a%=%C%I$r(B($B$I$3$G$b(B)$B4X?tE*$K8F$S$?$$(B
$B$3$A$i$O(B
$B!V%W%m%0%i%`JR$rJq$_9~$s$G<B9T$7$?$$$H$$$&$@$1$NMW5a$J$N$K!$(B
$BJq$_9~$`$b$N$,$?$^$?$^%b%8%e!<%k$G$"$k$;$$$G(B
$B$=$N%W%m%0%i%`JR$NCf$G4X?tE*$K:n$i$l;H$o$l$F$$$k%a%=%C%I$,(B
$B8F$Y$J$/$J$C$A$c$&$N$O7y$8$c$J$$!)!W(B
$B$H$$$&46$8$G$9!%(B
> $B$N#2E@$G$7$g$&$+!#A0<T$O$J$s$H$+$J$j$=$&$J5$$,$7$^$9$,!"8e<T(B
> $B$O(B($B$$$^$@;EMM$5$(Dj$+$G$J$$(B)classbox$B$H$+(Bselector namespace$B$H(B
> $B$[$\F1MM$N5!G=$G$9$M$(!#(B
>
> $B$"$k$$$O!"@PDM$5$s$N(Bclass-in-state$B$_$?$$$J$N$r<BAu$9$k$+(B...$B!#(B
> $B$b$&$A$g$C$H9M$($5$;$F$/$@$5$$!#(B
$B$4LBOG$r$+$1$F$^$9$,!$$h$m$7$/$*4j$$CW$7$^$9!%(B
Report post Edit Delete Reply with quote
Re: Module#toplevel_eval
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2006-07-10 12:24
(Received via mailing list)
$B1J0f(B@$BCNG=!%6e9)Bg$G$9!%(B
From: Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
Subject: [ruby-dev:28797] Re: Module#toplevel_eval
Date: Thu, 22 Jun 2006 18:48:55 +0900
Message-ID: <20060622.184854.112609658.nagai@ai.kyutech.ac.jp>
> > $B$N#2E@$G$7$g$&$+!#A0<T$O$J$s$H$+$J$j$=$&$J5$$,$7$^$9$,!"8e<T(B
> > $B$O(B($B$$$^$@;EMM$5$(Dj$+$G$J$$(B)classbox$B$H$+(Bselector namespace$B$H(B
> > $B$[$\F1MM$N5!G=$G$9$M$(!#(B
> >
> > $B$"$k$$$O!"@PDM$5$s$N(Bclass-in-state$B$_$?$$$J$N$r<BAu$9$k$+(B...$B!#(B
> > $B$b$&$A$g$C$H9M$($5$;$F$/$@$5$$!#(B
>
> $B$4LBOG$r$+$1$F$^$9$,!$$h$m$7$/$*4j$$CW$7$^$9!%(B
$B$J$+$J$+BP1~$,Fq$7$=$&$J>u67$G$9$N$G!$(B
$B!VNI$$$d$jJ}$G$O$J$$$h$J$!!W$H;W$$$D$D(B (^_^;
$B1~5^=hCVE*$K2<5-%3!<%I$N$h$&$J@oN,$G$NBP:v$rE,MQ$7$^$7$?!%(B
$B$^$!$J$s$H$+:GDc8B$NHO0O$G$O8mKb2=$;$F$$$k$h$&$G$O$"$k$N$G$9$,!$(B
$BB>$H>WFM$7$d$9$=$&$J>lEv$?$jE*BP=h$G$9$N$G!$(B
$B$d$O$j??$CEv$JBP1~$,K>$^$l$^$9!%(B
1.8.5 $B$N%j%j!<%9D>A0$G$OBP1~$r4V$K9g$o$;$k$N$,Fq$7$/$J$k62$l$b(B
$B$"$j$^$9$N$G!$#1F|$G$bAa$/$KBP1~$7$F$$$?$@$1$k$H4r$7$/;W$$$^$9!%(B
$B2f$,PV$P$+$j$G$9$_$^$;$s$,!$$h$m$7$/$*4j$$CW$7$^$9!%(B
---------------------------------------------------------------------
class Object
alias __method_missing__ method_missing
private :__method_missing__
def method_missing(id, *args)
begin
has_top = (top = Thread.current[:TOPLEVEL]) &&
top.respond_to?(:pseudo_toplevel_evaluable?) &&
top.pseudo_toplevel_evaluable? &&
top.respond_to?(id)
rescue Exception => e
has_top = false
end
if has_top
top.__send__(id, *args)
else
__method_missing__(id, *args)
end
end
end
class Proc
def initialize(*args, &b)
super
@__pseudo_toplevel__ = Thread.current[:TOPLEVEL]
end
alias __call__ call
def call(*args, &b)
if top = @__pseudo_toplevel__
orig_top = Thread.current[:TOPLEVEL]
Thread.current[:TOPLEVEL] = top
begin
__call__(*args, &b)
ensure
Thread.current[:TOPLEVEL] = orig_top
end
else
__call__(*args, &b)
end
end
end
def proc(&b)
Proc.new(&b)
end
def lambda(&b)
Proc.new(&b)
end
module PseudoToplevel_Evaluable
def pseudo_toplevel_eval(body = Proc.new)
orig_top = Thread.current[:TOPLEVEL]
Thread.current[:TOPLEVEL] = self
begin
body.call
ensure
Thread.current[:TOPLEVEL] = orig_top
end
end
def pseudo_toplevel_evaluable?
@pseudo_toplevel_evaluable
end
def pseudo_toplevel_evaluable=(mode)
@pseudo_toplevel_evaluable = (mode)? true: false
end
def self.extended(mod)
mod.__send__(:extend_object, mod)
mod.instance_variable_set('@pseudo_toplevel_evaluable', true)
end
end
module M
extend PseudoToplevel_Evaluable
def foo(*args)
p [self, :foo, args]
end
end
class A
end
p M.methods.sort
p M.instance_methods.sort
puts '--- 1: A.new.instance_eval{foo(1,2,3)} ---'
begin
A.new.instance_eval{foo(1,2,3)}
rescue => e
p e
end
puts '--- 2: M.pseudo_toplevel_eval{A.new.instance_eval{foo(1,2,3)}}
---'
begin
M.pseudo_toplevel_eval{A.new.instance_eval{foo(1,2,3)}}
rescue => e
p e
end
puts '--- 3:
M.pseudo_toplevel_eval{A.new.instance_eval{self.foo(1,2,3)}} ---'
begin
M.pseudo_toplevel_eval{A.new.instance_eval{self.foo(1,2,3)}}
rescue => e
p e
end
puts '--- 4: foo(1,2,3) ---'
begin
foo(1,2,3)
rescue => e
p e
end
puts '--- 5: M.pseudo_toplevel_eval{foo(1,2,3)} ---'
begin
M.pseudo_toplevel_eval{foo(1,2,3)}
rescue => e
p e
end
require 'tk'
puts '--- 6: TkButton.new{p foo(1,2,3)} ---'
begin
TkButton.new{p foo(1,2,3)}
rescue => e
p e
end
puts '--- 7: M.pseudo_toplevel_eval{TkButton.new{p foo(1,2,3)}} ---'
begin
M.pseudo_toplevel_eval{TkButton.new{p foo(1,2,3)}}
rescue => e
p e
end
begin
M.pseudo_toplevel_eval{
l = TkLabel.new.pack
cnt = 0
TkButton.new(:command=>proc{l.text = foo(cnt); cnt+=1}){p
foo(1,2,3)}.pack
}
rescue => e
p e
end
Tk.mainloop
Report post Edit Delete Reply with quote
Enable email notification | Enable multi-page view
This topic is locked and can not be replied to.