[#41449] slim ruby for embedding — Hiroshi Takagi <gollum@...>
たかぎです。
[#41455] オブジェクト同士の演算などを実装するには? — Hideo Konami <konami@...>
小波です.
From: Hideo Konami <konami@kyoto-wu.ac.jp>
小波です.
いわおかです。
小波です.
原です。
いわおかです。
なかだです。
[#41489] Matrixの継承について — argento@...
はじめまして。吉田と申します。
まつもと ゆきひろです
るびきち様、まつもと様
けいじゅ@いしつかです.
原です。
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
原です。
けいじゅ@いしつかです.
原です。
けいじゅ@いしつかです.
原です。
[#41503] 数を減らしてくループ — Takeshi Horinouchi <horinout@...>
堀之内と申します。
From: Takeshi Horinouchi <horinout@kurasc.kyoto-u.ac.jp>
堀之内です。
From: Takeshi Horinouchi <horinout@kurasc.kyoto-u.ac.jp>
こんにちは。ゴトウと申します。
[#41543] カスタム版Rubyの作成 — rubikitch <rubikitch@...>
るびきちです。
[#41552] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41554] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41561] Re: Windowsにおける共有フォルダーでのDir.globは一覧を返さない? — 岩崎 弘孝 <IH000667@...>
岩崎です。
[#41570] 別クラスのメソッドを横取り — 石井 大海 <banzaida@...>
お久しぶりで、konnです。
[#41596] 名前空間の衝突を回避する方法 — Kentaro KAWAMOTO <kentaro.kawamoto@...>
川本と申します。
From: Kentaro KAWAMOTO <kentaro.kawamoto@gmail.com>
[#41602] エクセルファイルを読み込む際の問題(質問) — "Hisashi Yahata" <yahatah@...>
質問で恐縮ですが、ご教示ください。
conundrumと申します。
babieさん、conundrumさん、早速の回答を有り難うございました。
conundrumです。
[#41624] MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
永井@知能.九工大です.
天野竜太郎と申します。
永井@知能.九工大です.
8.4.10のtcl.hやtk.hは、
永井@知能.九工大です.
> Tcl/TkAqua もこの Macintosh のルールに従うのであれば
永井@知能.九工大です.
永井@知能.九工大です.
天野です。
永井@知能.九工大です.
永井@知能.九工大です.
完全に私の勘違いです。
永井@知能.九工大です.
ruby-list:41651の
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
>> 13,画像を見るための簡単なユーザーインターフェイス
永井@知能.九工大です.
[ruby-list:41600] Re: 名前空間の衝突を回避する方法
From: Kentaro KAWAMOTO <kentaro.kawamoto@gmail.com>
Subject: [ruby-list:41598] Re: 名前空間の衝突を回避する方法
Date: Sun, 27 Nov 2005 03:02:07 +0900
るびきちです。
> 逆に、requireされるクラス・モジュールを別のモジュールの中に
> 入れてしまうことはできないのでしょうか?
それなら岩月さんの言うように class_eval (module_eval) が手っ取り早いです。
class_evalはRubyの特権ともいえるものなので、うまく使うとかなり強力です。
> 下のコードを試したところダメだった(= requireされるFooモジュールが
> グローバルな名前空間(?)で定義されてしまったみたい)のですが・・・。
>
> ---
> module M
> require 'Foo/bar'
> end
>
> class Foo
> include M::Foo
> end
> ---
そういうものです。
> > 定数 Foo に "Foo" という名前のModule オブジェクトが代入さ
> > れます。また、別な定数にModuleオブジェクトを代入することでaliasされます。
> などの方法でできそうですが、
> これはなんとなく非標準・非推奨なテクニックなように思えます。
どうなんでしょう。
Rubyはすべてがオブジェクト、当然モジュールもオブジェクト。
オブジェクトは代入できる。
だから代入したら別名として扱える。
という感じで納得いきませんか?
> もうちょっとスマートな、というか標準的な方法は無いでしょうか?
ごめんなさい、これ以上思い付きません。
自分が思い付く限りでは class_eval が一番スマートな気がします。
# Kernel#loadの第二引数をtrueにすると無名モジュール内で実行されますね。
ここで発想の転換ですが、「汚い小細工」の部分をライブラリに追い出してしまえば、
メインのコードはきれいになると思います。
便利な添付ライブラリだって、中身はかなり小細工がしてあるものです。
僕のお気に入りのforwardable.rbも中身はmodule_evalやらinstance_evalやら…。
### rename-module.rb
def rename_module(from,to,mod=Object)
mod.module_eval do
const_set to, const_get(from)
remove_const from
end
end
### ここまで
require 'rename-module'
module Foo
def foo
1
end
end
rename_module :Foo, :Bar
class Foo
include Bar
end
p Foo.new.foo # => 1
class_evalの例も
%%% load-in-module.rb
class Module
def load_in_module(script)
module_eval(File.read(script))
end
end
%%%
%%% foo.rb
class Foo
end
%%%
%%% main.rb
require 'load-in-module'
module Bar
load_in_module "foo.rb"
end
p Bar::Foo.new
%%%
るびきち☆
http://www.rubyist.net/~rubikitch/