私は2つのファイルを持っています.1つは module ですToMix
:
module ToMix
@module_var = "modulevar"
def self.mix_function
puts "mix_function SELF: #{@module_var}"
end
def mix_function
puts "mix_function: #{@module_var}"
end
class MixClass
attr_accessor :mixclassvar
def initialize(value)
@mixclassvar = value
end
end
end
TestInclude
他のファイルのクラスにミックスインしたい:
class TestInclude
require "ToMixFile"
include ToMix
end
@module_var
インスタンス変数とメソッドself.mix_function
がmix_function
定義されていない理由を誰かが説明できますか? そして、それらをどのように定義しますか?
t2 = TestInclude.new()
t2.mix_function # => error undefined (exected call to mix_function)
t2.module_var = "test set module_var" # => error undefined
TestInclude.mix_function # => error undefined (expected call to self.mix_function)
TestInclude.method_defined? :mix_function # => false