added :content_type, :disposition and :status options

This commit is contained in:
Jeena Paradies 2010-06-20 21:34:54 +02:00
parent f60d7c5882
commit a6c510a509

View file

@ -8,17 +8,19 @@ module ActionController
if plist if plist
unless filename = options.delete(:plist_filename) options[:content_type] ||= Mime::PLIST
options[:disposition] ||= "inline"
if options[:plist_filename].blank?
if plist.is_a? Array if plist.is_a? Array
filename = plist.first.class.name.pluralize + ".plist" options[:plist_filename] = plist.first.class.name.pluralize + ".plist"
elsif plist.respond_to?(:id) elsif plist.respond_to?(:id)
filename = "#{plist.class.name}-#{plist.id}.plist" options[:plist_filename] = "#{plist.class.name}-#{plist.id}.plist"
else else
filename = "#{plist.class.name}-data.plist" options[:plist_filename] = "#{plist.class.name}-data.plist"
end end
end end
unless options.nil?
if plist.is_a? Array if plist.is_a? Array
plist.each do |entry| plist.each do |entry|
if entry.respond_to? :plist_item_options= if entry.respond_to? :plist_item_options=
@ -26,20 +28,22 @@ module ActionController
end end
end end
end end
end
data = plist
unless plist.is_a?(CFPropertyList::List)
plist_options = { plist_options = {
:converter_method => :to_plist_item, :converter_method => :to_plist_item,
:convert_unknown_to_string => true :convert_unknown_to_string => true
} }
data = plist.to_plist(plist_options)
data = plist.is_a?(CFPropertyList::List) ? plist : plist.to_plist(plist_options) end
send_data( send_data(
data, data,
:type => Mime::PLIST, :type => options[:content_type],
:filename => filename, :filename => options[:plist_filename],
:disposition => 'inline' :disposition => options[:disposition],
:status => options[:status]
) )
else else