diff --git a/lib/memoist.rb b/lib/memoist.rb index ffbcab6..3d48b7e 100644 --- a/lib/memoist.rb +++ b/lib/memoist.rb @@ -96,7 +96,7 @@ def memoize(*method_names) include InstanceMethods if method_defined?(unmemoized_method) - raise "Already memoized #{method_name}" + raise AlreadyMemoizedError.new("Already memoized #{method_name}") end alias_method unmemoized_method, method_name @@ -194,4 +194,6 @@ def #{method_name}(*args) end end end + + class AlreadyMemoizedError < RuntimeError; end end diff --git a/memoist.gemspec b/memoist.gemspec index ce42aac..17d925a 100644 --- a/memoist.gemspec +++ b/memoist.gemspec @@ -9,7 +9,7 @@ Gem::Specification.new do |s| s.date = "2013-07-19" s.email = ["josh@joshpeek.com", "tarmo@itech.ee", "jeremy@bitsweat.net", "libc@mac.com", "fxn@hashref.com", "niels@herimedia.co", "wycats@gmail.com", "jeem@hughesorama.com", "john.pignata@gmail.com", "42@dmathieu.com", "jose.valim@gmail.com"] s.extra_rdoc_files = ["README.md"] - s.files = ["README.md", "test/benchmark/memoist_benchmark.rb", "test/memoist_test.rb", "test/test_helper.rb", "lib/memoist/core_ext/singleton_class.rb", "lib/memoist.rb"] + s.files = ["README.md", "test/memoist_test.rb", "test/test_helper.rb", "lib/memoist/core_ext/singleton_class.rb", "lib/memoist.rb"] s.homepage = "https://github.com/matthewrudy/memoist" s.licenses = ["MIT"] s.rdoc_options = ["--main", "README.md"] diff --git a/test/memoist_test.rb b/test/memoist_test.rb index ccad6a2..2e9af04 100644 --- a/test/memoist_test.rb +++ b/test/memoist_test.rb @@ -289,15 +289,15 @@ def test_object_memoized_module_methods end def test_double_memoization - assert_raise(RuntimeError) { Person.memoize :name } + assert_raise(Memoist::AlreadyMemoizedError) { Person.memoize :name } person = Person.new person.extend Memoist - assert_raise(RuntimeError) { person.memoize :name } + assert_raise(Memoist::AlreadyMemoizedError) { person.memoize :name } company = Company.new company.extend Memoist company.memoize :name - assert_raise(RuntimeError) { company.memoize :name } + assert_raise(Memoist::AlreadyMemoizedError) { company.memoize :name } end def test_double_memoization_with_identifier