123456789_123456789_123456789_123456789_123456789_

Class: RSS::Maker::Atom::Entry::Items::Item

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, ItemBase
Instance Chain:
self, ItemBase
Inherits: ItemBase
  • Object
Defined in: lib/rss/maker/entry.rb

Constant Summary

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#variable_is_set?Boolean (readonly, private)

[ GitHub ]

  
# File 'lib/rss/maker/entry.rb', line 88

def variable_is_set?
  super or !authors.empty?
end

Instance Method Details

#_set_default_values (private)

[ GitHub ]

  
# File 'lib/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 (private)

[ GitHub ]

  
# File 'lib/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 (private)

[ GitHub ]

  
# File 'lib/rss/maker/entry.rb', line 80

def required_variable_names
  %w(id updated)
end

#to_feed(entry)

[ GitHub ]

  
# File 'lib/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

#variables (private)

[ GitHub ]

  
# File 'lib/rss/maker/entry.rb', line 84

def variables
  super + ["updated"]
end