From 262c52d1e57344d7c732cdc8150edcd152d11fcb Mon Sep 17 00:00:00 2001
From: Kouhei Sutou <kou@clear-code.com>
Date: Sat, 12 Oct 2013 19:58:38 +0900
Subject: [PATCH] Remove memoization
Because it may return a wrong value when memoization hash collision is
occurred.
If performance problem is occurred, we should write benchmark program
and them improve performance.
---
lib/gettext/class_info.rb | 6 ------
lib/gettext/locale_path.rb | 7 -------
test/test_locale_path.rb | 4 ----
3 files changed, 17 deletions(-)
diff --git a/lib/gettext/class_info.rb b/lib/gettext/class_info.rb
index 46f0665..9f99cc6 100644
--- a/lib/gettext/class_info.rb
+++ b/lib/gettext/class_info.rb
@@ -1,15 +1,11 @@
# -*- coding: utf-8 -*-
-require 'locale/util/memoizable'
-
module GetText
# For normalize/finding the related classes/modules.
# This is used for realizing the scope of TextDomain.
# (see: http://www.yotabanana.com/hiki/ruby-gettext-scope.html)
module ClassInfo
extend self
- include Locale::Util::Memoizable
-
# normalize the class name
# klass should kind of the class, not object.
def normalize_class(klass)
@@ -23,7 +19,6 @@ def normalize_class(klass)
def root_ancestors # :nodoc:
Object.ancestors
end
- memoize :root_ancestors
# Internal method for related_classes.
def related_classes_internal(klass, all_classes = [], analyzed_classes = [] )
@@ -64,6 +59,5 @@ def related_classes(klass, all_classes = [])
end
ret
end
- memoize :related_classes
end
end
diff --git a/lib/gettext/locale_path.rb b/lib/gettext/locale_path.rb
index a0445c3..a6c1706 100644
--- a/lib/gettext/locale_path.rb
+++ b/lib/gettext/locale_path.rb
@@ -15,8 +15,6 @@
module GetText
# Treats locale-path for mo-files.
class LocalePath
- include Locale::Util::Memoizable
-
# The default locale paths.
CONFIG_PREFIX = RbConfig::CONFIG['prefix'].gsub(/\/local/, "")
DEFAULT_RULES = [
@@ -29,8 +27,6 @@ class LocalePath
].uniq
class << self
- include Locale::Util::Memoizable
-
# Add default locale path. Usually you should use GetText.add_default_locale_path instead.
# * path: a new locale path. (e.g.) "/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
# ('locale' => "ja_JP", 'name' => "textdomain")
@@ -66,7 +62,6 @@ def default_path_rules
Dir.glob(path % {:lang => "*", :name => "*"}).size > 0}.uniq
default_path_rules
end
- memoize_dup :default_path_rules
end
attr_reader :locale_paths, :supported_locales
@@ -114,7 +109,5 @@ def current_path(lang)
end
nil
end
- memoize :current_path
-
end
end
diff --git a/test/test_locale_path.rb b/test/test_locale_path.rb
index 084ffbf..d0556d4 100644
--- a/test/test_locale_path.rb
+++ b/test/test_locale_path.rb
@@ -25,7 +25,6 @@
class TestLocalePath < Test::Unit::TestCase
def setup
GetText.locale = "ja_JP.eucJP"
- GetText::LocalePath.clear
end
def teardown
@@ -78,12 +77,10 @@ def test_env_GETTEXT_PATH
path1 = File.join(topdir, "locale")
path2 = File.join(topdir, "cgi", "locale")
- GetText::LocalePath.memoize_clear
ENV["GETTEXT_PATH"] = path1
default_path_rules = GetText::LocalePath.default_path_rules
assert_match(Regexp.compile(path1), default_path_rules[0])
- GetText::LocalePath.memoize_clear
ENV["GETTEXT_PATH"] = "#{path1},#{path2}"
default_path_rules = GetText::LocalePath.default_path_rules
assert_match(Regexp.compile(path1), default_path_rules[0])
@@ -92,7 +89,6 @@ def test_env_GETTEXT_PATH
class TestDefaultPathRules < self
def test_load_path_untached
- GetText::LocalePath.memoize_clear
$LOAD_PATH.unshift("./lib")
GetText::LocalePath.default_path_rules
assert_equal($LOAD_PATH[0], "./lib")
--
1.8.4