From da4e1faf6f77732844a0fec4cbc9967be3156523 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 21 Feb 2011 16:17:30 -0800 Subject: serializable_hash(:only => [], :methods => [:foo]) should work --- activemodel/lib/active_model/serialization.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'activemodel/lib/active_model') diff --git a/activemodel/lib/active_model/serialization.rb b/activemodel/lib/active_model/serialization.rb index 4a174cb62a..78516608fd 100644 --- a/activemodel/lib/active_model/serialization.rb +++ b/activemodel/lib/active_model/serialization.rb @@ -69,14 +69,11 @@ module ActiveModel def serializable_hash(options = nil) options ||= {} - only = Array.wrap(options[:only]).map(&:to_s) - except = Array.wrap(options[:except]).map(&:to_s) - attribute_names = attributes.keys.sort - if only.any? - attribute_names &= only - elsif except.any? - attribute_names -= except + if only = options[:only] + attribute_names &= Array.wrap(only).map(&:to_s) + elsif except = options[:except] + attribute_names -= Array.wrap(except).map(&:to_s) end method_names = Array.wrap(options[:methods]).map { |n| n if respond_to?(n.to_s) }.compact -- cgit v1.2.3