diff --git a/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter.rb b/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter.rb index e4912299..7fad3141 100644 --- a/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter.rb +++ b/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter.rb @@ -82,7 +82,7 @@ module Shoulda end def set - object.public_send("#{attribute_name}=".to_sym, value_written) + object.public_send("#{attribute_name}=", value_written) after_set_callback.call @result_of_checking = successful_check @@ -135,7 +135,7 @@ module Shoulda end def value_read - @_value_read ||= object.public_send(attribute_name.to_sym) + @_value_read ||= String.new(object.public_send(attribute_name)) end def attribute_changed_value? diff --git a/lib/shoulda/matchers/util.rb b/lib/shoulda/matchers/util.rb index 6e2e714f..30740dd2 100644 --- a/lib/shoulda/matchers/util.rb +++ b/lib/shoulda/matchers/util.rb @@ -48,6 +48,8 @@ module Shoulda inspect_hash(value) when Range inspect_range(value) + when String + String.new(value) else "‹#{value.inspect}›" end