class Module
Public Instance Methods
class_descendants()
click to toggle source
# File lib/omega/descendants.rb, line 6 def class_descendants ObjectSpace.each_object(Class).select {|c| c < self} end
cmemoize(n, *m)
click to toggle source
# File lib/omega/memoize.rb, line 19 def cmemoize n, *m singleton_class.memoize n, *m end
descendants()
click to toggle source
# File lib/omega/descendants.rb, line 2 def descendants ObjectSpace.each_object(Module).select {|m| m < self} end
memoize(n, *arr)
click to toggle source
# File lib/omega/memoize.rb, line 2 def memoize n, *arr ([n] + arr).each do |m| meth = instance_method(m) hash = Hash.new define_method m do |*args| if hash.include? args hash[args] else meth = meth.bind(self) if meth.is_a? UnboundMethod v = hash[args] = meth.call(*args) v.freeze v end end end end