diff --git a/lib/feed_me/feed_parser.rb b/lib/feed_me/feed_parser.rb index 739ad12..1e07082 100644 --- a/lib/feed_me/feed_parser.rb +++ b/lib/feed_me/feed_parser.rb @@ -69,8 +69,6 @@ class Rss2FeedParser < FeedParser has_many :entries, :path => 'item', :use => :Rss2ItemParser - def author - Rss2PersonParser.new(xml, "managingEditor") - end + has_one :author, :path => 'managingEditor', :use => :Rss2PersonParser end end diff --git a/lib/feed_me/item_parser.rb b/lib/feed_me/item_parser.rb index fc78024..0640caf 100644 --- a/lib/feed_me/item_parser.rb +++ b/lib/feed_me/item_parser.rb @@ -30,8 +30,6 @@ class Rss2ItemParser < ItemParser property :content, :path => :description property :author, :path => :special - def author - Rss2PersonParser.new(xml, "author") - end + has_one :author, :use => :Rss2PersonParser end end diff --git a/lib/feed_me/person_parser.rb b/lib/feed_me/person_parser.rb index a61dd75..2826ab1 100644 --- a/lib/feed_me/person_parser.rb +++ b/lib/feed_me/person_parser.rb @@ -21,10 +21,10 @@ class AtomPersonParser < PersonParser class Rss2PersonParser attr_reader :name, :email, :uri - def initialize(xml, selector) - item = xml.at("/#{selector}") - if(item) - @email, @name = item.inner_html.split(/\s+/, 2) + def initialize(xml, feed) + @feed = feed + if(xml) + @email, @name = xml.inner_html.split(/\s+/, 2) @name = name.match( /\((.*?)\)/ ).to_a[1] if @name # strip parentheses end end