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.
- data/MIT-LICENSE +21 -0
- data/README +79 -0
- data/Rakefile +83 -0
- data/bin/rssclient +206 -0
- data/install.rb +84 -0
- data/lib/rss-client.rb +109 -0
- data/lib/rss-client/http-access2.rb +2023 -0
- data/lib/rss-client/http-access2/cookie.rb +541 -0
- data/lib/rss-client/http-access2/http.rb +602 -0
- data/rake_tasks/annotations.rake +84 -0
- data/spec/helper.rb +10 -0
- data/spec/spec_http_access2.rb +13 -0
- data/spec/spec_rss_client.rb +22 -0
- metadata +88 -0
@@ -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
|
data/spec/helper.rb
ADDED
@@ -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
|