feedalizer 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.txt CHANGED
@@ -1,11 +1,7 @@
1
1
  Noteworthy changes:
2
2
 
3
- -- 2008-03-27
4
- Improved examples/sydsvenskan-nemi.rb.
5
-
6
- -- 2007-07-09
7
- Feedalizer now uses RSS 2.0 instead of RSS 1.0.
8
-
9
- -- 2006-08-23
10
- Added optional limit parameter to scrape_items.
11
- Thanks to Thanh Vinh Tang for the hint that it is needed.
3
+ 2006-08-23: Added optional limit parameter to scrape_items. (Thanks to Thanh Vinh Tang for the hint that it is needed.)
4
+ 2006-10-11: Release of version 0.1.0.
5
+ 2007-07-09: Feedalizer now uses RSS 2.0 instead of RSS 1.0.
6
+ 2008-03-27: Improved examples/sydsvenskan-nemi.rb.
7
+ 2008-03-27: Release of version 0.1.1.
data/bin/feedalizer CHANGED
File without changes
data/examples/pjvault.rb CHANGED
@@ -9,7 +9,6 @@ require "time"
9
9
 
10
10
  feedalize("http://pjvault.com/news.html") do
11
11
  feed.title = "Pearl Jam Vault"
12
- feed.about = "..."
13
12
  feed.description = "Pearl Jam News and Reviews"
14
13
 
15
14
  scrape_items("li") do |rss_item, html_element|
@@ -5,11 +5,8 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
5
5
  require "feedalizer"
6
6
  require "time"
7
7
 
8
- url = "http://sydsvenskan.se/serier/nemi/index.jsp?context=serie"
9
-
10
- feedalize(url) do
8
+ feedalize("http://sydsvenskan.se/serier/nemi/index.jsp?context=serie") do
11
9
  feed.title = "Nemi"
12
- feed.about = "..."
13
10
  feed.description = "Daily Nemi strip scraped from Sydsvenskan"
14
11
 
15
12
  scrape_items("option") do |rss_item, html_element|
@@ -25,5 +22,7 @@ feedalize(url) do
25
22
  rss_item.guid.content = link
26
23
  end
27
24
 
28
- output!(ARGV[0] ? File.open(ARGV[0], "w") : STDOUT)
25
+ if __FILE__ == $0
26
+ output!(ARGV[0] ? File.open(ARGV[0], "w") : STDOUT)
27
+ end
29
28
  end
data/lib/feedalizer.rb CHANGED
@@ -3,20 +3,20 @@ require "open-uri"
3
3
  require "hpricot"
4
4
 
5
5
  class Feedalizer
6
- VERSION = "0.1.1"
6
+ VERSION = "0.1.2"
7
+ IDENTIFIER = "Feedalizer/#{VERSION} (http://termos.vemod.net/feedalizer)"
7
8
 
8
- attr_reader :source
9
+ attr_reader :page
9
10
 
10
11
  def initialize(url, &block)
11
- @source = grab_page(url)
12
+ @page = grab_page(url)
12
13
  @rss = RSS::Maker::RSS20.new
13
14
 
14
- feed.generator = "Feedalizer/#{VERSION} (http://termos.vemod.net/feedalizer)"
15
+ feed.generator = IDENTIFIER
15
16
  feed.link = url
17
+ feed.description = "Scraped from #{url}"
16
18
 
17
19
  instance_eval(&block) if block
18
-
19
- debug! if $DEBUG
20
20
  end
21
21
 
22
22
  def feed
@@ -24,7 +24,7 @@ class Feedalizer
24
24
  end
25
25
 
26
26
  def scrape_items(hpricot_query, limit = 15)
27
- elements = @source.search(hpricot_query)
27
+ elements = @page.search(hpricot_query)
28
28
 
29
29
  elements.first(limit).each do |html_element|
30
30
  rss_item = @rss.items.new_item
@@ -36,11 +36,12 @@ class Feedalizer
36
36
  open(url) { |io| Hpricot(io) }
37
37
  end
38
38
 
39
- # For backwards-compatibility
40
- alias_method :parse_source, :grab_page
41
-
42
39
  def output
