lib/restful/serializers/params_serializer.rb in purzelrakete-restful-0.2.1 vs lib/restful/serializers/params_serializer.rb in purzelrakete-restful-0.2.2
- old
+ new
@@ -10,31 +10,37 @@
serializer_name :params
def serialize(resource, options = {})
params = {}
-
resource.values.each do |value|
if value.type == :collection # serialize the stuffs
resources = value.value
+ next if resources.empty?
name = resources.first.name.pluralize
array = []
resources.each do |resource|
array << serialize(resource)
end
- params["#{value.name.to_sym}_attributes".to_sym] = array
+ params["#{paramify_keys(value.name)}_attributes".to_sym] = array
elsif value.type == :link
- params[value.name] = Restful::Rails.tools.dereference(value.value)
+ params[paramify_keys(value.name).to_sym] = Restful::Rails.tools.dereference(value.value)
elsif value.type == :resource
- params["#{value.name.to_sym}_attributes".to_sym] = serialize(value)
+ params["#{paramify_keys(value.name)}_attributes".to_sym] = serialize(value)
else # plain ole
- params[value.name] = value.value
+ params[paramify_keys(value.name).to_sym] = value.value # no need to format dates etc - just pass objects through.
end
end
params
end
- end
+
+ private
+
+ def paramify_keys(original_key)
+ original_key.to_s.tr("-", "_")
+ end
+ end
end
end