Skip to content

Commit

Permalink
reverted DSL
Browse files Browse the repository at this point in the history
  • Loading branch information
nakajima committed Jan 31, 2009
1 parent 39519c8 commit 37c2c7d
Show file tree
Hide file tree
Showing 13 changed files with 83 additions and 61 deletions.
5 changes: 0 additions & 5 deletions lib/core_ext/object.rb

This file was deleted.

16 changes: 4 additions & 12 deletions lib/feedzirra.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,17 @@

$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))

require 'sax-machine'
require 'activesupport'
require 'curb'

require 'core_ext/object'

require 'feedzirra/feed_utilities'
require 'feedzirra/feed_entry_utilities'
require 'feedzirra/feed'
require 'feedzirra/atom'
require 'feedzirra/atom_entry'
require 'feedzirra/atom_feed_burner'
require 'feedzirra/atom_feed_burner_entry'
require 'feedzirra/rdf'
require 'feedzirra/rdf_entry'
require 'feedzirra/rss'
require 'feedzirra/rss_entry'
require 'feedzirra/parser'

parsers = Dir[File.join(File.dirname(__FILE__), *%w[feedzirra parsers *])]
parsers.each { |lib| require lib }

# Feed parsers

module Feedzirra
VERSION = "0.0.1"
Expand Down
17 changes: 17 additions & 0 deletions lib/feedzirra/atom.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'sax-machine'
require 'feedzirra/atom_entry'

module Feedzirra
class Atom
include SAXMachine
include FeedUtilities
element :title
element :link, :as => :url, :value => :href, :with => {:type => "text/html"}
element :link, :as => :feed_url, :value => :href, :with => {:type => "application/atom+xml"}
elements :entry, :as => :entries, :class => AtomEntry

def self.able_to_parse?(xml)
xml =~ /Atom/
end
end
end
3 changes: 3 additions & 0 deletions lib/feedzirra/atom_entry.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
require 'sax-machine'
require 'feedzirra/feed_utilities'

module Feedzirra
class AtomEntry
include SAXMachine
Expand Down
17 changes: 17 additions & 0 deletions lib/feedzirra/atom_feed_burner.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'sax-machine'
require 'feedzirra/atom_feed_burner_entry'

module Feedzirra
class AtomFeedBurner
include SAXMachine
include FeedUtilities
element :title
element :link, :as => :url, :value => :href, :with => {:type => "text/html"}
element :link, :as => :feed_url, :value => :href, :with => {:type => "application/atom+xml"}
elements :entry, :as => :entries, :class => AtomFeedBurnerEntry

def self.able_to_parse?(xml)
(xml =~ /Atom/ && xml =~ /feedburner/) || false
end
end
end
7 changes: 6 additions & 1 deletion lib/feedzirra/feed.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
require 'feedzirra/atom'
require 'feedzirra/atom_feed_burner'
require 'curb'
require 'activesupport'

module Feedzirra
class NoParserAvailable < StandardError; end

Expand All @@ -22,7 +27,7 @@ def self.add_feed_class(klass)
end

def self.feed_classes
@feed_classes ||= []
@feed_classes ||= [RSS, RDF, AtomFeedBurner, Atom]
end

# can take a single url or an array of urls
Expand Down
21 changes: 0 additions & 21 deletions lib/feedzirra/parser.rb

This file was deleted.

6 changes: 0 additions & 6 deletions lib/feedzirra/parsers/atom.rb

This file was deleted.

6 changes: 0 additions & 6 deletions lib/feedzirra/parsers/atom_feed_burner.rb

This file was deleted.

5 changes: 0 additions & 5 deletions lib/feedzirra/parsers/rdf.rb

This file was deleted.

5 changes: 0 additions & 5 deletions lib/feedzirra/parsers/rss.rb

This file was deleted.

18 changes: 18 additions & 0 deletions lib/feedzirra/rdf.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require 'sax-machine'
require 'feedzirra/rdf_entry'

module Feedzirra
class RDF
include SAXMachine
include FeedUtilities
element :title
element :link, :as => :url
elements :item, :as => :entries, :class => RDFEntry

attr_accessor :feed_url

def self.able_to_parse?(xml)
xml =~ /rdf\:RDF/ || false
end
end
end
18 changes: 18 additions & 0 deletions lib/feedzirra/rss.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require 'sax-machine'
require 'feedzirra/rss_entry'

module Feedzirra
class RSS
include SAXMachine
include FeedUtilities
element :title
element :link, :as => :url
elements :item, :as => :entries, :class => RSSEntry

attr_accessor :feed_url

def self.able_to_parse?(xml)
xml =~ /rss version\=\"2\.0\"/
end
end
end

0 comments on commit 37c2c7d

Please sign in to comment.