43
- @rss.to_rss.to_s unless $DEBUG
40
+ if @rss.respond_to?(:to_feed) # Ruby >= 1.8.7
41
+ @rss.to_feed.to_s
42
+ else
43
+ @rss.to_rss.to_s
44
+ end
44
45
  end
45
46
 
46
47
  def output!(target = STDOUT)
@@ -49,10 +50,13 @@ class Feedalizer
49
50
 
50
51
  def debug!
51
52
  @rss.items.each do |item|
52
- STDERR.puts [ item.title, item.date, item.link ].join("\n")
53
- STDERR.puts
53
+ STDERR.puts [ item.title, item.date, item.link ].join("; ")
54
54
  end
55
55
  end
56
+
57
+ # Backwards-compatibility
58
+ alias_method :parse_source, :grab_page
59
+ alias_method :source, :page
56
60
  end
57
61
 
58
62
  # A handy wrapper for Feedalizer.new :-)
@@ -14,7 +14,7 @@ class TestFeedalizer < Test::Unit::TestCase
14
14
 
15
15
  def test_construction
16
16
  assert_kind_of RSS::Maker::RSS20::Channel, @feedalizer.feed
17
- assert_kind_of Hpricot::Doc, @feedalizer.source
17
+ assert_kind_of Hpricot::Doc, @feedalizer.page
18
18
  end
19
19
 
20
20
  def test_block
@@ -23,12 +23,13 @@ class TestFeedalizer < Test::Unit::TestCase
23
23
  assert_kind_of Feedalizer, inside
24
24
  end
25
25
 
26
- def test_default_feed_link
26
+ def test_defaults
27
27
  assert_equal TEST_FILE, @feedalizer.feed.link
28
+ assert_equal "Scraped from #{TEST_FILE}", @feedalizer.feed.description
28
29
  end
29
30
 
30
- def test_source
31
- assert_equal "Test", @feedalizer.source.search("html/head/title").text
31
+ def test_page
32
+ assert_equal "Test", @feedalizer.page.search("html/head/title").text
32
33
  end
33
34
 
34
35
  def test_scrape_items
@@ -76,4 +77,9 @@ class TestFeedalizer < Test::Unit::TestCase
76
77
  assert output.include?("<rss")
77
78
  assert output.size > 320
78
79
  end
80
+
81
+ def test_backwards_compatibility
82
+ assert @feedalizer.respond_to?(:page)
83
+ assert @feedalizer.respond_to?(:parse_source)
84
+ end
79
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feedalizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoffer Sawicki
@@ -9,11 +9,12 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-27 00:00:00 +01:00
12
+ date: 2009-11-23 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hpricot
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -23,14 +24,18 @@ dependencies:
23
24
  version:
24
25
  - !ruby/object:Gem::Dependency
25
26
  name: hoe
27
+ type: :development
26
28
  version_requirement:
27
29
  version_requirements: !ruby/object:Gem::Requirement
28
30
  requirements:
29
31
  - - ">="
30
32
  - !ruby/object:Gem::Version
31
- version: 1.5.1
33
+ version: 1.8.0
32
34
  version:
33
- description: Feedalizer is a *small* Ruby library that glues together Hpricot with the standard RSS library in a way that makes it easy to transform web pages into RSS feeds. If you ask me, it makes it *too* easy.
35
+ description: |-
36
+ Feedalizer is a *small* Ruby library that glues together Hpricot with the
37
+ standard RSS library in a way that makes it easy to transform web pages into
38
+ RSS feeds. If you ask me, it makes it *too* easy.
34
39
  email:
35
40
  - christoffer.sawicki@gmail.com
36
41
  executables:
@@ -59,6 +64,8 @@ files:
59
64
  - TODO.txt
60
65
  has_rdoc: true
61
66
  homepage: http://termos.vemod.net/feedalizer
67
+ licenses: []
68
+
62
69
  post_install_message:
63
70
  rdoc_options:
64
71
  - --main
@@ -80,9 +87,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
87
  requirements: []
81
88
 
82
89
  rubyforge_project: feedalizer
83
- rubygems_version: 1.0.1
90
+ rubygems_version: 1.3.5
84
91
  signing_key:
85
- specification_version: 2
92
+ specification_version: 3
86
93
  summary: Transforms web pages into RSS feeds
87
94
  test_files: []
88
95