mirror of https://github.com/rails/rails
parent
fa1645a2b7
commit
e3d1585c8f
|
@ -176,6 +176,7 @@ module ActionView
|
|||
# * <tt>:updated</tt>: Time of update. Defaults to the updated_at attribute on the record if one such exists.
|
||||
# * <tt>:url</tt>: The URL for this entry. Defaults to the polymorphic_url for the record.
|
||||
# * <tt>:id</tt>: The ID for this entry. Defaults to "tag:#{@view.request.host},#{@feed_options[:schema_date]}:#{record.class}/#{record.id}"
|
||||
# * <tt>:type</tt>: The TYPE for this entry. Defaults to "text/html".
|
||||
def entry(record, options = {})
|
||||
@xml.entry do
|
||||
@xml.id(options[:id] || "tag:#{@view.request.host},#{@feed_options[:schema_date]}:#{record.class}/#{record.id}")
|
||||
|
@ -188,7 +189,9 @@ module ActionView
|
|||
@xml.updated((options[:updated] || record.updated_at).xmlschema)
|
||||
end
|
||||
|
||||
@xml.link(:rel => 'alternate', :type => 'text/html', :href => options[:url] || @view.polymorphic_url(record))
|
||||
type = options.fetch(:type) { 'text/html' }
|
||||
|
||||
@xml.link(:rel => 'alternate', :type => type, :href => options[:url] || @view.polymorphic_url(record))
|
||||
|
||||
yield AtomBuilder.new(@xml)
|
||||
end
|
||||
|
|
|
@ -45,6 +45,23 @@ class ScrollsController < ActionController::Base
|
|||
end
|
||||
end
|
||||
EOT
|
||||
FEEDS["entry_type_options"] = <<-EOT
|
||||
atom_feed(:schema_date => '2008') do |feed|
|
||||
feed.title("My great blog!")
|
||||
feed.updated((@scrolls.first.created_at))
|
||||
|
||||
@scrolls.each do |scroll|
|
||||
feed.entry(scroll, :type => 'text/xml') do |entry|
|
||||
entry.title(scroll.title)
|
||||
entry.content(scroll.body, :type => 'html')
|
||||
|
||||
entry.author do |author|
|
||||
author.name("DHH")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
EOT
|
||||
FEEDS["xml_block"] = <<-EOT
|
||||
atom_feed do |feed|
|
||||
feed.title("My great blog!")
|
||||
|
@ -306,6 +323,20 @@ class AtomFeedTest < ActionController::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_feed_entry_type_option_default_to_text_html
|
||||
with_restful_routing(:scrolls) do
|
||||
get :index, :id => 'defaults'
|
||||
assert_select "entry link[rel=alternate][type=text/html]"
|
||||
end
|
||||
end
|
||||
|
||||
def test_feed_entry_type_option_specified
|
||||
with_restful_routing(:scrolls) do
|
||||
get :index, :id => 'entry_type_options'
|
||||
assert_select "entry link[rel=alternate][type=text/xml]"
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def with_restful_routing(resources)
|
||||
with_routing do |set|
|
||||
|
|
Loading…
Reference in New Issue