class Klass
def self.class_method
:class_method
end
end
:class_method
class Klass
def (p self).class_method
:class_method
end
end
Klass
:class_method
class Klass
def Klass.class_method
:class_method
end
end
:class_method
class Klass
end
def Klass.class_method
:class_method
end
Klass.class_method
:class_method
def Klass
def instance_method
:instance_method
end
end
:Klass
class Klass
define_method :instance_method, -> {:instance_method}
end
:instance_method
object = Klass.new
object.instance_method
:instance_method
module IncludedModule
def included_module_method
:included_module_method
end
end
class Klass
include IncludedModule
define_method :included_module_method,
IncludedModule.instance_method(:included_module_method)
end
object = Klass.new
object.included_module_method
:included_module_method
module UnIncludedModule
def un_included_module_method
:un_included_module_method
end
end
class Klass
define_method :un_included_module_method, UnIncludedModule.instance_method(:un_included_module_method)
end
# Ruby 1.9 ではエラーになるけれど 2.0 以降は MethodTransplanting のおかげでエラーにはならない。
:un_included_module_method