diff options
Diffstat (limited to 'lib/rss/maker/trackback.rb')
-rw-r--r-- | lib/rss/maker/trackback.rb | 85 |
1 files changed, 23 insertions, 62 deletions
diff --git a/lib/rss/maker/trackback.rb b/lib/rss/maker/trackback.rb index 32254a040c..09a2fceb2d 100644 --- a/lib/rss/maker/trackback.rb +++ b/lib/rss/maker/trackback.rb @@ -11,9 +11,9 @@ module RSS name = "#{RSS::TRACKBACK_PREFIX}_ping" klass.add_need_initialize_variable(name) klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) + klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) attr_accessor :#{name} - def setup_#{name}(rss, current) + def setup_#{name}(feed, current) if #{name} and current.respond_to?(:#{name}=) current.#{name} = #{name} end @@ -23,14 +23,14 @@ module RSS name = "#{RSS::TRACKBACK_PREFIX}_abouts" klass.add_need_initialize_variable(name, "make_#{name}") klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) + klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) attr_accessor :#{name} def make_#{name} self.class::TrackBackAbouts.new(self) end - def setup_#{name}(rss, current) - @#{name}.to_rss(rss, current) + def setup_#{name}(feed, current) + @#{name}.to_feed(feed, current) end EOC end @@ -38,20 +38,8 @@ module RSS class TrackBackAboutsBase include Base - def_array_element("abouts") - - def new_about - about = self.class::TrackBackAbout.new(@maker) - @abouts << about - about - end + def_array_element("about", nil, "self.class::TrackBackAbout") - def to_rss(rss, current) - @abouts.each do |about| - about.to_rss(rss, current) - end - end - class TrackBackAboutBase include Base @@ -62,65 +50,38 @@ module RSS alias_method(:resource=, :value=) alias_method(:content, :value) alias_method(:content=, :value=) - + def have_required_values? @value end - - end - end - end - - class ItemsBase - class ItemBase; include TrackBackModel; end - end - class RSS10 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - class TrackBackAbout < TrackBackAboutBase - def to_rss(rss, current) - if resource - about = ::RSS::TrackBackModel10::TrackBackAbout.new(resource) - current.trackback_abouts << about - end - end + def to_feed(feed, current) + if current.respond_to?(:trackback_abouts) and have_required_values? + about = current.class::TrackBackAbout.new + setup_values(about) + setup_other_elements(about) + current.trackback_abouts << about end end end end end - class RSS09 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - def to_rss(*args) - end - class TrackBackAbout < TrackBackAboutBase - end - end - end - end + class ItemsBase + class ItemBase; include TrackBackModel; end end - - class RSS20 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - class TrackBackAbout < TrackBackAboutBase - def to_rss(rss, current) - if content - about = ::RSS::TrackBackModel20::TrackBackAbout.new(content) - current.trackback_abouts << about - end + + makers.each do |maker| + maker.module_eval(<<-EOC, __FILE__, __LINE__ + 1) + class Items + class Item + class TrackBackAbouts < TrackBackAboutsBase + class TrackBackAbout < TrackBackAboutBase end end end end - end + EOC end - end end |