class PseudoObject::ModelExt::Definer::PseudoMethodList
Constants
- METHOD_TYPES
Public Class Methods
define_methods(cls)
click to toggle source
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 15 def define_methods(cls) instance = new(cls) instance.define_pseudo_methods instance.define_pseudized_methods end
new(cls)
click to toggle source
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 23 def initialize(cls) @class = cls end
Public Instance Methods
define_pseudized_methods()
click to toggle source
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 33 def define_pseudized_methods define_pseudized_method('instance_methods') end
define_pseudo_methods()
click to toggle source
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 27 def define_pseudo_methods METHOD_TYPES.each do |type| define_pseudo_method(type) end end
Private Instance Methods
define_pseudized_method(m)
click to toggle source
Define the class method of “pseudized_*” series
It returns an array including the names of methods overriding the model’s.
@m [String] method name of the method to list methods
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 48 def define_pseudized_method(m) @class.class_eval <<-EOT define_method('#{pseudized_method_name(m)}') do collection = ancestors[0..-2].inject([]) do |result, cls| result |= cls.#{m} end & pseudo_model.#{m} head_of_commons = collection.index(:instance_eval) collection[0...head_of_commons] end EOT end
define_pseudo_method(m)
click to toggle source
Define the class method of “pseudo_*” series
It returns an array including the names of methods defined in PseudoObject
.
@m [String] method name of the method to list methods
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 67 def define_pseudo_method(m) @class.class_eval <<-EOT define_method('#{pseudo_method_name(m)}') do ancestors[0..-2].inject([]) do |result, cls| result |= cls.#{m} end - pseudo_model.#{m} end EOT end
pseudized_method_name(method_name)
click to toggle source
-
-
-
Parts
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 80 def pseudized_method_name(method_name) 'pseudized_%s' % method_name end
pseudo_method_name(method_name)
click to toggle source
# File lib/pseudo_object/model/ext/definer/pseudo_method_list.rb, line 84 def pseudo_method_name(method_name) 'pseudo_%s' % method_name end