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
classes()
Alias for: subclasses
conv2hash()
Alias for: convert_to_hash
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
modules()
Alias for: submodules
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