2011-06-17 22 views
-1

モジュールをクラス構造に実装したいと考えています。モジュールをRubyでクラスに実装する方法は?

私はシンプルなロジック(多分、あなたが最良のもパフォーマンスのために、あなたのアイデアが出てくる)でそれを行う:

module Tsito 
    class Hello 
    def say_hello(name) 
     puts "Module > Class: Hello #{name}" 
    end 
    end 
end 
tsio = Tsito::Hello.new 
tsio.say_hello("Sara") 

しかし、私はそれでした。あなたのアイデアは何ですか?

class Hello 
    module Tsito 
    def say_hello(name) 
     puts "Class > Module: Hello #{name}" 
    end 
    end 
end 
tsio = Hello.new 
#tsio.say_hello("Sara") // Gives an error 
+2

ここで達成しようとしていることはありますか? –

答えて

2

まず、モジュールはパフォーマンスとは関係ありません。その主な用途は、コード構成(ネームスペース)とミックスインです。

モジュールの下にクラスを置くことは、私が以前に行ったことですが、逆も試みました。しかし、それは完全に有効です。

2番目の例では、モジュールをクラス内に配置し、予想されるRubyにモジュールをその親に含めるだけです。しかし、それはできません。手動で行う必要があります。ただ、追加の行の末尾に含まれます:今すぐ

Hello.new.say_hello "hola" 

を試してみてください

class Hello 
    module Tsito 
    def say_hello(name) 
     puts "Class > Module: Hello #{name}" 
    end 
    end 
    include Tsito 
end 

これは、あなたが期待どおりに動作します。

モジュールを使用する場合はいつでもincludeを使用する必要があります。

+0

まず、モジュールライブラリを実装しようとします。次に、ベースコードからインクルードします。それは大丈夫です。しかし、私はどのように私は別のモジュールのlibsなどを書くことなく行うことができます興味があった。 –