From 285cba022ce37977f977376a20ca866197ef33bd Mon Sep 17 00:00:00 2001 From: shotat Date: Wed, 14 Jun 2017 09:13:26 +0900 Subject: enhance active model assignment --- activemodel/lib/active_model/attribute_assignment.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'activemodel/lib') diff --git a/activemodel/lib/active_model/attribute_assignment.rb b/activemodel/lib/active_model/attribute_assignment.rb index 930e89d611..a0a6de8dd7 100644 --- a/activemodel/lib/active_model/attribute_assignment.rb +++ b/activemodel/lib/active_model/attribute_assignment.rb @@ -42,8 +42,9 @@ module ActiveModel end def _assign_attribute(k, v) - if respond_to?("#{k}=") - public_send("#{k}=", v) + setter = "#{k}=" + if respond_to?(setter) + public_send(setter, v) else raise UnknownAttributeError.new(self, k) end -- cgit v1.2.3 From 2396f79fec607657b61eef329a98c4debcaa88c7 Mon Sep 17 00:00:00 2001 From: shotat Date: Wed, 14 Jun 2017 17:49:54 +0900 Subject: freeze string --- activemodel/lib/active_model/attribute_assignment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activemodel/lib') diff --git a/activemodel/lib/active_model/attribute_assignment.rb b/activemodel/lib/active_model/attribute_assignment.rb index a0a6de8dd7..f521e74f32 100644 --- a/activemodel/lib/active_model/attribute_assignment.rb +++ b/activemodel/lib/active_model/attribute_assignment.rb @@ -42,7 +42,7 @@ module ActiveModel end def _assign_attribute(k, v) - setter = "#{k}=" + setter = "#{k}=".freeze if respond_to?(setter) public_send(setter, v) else -- cgit v1.2.3 From b2999d631fb6b61c62b975e4cfe86727b42c1a70 Mon Sep 17 00:00:00 2001 From: shotat Date: Thu, 15 Jun 2017 11:45:15 +0900 Subject: add frozen string literal comment --- activemodel/lib/active_model/attribute_assignment.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'activemodel/lib') diff --git a/activemodel/lib/active_model/attribute_assignment.rb b/activemodel/lib/active_model/attribute_assignment.rb index f521e74f32..aa931119ff 100644 --- a/activemodel/lib/active_model/attribute_assignment.rb +++ b/activemodel/lib/active_model/attribute_assignment.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "active_support/core_ext/hash/keys" module ActiveModel @@ -42,7 +44,7 @@ module ActiveModel end def _assign_attribute(k, v) - setter = "#{k}=".freeze + setter = :"#{k}=" if respond_to?(setter) public_send(setter, v) else -- cgit v1.2.3