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)