class ActionView::Helpers::AtomFeedHelper::AtomFeedBuilder - actionpack-3.2.22 Documentation

# class ActionView::Helpers::AtomFeedHelper::AtomFeedBuilder

### Public Class Methods

new(xml, view, feed_options = {}) click to toggle source

    # File lib/action_view/helpers/atom_feed_helper.rb, line 162
    def initialize(xml, view, feed_options = {})
      @xml, @view, @feed_options = xml, view, feed_options
    end

### Public Instance Methods

entry(record, options = {}) { |atom_builder| ... } click to toggle source

Creates an entry tag for a specific record and prefills the id using class and id.

Options:

- `:published`: Time first published. Defaults to the created_at attribute on the record if one such exists.

- `:updated`: Time of update. Defaults to the updated_at attribute on the record if one such exists.

- `:url`: The URL for this entry. Defaults to the polymorphic_url for the record.

- `:id`: The ID for this entry. Defaults to "tag:#{@view.request.host},#{@feed_options}:#{record.class}/#{record.id}"

    # File lib/action_view/helpers/atom_feed_helper.rb, line 179
    def entry(record, options = {})
      @xml.entry do
        @xml.id(options[:id] || "tag:#{@view.request.host},#{@feed_options[:schema_date]}:#{record.class}/#{record.id}")

        if options[:published] || (record.respond_to?(:created_at) && record.created_at)
          @xml.published((options[:published] || record.created_at).xmlschema)
        end

        if options[:updated] || (record.respond_to?(:updated_at) && record.updated_at)
          @xml.updated((options[:updated] || record.updated_at).xmlschema)
        end

        @xml.link(:rel => 'alternate', :type => 'text/html', :href => options[:url] || @view.polymorphic_url(record))

        yield AtomBuilder.new(@xml)
      end
    end

updated(date_or_time = nil) click to toggle source

Accepts a Date or Time object and inserts it in the proper format. If nil is passed, current time in UTC is used.

    # File lib/action_view/helpers/atom_feed_helper.rb, line 167
    def updated(date_or_time = nil)
      @xml.updated((date_or_time || Time.now.utc).xmlschema)
    end