rss-client 2.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
1
+ class SourceAnnotationExtractor
2
+ class Annotation < Struct.new(:line, :tag, :text)
3
+ def to_s(options={})
4
+ s = "[%3d] " % line
5
+ s << "[#{tag}] " if options[:tag]
6
+ s << text
7
+ end
8
+ end
9
+
10
+ def self.enumerate(tag, options={})
11
+ extractor = new(tag)
12
+ extractor.display(extractor.find, options)
13
+ end
14
+
15
+ attr_reader :tag
16
+
17
+ def initialize(tag)
18
+ @tag = tag
19
+ end
20
+
21
+ def find(dirs=%w(app lib test))
22
+ dirs.inject({}) { |h, dir| h.update(find_in(dir)) }
23
+ end
24
+
25
+ def find_in(dir)
26
+ results = {}
27
+
28
+ Dir.glob("#{dir}/*") do |item|
29
+ next if File.basename(item)[0] == ?.
30
+
31
+ if File.directory?(item)
32
+ results.update(find_in(item))
33
+ elsif item =~ /\.(builder|(r(?:b|xml|js)))$/
34
+ results.update(extract_annotations_from(item, /#\s*(#{tag}):?\s*(.*)$/))
35
+ elsif item =~ /\.(rhtml|erb)$/
36
+ results.update(extract_annotations_from(item, /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/))
37
+ end
38
+ end
39
+
40
+ results
41
+ end
42
+
43
+ def extract_annotations_from(file, pattern)
44
+ lineno = 0
45
+ result = File.readlines(file).inject([]) do |list, line|
46
+ lineno += 1
47
+ next list unless line =~ pattern
48
+ list << Annotation.new(lineno, $1, $2)
49
+ end
50
+ result.empty? ? {} : { file => result }
51
+ end
52
+
53
+ def display(results, options={})
54
+ results.keys.sort.each do |file|
55
+ puts "#{file}:"
56
+ results[file].each do |note|
57
+ puts " * #{note.to_s(options)}"
58
+ end
59
+ puts
60
+ end
61
+ end
62
+ end
63
+
64
+ desc "Enumerate all annotations"
65
+ task :notes do
66
+ SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO", :tag => true
67
+ end
68
+
69
+ namespace :notes do
70
+ desc "Enumerate all OPTIMIZE annotations"
71
+ task :optimize do
72
+ SourceAnnotationExtractor.enumerate "OPTIMIZE"
73
+ end
74
+
75
+ desc "Enumerate all FIXME annotations"
76
+ task :fixme do
77
+ SourceAnnotationExtractor.enumerate "FIXME"
78
+ end
79
+
80
+ desc "Enumerate all TODO annotations"
81
+ task :todo do
82
+ SourceAnnotationExtractor.enumerate "TODO"
83
+ end
84
+ end
@@ -0,0 +1,10 @@
1
+ begin
2
+ require 'bacon'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'bacon'
6
+ end
7
+
8
+ rssclient_dir = File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
9
+ $LOAD_PATH.unshift(rssclient_dir)
10
+ require 'rss-client'
@@ -0,0 +1,13 @@
1
+ require 'spec/helper'
2
+
3
+ describe 'http-access2' do
4
+
5
+ before do
6
+ @client = HTTPAccess2::Client.new
7
+ end
8
+
9
+ it 'should have an object identity' do
10
+ @client.should.not.be.same_as HTTPAccess2::Client.new
11
+ end
12
+
13
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec/helper'
2
+
3
+ class RSSFeed
4
+ include RSSClient
5
+ end
6
+
7
+ describe 'rss-client' do
8
+
9
+ before do
10
+ @feed = RSSFeed.new
11
+ end
12
+
13
+ it 'should have an object identity' do
14
+ @feed.should.not.be.same_as RSSFeed.new
15
+ end
16
+
17
+ it 'should have useful defaults' do
18
+ @feed.rssc_error.should == nil
19
+ @feed.rssc_raw.should == nil
20
+ end
21
+
22
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rss-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.9
5
+ platform: ruby
6
+ authors:
7
+ - Stoyan Zhekov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-01-18 00:00:00 +09:00
13
+ default_executable: rssclient
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: feed-normalizer
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.4.0
23
+ version:
24
+ description:
25
+ email: stoyan@gmail.com
26
+ executables:
27
+ - rssclient
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - lib
32
+ - README
33
+ - MIT-LICENSE
34
+ files:
35
+ - lib
36
+ - README
37
+ - MIT-LICENSE
38
+ - install.rb
39
+ - Rakefile
40
+ - bin/rssclient
41
+ - lib/rss-client.rb
42
+ - lib/rss-client
43
+ - lib/rss-client/http-access2.rb
44
+ - lib/rss-client/http-access2
45
+ - lib/rss-client/http-access2/cookie.rb
46
+ - lib/rss-client/http-access2/http.rb
47
+ - rake_tasks/annotations.rake
48
+ - spec/helper.rb
49
+ - spec/spec_http_access2.rb
50
+ - spec/spec_rss_client.rb
51
+ has_rdoc: true
52
+ homepage: http://www.assembla.com/wiki/show/rss-client
53
+ post_install_message:
54
+ rdoc_options:
55
+ - --line-numbers
56
+ - --inline-source
57
+ - --all
58
+ - --quiet
59
+ - --title
60
+ - "RSSClient: Fetching and parsing RSS feeds with easy"
61
+ - --main
62
+ - README
63
+ - --exclude
64
+ - "\"^(_darcs|.hg|.svn|spec|bin|pkg)/\""
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ requirements: []
80
+
81
+ rubyforge_project: rss-client
82
+ rubygems_version: 1.0.1
83
+ signing_key:
84
+ specification_version: 2
85
+ summary: Fetching and parsing RSS feeds with easy
86
+ test_files:
87
+ - spec/spec_http_access2.rb
88
+ - spec/spec_rss_client.rb