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