| Class | RSS::Maker::Atom::Entry::Items::Item |
| In: |
lib/rss/maker/entry.rb
|
| Parent: | ItemBase |
| Guid | = | Feed::Items::Item::Guid |
| Enclosure | = | Feed::Items::Item::Enclosure |
| Source | = | Feed::Items::Item::Source |
| Categories | = | Feed::Items::Item::Categories |
| Authors | = | Feed::Items::Item::Authors |
| Contributors | = | Feed::Items::Item::Contributors |
| Links | = | Feed::Items::Item::Links |
| Rights | = | Feed::Items::Item::Rights |
| Description | = | Feed::Items::Item::Description |
| Title | = | Feed::Items::Item::Title |
| Content | = | Feed::Items::Item::Content |
# File lib/rss/maker/entry.rb, line 67
67: def to_feed(entry)
68: set_default_values do
69: setup_values(entry)
70: entry.dc_dates.clear
71: setup_other_elements(entry)
72: unless have_required_values?
73: raise NotSetError.new("maker.item", not_set_required_variables)
74: end
75: end
76: end
# File lib/rss/maker/entry.rb, line 102
102: def _set_default_values(&block)
103: keep = {
104: :authors => authors.to_a.dup,
105: :contributors => contributors.to_a.dup,
106: :categories => categories.to_a.dup,
107: :id => id,
108: :links => links.to_a.dup,
109: :rights => @rights,
110: :title => @title,
111: :updated => updated,
112: }
113: authors.replace(@maker.channel.authors) if keep[:authors].empty?
114: if keep[:contributors].empty?
115: contributors.replace(@maker.channel.contributors)
116: end
117: if keep[:categories].empty?
118: categories.replace(@maker.channel.categories)
119: end
120: self.id ||= link || @maker.channel.id
121: links.replace(@maker.channel.links) if keep[:links].empty?
122: unless keep[:rights].variable_is_set?
123: @maker.channel.rights {|r| @rights = r}
124: end
125: unless keep[:title].variable_is_set?
126: @maker.channel.title {|t| @title = t}
127: end
128: self.updated ||= @maker.channel.updated
129: super(&block)
130: ensure
131: authors.replace(keep[:authors])
132: contributors.replace(keep[:contributors])
133: categories.replace(keep[:categories])
134: links.replace(keep[:links])
135: self.id = keep[:id]
136: @rights = keep[:rights]
137: @title = keep[:title]
138: self.updated = keep[:prev_updated]
139: end
# File lib/rss/maker/entry.rb, line 91
91: def not_set_required_variables
92: set_default_values do
93: vars = super
94: if authors.all? {|author| !author.have_required_values?}
95: vars << "author"
96: end
97: vars << "title" unless title {|t| t.have_required_values?}
98: vars
99: end
100: end
# File lib/rss/maker/entry.rb, line 87
87: def variable_is_set?
88: super or !authors.empty?
89: end