class RSS::Maker::Atom::Entry::Items::Item

Constants

Authors
Categories
Content
Contributors
Description
Enclosure
Guid
Rights
Source
Title

Public Instance Methods

to_feed(entry) click to toggle source
# File rss/maker/entry.rb, line 68
def to_feed(entry)
  set_default_values do
    setup_values(entry)
    entry.dc_dates.clear
    setup_other_elements(entry)
    unless have_required_values?
      raise NotSetError.new("maker.item", not_set_required_variables)
    end
  end
end

Private Instance Methods

_set_default_values() click to toggle source
Calls superclass method
# File rss/maker/entry.rb, line 103
def _set_default_values
  keep = {
    :authors => authors.to_a.dup,
    :contributors => contributors.to_a.dup,
    :categories => categories.to_a.dup,
    :id => id,
    :links => links.to_a.dup,
    :rights => @rights,
    :title => @title,
    :updated => updated,
  }
  authors.replace(@maker.channel.authors) if keep[:authors].empty?
  if keep[:contributors].empty?
    contributors.replace(@maker.channel.contributors)
  end
  if keep[:categories].empty?
    categories.replace(@maker.channel.categories)
  end
  self.id ||= link || @maker.channel.id
  links.replace(@maker.channel.links) if keep[:links].empty?
  unless keep[:rights].variable_is_set?
    @maker.channel.rights {|r| @rights = r}
  end
  unless keep[:title].variable_is_set?
    @maker.channel.title {|t| @title = t}
  end
  self.updated ||= @maker.channel.updated
  super
ensure
  authors.replace(keep[:authors])
  contributors.replace(keep[:contributors])
  categories.replace(keep[:categories])
  links.replace(keep[:links])
  self.id = keep[:id]
  @rights = keep[:rights]
  @title = keep[:title]
  self.updated = keep[:updated]
end
not_set_required_variables() click to toggle source
Calls superclass method
# File rss/maker/entry.rb, line 92
def not_set_required_variables
  set_default_values do
    vars = super
    if authors.all? {|author| !author.have_required_values?}
      vars << "author"
    end
    vars << "title" unless title {|t| t.have_required_values?}
    vars
  end
end
required_variable_names() click to toggle source
# File rss/maker/entry.rb, line 80
def required_variable_names
  %w(id updated)
end
variable_is_set?() click to toggle source
Calls superclass method
# File rss/maker/entry.rb, line 88
def variable_is_set?
  super or !authors.empty?
end
variables() click to toggle source
Calls superclass method
# File rss/maker/entry.rb, line 84
def variables
  super + ["updated"]
end