aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/serialization.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2010-09-22 12:07:48 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2010-09-22 18:08:03 -0300
commitdc2f26ca38c2dbef2674da3839bee56388f39405 (patch)
tree0a417a9904170a2d9f991a8cd4a5642f8bf74661 /activemodel/lib/active_model/serialization.rb
parent0876f39088e7f42f91948ad93659608e316ab9a4 (diff)
downloadrails-dc2f26ca38c2dbef2674da3839bee56388f39405.tar.gz
rails-dc2f26ca38c2dbef2674da3839bee56388f39405.tar.bz2
rails-dc2f26ca38c2dbef2674da3839bee56388f39405.zip
Perf: refactor methods using inject when not need in activemodel.
Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
Diffstat (limited to 'activemodel/lib/active_model/serialization.rb')
-rw-r--r--activemodel/lib/active_model/serialization.rb11
1 files changed, 2 insertions, 9 deletions
diff --git a/activemodel/lib/active_model/serialization.rb b/activemodel/lib/active_model/serialization.rb
index 8f90ef64ba..37739b98a1 100644
--- a/activemodel/lib/active_model/serialization.rb
+++ b/activemodel/lib/active_model/serialization.rb
@@ -79,15 +79,8 @@ module ActiveModel
attribute_names -= except
end
- method_names = Array.wrap(options[:methods]).inject([]) do |methods, name|
- methods << name if respond_to?(name.to_s)
- methods
- end
-
- (attribute_names + method_names).inject({}) { |hash, name|
- hash[name] = send(name)
- hash
- }
+ method_names = Array.wrap(options[:methods]).map { |n| n if respond_to?(n.to_s) }.compact
+ Hash[(attribute_names + method_names).map { |n| [n, send(n)] }]
end
end
end