lib/memoist.rb in memoist-0.16.0 vs lib/memoist.rb in memoist-0.16.1
- old
+ new
@@ -1,9 +1,8 @@
# frozen_string_literal: true
require 'memoist/version'
-require 'memoist/core_ext/singleton_class'
module Memoist
def self.extended(extender)
Memoist.memoist_eval(extender) do
unless singleton_class.method_defined?(:memoized_methods)
@@ -37,12 +36,14 @@
'_unmemoized'.freeze
end
end
def self.escape_punctuation(string)
- string = string.is_a?(String) ? string.dup : string.to_s
+ string = string.to_s
return string unless string.end_with?('?'.freeze, '!'.freeze)
+
+ string = string.dup if string.frozen?
# A String can't end in both ? and !
if string.sub!(/\?\Z/, '_query'.freeze)
else
string.sub!(/!\Z/, '_bang'.freeze)