def memoize(methods, cache = nil)
      cache ||= Hoodie::Stash.new
      methods.each do |name|
        uncached_name = "#{name}_uncached".to_sym
        singleton_class.class_eval do
          alias_method uncached_name, name
          define_method(name) do |*a, &b|
            cache.cache(name) { send uncached_name, *a, &b }
          end
        end
      end
    end
def memoize(methods, cache = nil)
      cache ||= Hoodie::Stash.new
      methods.each do |name|
        uncached_name = "#{name}_uncached".to_sym
        singleton_class.class_eval do
          alias_method uncached_name, name
          define_method(name) do |*a, &b|
            cache.cache(name) { send uncached_name, *a, &b }
          end
        end
      end
    end
Create a new memoized method. To use, extend class with Memoizable,
 then, in initialize, call memoize

 @return [undefined]