module MPatch::Include::Module
Public Instance Methods
alias_instance_methods_from(class_name, *sym_names)
click to toggle source
# File lib/mpatch/module.rb, line 83 def alias_instance_methods_from class_name, *sym_names method_names= sym_names.map{|e|e.to_s} method_names= class_name.instance_methods if method_names.empty? method_names.each do |sym_name| self.__send__ :define_method, sym_name, class_name.instance_method(sym_name) end end
alias_singleton_methods_from(class_name, *sym_names)
click to toggle source
# File lib/mpatch/module.rb, line 64 def alias_singleton_methods_from class_name, *sym_names method_names= sym_names.map{|e|e.to_s} method_names= class_name.singleton_methods if method_names.empty? method_names.each do |sym_name| self.define_singleton_method(sym_name) { |*args| if class_name.method(sym_name).parameters.empty? class_name.method(sym_name).call else class_name.method(sym_name).call *args end } end end
convert_to_hash()
click to toggle source
convert class instance instance variables into a hash object
# File lib/mpatch/module.rb, line 99 def convert_to_hash tmp_hash= {} self.class_variables.each do|var| tmp_hash[var.to_s.delete("@@")] = self.class_variable_get(var) end return tmp_hash end
Also aliased as: conv2hash
hello()
click to toggle source
# File lib/mpatch/module.rb, line 94 def hello "hello" end
inherited_by(*args)
click to toggle source
# File lib/mpatch/module.rb, line 25 def inherited_by *args if args.empty? args.push(::Class) args.push(::Module) end return_array= [] args.each do |type_name| ::ObjectSpace.each_object(type_name) do |candidate| begin if !return_array.include?(candidate) && candidate != self #> can't make subclass of Class so == is enough case true when self.class == ::Module return_array.push candidate if candidate.mixin_ancestors.include?(self) when self.class == ::Class return_array.push candidate if candidate < self end end rescue ::ArgumentError, ::NoMethodError end end end return return_array end
mixin_ancestors(include_ancestors=true)
click to toggle source
# File lib/mpatch/module.rb, line 20 def mixin_ancestors(include_ancestors=true) ancestors.take_while {|a| include_ancestors || a != superclass }. select {|ancestor| ancestor.instance_of?( ::Module ) } end
subclasses()
click to toggle source
return the module objects direct sub modules
# File lib/mpatch/module.rb, line 13 def subclasses constants.collect {|const_name| const_get(const_name)}.select {|const| const.class == ::Class} end
Also aliased as: classes
submodules()
click to toggle source
return the module objects direct sub modules
# File lib/mpatch/module.rb, line 8 def submodules constants.collect {|const_name| const_get(const_name)}.select {|const| const.class == ::Module} end
Also aliased as: modules