lib/ruby_ext/more.rb in ruby_ext-0.5.8 vs lib/ruby_ext/more.rb in ruby_ext-0.5.9

- old
+ new

@@ -1,12 +1,33 @@ require 'ruby_ext/core' -module RubyExt; end +module RubyExt + %w(Callbacks DeclarativeCache Observable OpenConstructor Tuple).each do |const| + autoload const, "ruby_ext/more/#{const.underscore}" + end +end -%w( - declarative_cache - observable - open_constructor - tuple - callbacks - miscellaneous -).each{|f| require "ruby_ext/more/#{f}"} +# Declarative cache. +Module.class_eval do + def cache_method *methods + ::RubyExt::DeclarativeCache.cache_method self, *methods + end + + def cache_method_with_params *methods + ::RubyExt::DeclarativeCache.cache_method_with_params self, *methods + end + + def clear_cache obj + obj.instance_variables.each do |iv| + obj.send :remove_instance_variable, iv if iv =~ /_cache$/ or iv =~ /_cache_check$/ + end + end +end + +# Printing with multiple arguments. +Kernel.class_eval do + alias_method :old_p, :p + def p *args + puts args.collect{|a| a.inspect}.join(' ') + return *args + end +end \ No newline at end of file