summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--golf_prelude.rb4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5454d68999..4e91400398 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Dec 30 23:19:06 2007 WATANABE Hirofumi <eban@ruby-lang.org>
+
+ * golf_prelude.rb (@@golf_hash): for performance improvement.
+
Sun Dec 30 22:44:50 2007 Tadayoshi Funaba <tadf@dotrb.org>
* lib/date.rb (_valid_time?): I'm not sure to recommend such an
diff --git a/golf_prelude.rb b/golf_prelude.rb
index eea08fef74..c0ae37fb17 100644
--- a/golf_prelude.rb
+++ b/golf_prelude.rb
@@ -1,9 +1,9 @@
SCRIPT_LINES__={}
class Object
+ @@golf_hash = {}
def method_missing m, *a, &b
- r = /^#{m}/
- t = (methods + private_methods).sort.find{|e|r=~e}
+ t = @@golf_hash[[m,self.class]] ||= (methods + private_methods).sort.find{|e|/^#{m}/=~e}
t ? __send__(t, *a, &b) : super
end