livedoor-feeddiscover 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,9 @@
1
- == 0.1.0 / 2007-06-16
1
+ == 1.1.0 / 2007-06-23
2
+
3
+ * set default User-Agent header as follow.
4
+
5
+ livedoor-feeddiscover/x.y.z (+http://feeddiscoverapi.rubyforge.org)
6
+
7
+ == 1.0.0 / 2007-06-16
2
8
 
3
9
  * Initial release
@@ -21,3 +21,4 @@ spec/livedoor/api/feed_discover/feed_spec.rb
21
21
  spec/livedoor/api/feed_discover/version_spec.rb
22
22
  spec/spec.opts
23
23
  spec/spec_helper.rb
24
+ test/spec_runner.rb
data/README.txt CHANGED
@@ -19,7 +19,7 @@ So, livedoor-feeddiscover do not access the target URL.
19
19
  # find feed of matz blog.
20
20
  matzblog = Livedoor::API::FeedDiscover.find(
21
21
  "http://www.rubyist.net/~matz/",
22
- "User-Agent" => "livedoor-feeddiscover/#{Livedoor::API::FeedDiscover::VERSION::STRING}")
22
+ "User-Agent" => "YourCoolApp/1.0 (+http://your.cool.app)")
23
23
  if matzblog.feeds?
24
24
  puts matzblog.feed.source # specified argument
25
25
  puts matzblog.feed.link # blog link
@@ -52,11 +52,16 @@ So, livedoor-feeddiscover do not access the target URL.
52
52
  end
53
53
 
54
54
 
55
+ === DEFAULT USERAGENT
56
+
57
+ livedoor-feeddiscover/x.y.z (+http://feeddiscoverapi.rubyforge.org)
58
+
59
+
55
60
  === BENCHMARK
56
61
 
57
62
  vs feed-discover[http://rubyforge.org/projects/feed-discover/].
58
63
 
59
- > ruby examples\benchmark.rb
64
+ > ruby examples/benchmark.rb
60
65
  Start auto-discover for 4 blogs ------------------------------------
61
66
  http://www.rubyist.net/~matz/
62
67
  http://rubyforge.org/
data/Rakefile CHANGED
@@ -75,7 +75,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
75
75
  p.url = HOMEPATH
76
76
 
77
77
  p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
78
- p.test_globs = ["spec/**/*_spec.rb"]
78
+ p.test_globs = ["test/spec_runner.rb"]
79
79
  p.clean_globs |= CLEAN #An array of file patterns to delete on clean.
80
80
 
81
81
  p.summary = p.paragraphs_of('README.txt', 2..2)[0]
@@ -87,15 +87,8 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
87
87
  p.need_tar = true
88
88
  end
89
89
 
90
- CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n")
91
90
  desc 'Release the website and new gem version'
92
- task :deploy => [:check_manifest!, :check_version, :publish_docs, :release] do
93
- puts "Remember to create SVN tag:"
94
- puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
95
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/#{VERS} "
96
- puts "Suggested comment:"
97
- puts "Tagging release #{CHANGES}"
98
- end
91
+ task :deploy => [:check_manifest!, :check_version, :publish_docs, :release]
99
92
 
100
93
  task :check_manifest! => [:check_manifest] do
101
94
  unless $?.success?
@@ -114,13 +107,22 @@ task :check_version do
114
107
  puts "Please update your version.rb to match the release version, currently #{VERS}"
115
108
  exit
116
109
  end
110
+ histver = File.read("History.txt")[/^== (\d+\.\d+\.\d+)/, 1]
111
+ unless ENV['VERSION'] == histver
112
+ puts "Please update your History.txt to match the release version, currently #{histver}"
113
+ exit
114
+ end
117
115
  end
118
116
 
117
+ # remove :test task defined by Hoe.
118
+ remove_tasks :test, :test_deps, :default
119
+
119
120
  desc "Run the specs under spec/models"
120
121
  Spec::Rake::SpecTask.new do |t|
121
122
  t.spec_opts = ['--options', "spec/spec.opts"]
122
123
  t.spec_files = FileList['spec/**/*_spec.rb']
123
124
  end
125
+ task :test => [:spec]
124
126
 
125
127
  desc "Default task is to run specs"
126
128
  task :default => :spec
@@ -131,7 +133,7 @@ task :default => :spec
131
133
 
132
134
  desc 'Uninstall the gem package'
133
135
  task_for_windows :uninstall_gem do
134
- sh "gem.bat uninstall #{GEM_NAME}"
136
+ sh "gem.bat uninstall #{ENV['GEMOPTS']} #{GEM_NAME}"
135
137
  end
136
138
 
137
139
 
@@ -140,7 +142,7 @@ end
140
142
  #
141
143
 
142
144
  task_for_windows :install_gem do
143
- sh "gem.bat install pkg/*.gem"
145
+ sh "gem.bat install #{ENV['GEMOPTS']} pkg/*.gem"
144
146
  end
145
147
 
146
148
  task_for_windows :ridocs do
@@ -158,9 +160,8 @@ task :docs do
158
160
  end
159
161
 
160
162
  task_for_windows :publish_docs do
161
- config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
162
163
  with_temporary_rename("doc", "html") {
163
- Rake::RubyForgePublisher.new(RUBYFORGE_PROJECT, config["username"]).upload
164
+ Rake::RubyForgePublisher.new(RUBYFORGE_PROJECT, @rubyforge_username).upload
164
165
  }
165
166
  end
166
167
 
@@ -195,8 +196,5 @@ override_task :post_news do
195
196
  puts "Posted to rubyforge `#{subject}'."
196
197
  rm_f NEWS_FILE
197
198
  end
198
- task :clean do
199
- rm_f NEWS_FILE
200
- end
201
199
 
202
200
  # vim: syntax=Ruby
@@ -36,10 +36,13 @@ def main
36
36
  exit 1
37
37
  end
38
38
 
39
- unless feedlist.feeds?
40
- exit 2
39
+ nofeed = ARGV - feedlist.map{|e| e.source }
40
+ nofeed.each do |e|
41
+ $stderr.puts "feed not found: #{e}"
41
42
  end
42
43
 
44
+ exit 2 unless feedlist.feeds?
45
+
43
46
  with_output_stream(output) do |w|
44
47
  w.puts feedlist.opml
45
48
  end
@@ -18,9 +18,13 @@ module Livedoor::API::FeedDiscover
18
18
  class Client
19
19
 
20
20
  BASE_URI = URI("http://rpc.reader.livedoor.com/feed/discover").freeze
21
+ DEFAULT_USERAGENT = "livedoor-feeddiscover/#{Livedoor::API::FeedDiscover::VERSION::STRING} (+http://feeddiscoverapi.rubyforge.org)"
21
22
 
22
23
  def initialize(header = nil)
23
- @http_header = (header || {}).dup
24
+ @http_header = {
25
+ "User-Agent" => DEFAULT_USERAGENT,
26
+ }
27
+ @http_header.update(header) if header
24
28
  end
25
29
 
26
30
  def http_header
@@ -3,7 +3,7 @@ module Livedoor
3
3
  module FeedDiscover
4
4
  module VERSION
5
5
  MAJOR = 1
6
- MINOR = 0
6
+ MINOR = 1
7
7
  TINY = 0
8
8
 
9
9
  STRING = [MAJOR, MINOR, TINY].join('.')
@@ -5,6 +5,48 @@ describe Livedoor::API::FeedDiscover::Client do |*arg|
5
5
  @client = Livedoor::API::FeedDiscover::Client.new
6
6
  end
7
7
 
8
+ it "#initialize take http header" do
9
+ client = Livedoor::API::FeedDiscover::Client.new(
10
+ "User-Agent" => "foo/1.0",
11
+ "X-FooBar" => "foobarbaz"
12
+ )
13
+ client.http_header.should be_an_instance_of(Hash)
14
+ client.http_header.keys.length.should eql(2)
15
+
16
+ client.http_header.should be_has_key("User-Agent")
17
+ client.http_header["User-Agent"].should eql("foo/1.0")
18
+
19
+ client.http_header.should be_has_key("X-FooBar")
20
+ client.http_header["X-FooBar"].should eql("foobarbaz")
21
+ end
22
+
23
+ it "#initialize can take Hash" do
24
+ client = Livedoor::API::FeedDiscover::Client.new({
25
+ "User-Agent" => "foo/1.0",
26
+ "X-FooBar" => "foobarbaz",
27
+ });
28
+ client.http_header.should be_an_instance_of(Hash)
29
+ client.http_header.keys.length.should eql(2)
30
+
31
+ client.http_header.should be_has_key("User-Agent")
32
+ client.http_header["User-Agent"].should eql("foo/1.0")
33
+
34
+ client.http_header.should be_has_key("X-FooBar")
35
+ client.http_header["X-FooBar"].should eql("foobarbaz")
36
+ end
37
+
38
+ it "should set DEFAULT_USERAGENT to http header" do
39
+ client = Livedoor::API::FeedDiscover::Client.new
40
+ client.http_header.should be_an_instance_of(Hash)
41
+ client.http_header.keys.length.should eql(1)
42
+
43
+ client.http_header.should be_has_key("User-Agent")
44
+ client.http_header["User-Agent"].should eql(client.class::DEFAULT_USERAGENT)
45
+
46
+ client = Livedoor::API::FeedDiscover::Client.new(nil)
47
+ client.http_header["User-Agent"].should eql(client.class::DEFAULT_USERAGENT)
48
+ end
49
+
8
50
  it "#find should find feed from specified URL" do
9
51
  feedlist = @client.find("http://rubyforge.org/")
10
52
  feedlist.should be_an_instance_of(Livedoor::API::FeedDiscover::FeedList)
@@ -1,28 +1,33 @@
1
1
  require 'rubygems'
2
2
  require 'spec'
3
3
 
4
- $LOAD_PATH << File.join(File.dirname(__FILE__), "../lib")
5
- require "livedoor/api/feed_discover"
4
+ under_gem = Gem.path.any?{|path| /\A#{Regexp.quote(path)}/i =~ Dir.pwd }
5
+ if under_gem
6
+ require "livedoor/api/feed_discover"
7
+ else
8
+ $LOAD_PATH << File.join(File.dirname(__FILE__), "../lib")
9
+ require "livedoor/api/feed_discover"
6
10
 
11
+ require "open-uri"
12
+ require "tempfile"
13
+ require "digest"
14
+ require "fileutils"
7
15
 
8
- require "open-uri"
9
- require "tempfile"
10
- require "digest"
11
-
12
- # local cache for test.
13
- class URI::HTTP
14
- def open(*rest, &block)
15
- cachedir = File.join(File.dirname(__FILE__), ".cache")
16
- cache = File.join(cachedir, Digest::MD5.hexdigest(self.to_s))
17
- Dir.mkdir(cachedir) unless File.exist?(cachedir)
18
- unless File.exist?(cache)
19
- puts "fetch #{self}"
20
- File.open(cache, "wb") do |w|
21
- OpenURI.open_uri(self, *rest) do |r|
22
- w.write r.read
16
+ # local cache for test.
17
+ class URI::HTTP
18
+ def open(*rest, &block)
19
+ cachedir = File.join(File.dirname(__FILE__), ".cache")
20
+ cache = File.join(cachedir, Digest::MD5.hexdigest(self.to_s))
21
+ FileUtils.mkdir_p(cachedir)
22
+ unless File.exist?(cache)
23
+ puts "fetch #{self}"
24
+ File.open(cache, "wb") do |w|
25
+ OpenURI.open_uri(self, *rest) do |r|
26
+ w.write r.read
27
+ end
23
28
  end
24
29
  end
30
+ File.open(cache, "rb", &block)
25
31
  end
26
- File.open(cache, "rb", &block)
27
32
  end
28
33
  end
@@ -0,0 +1,26 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), '../spec/spec_helper.rb')
3
+
4
+ class SpecRunner < Test::Unit::TestCase
5
+
6
+ def with_save_behaviour_runner
7
+ old_behaviour_runner = defined?($behaviour_runner) ? $behaviour_runner : nil
8
+ begin
9
+ yield
10
+ ensure
11
+ $behaviour_runner = old_behaviour_runner if old_behaviour_runner
12
+ end
13
+ end
14
+
15
+ def test_spec
16
+ argv = Dir.glob(File.join(File.dirname(__FILE__), '../spec/**/*_spec.rb'))
17
+ failures = with_save_behaviour_runner {
18
+ $behaviour_runner = Spec::Runner::OptionParser.new.create_behaviour_runner(argv, $stdout, $stderr, true)
19
+ $behaviour_runner.run(argv, false)
20
+ }
21
+ unless failures.zero?
22
+ fail "#{failures} failure(s)."
23
+ end
24
+ end
25
+
26
+ end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: livedoor-feeddiscover
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
7
- date: 2007-06-17 00:00:00 +09:00
6
+ version: 1.1.0
7
+ date: 2007-06-24 00:00:00 +09:00
8
8
  summary: livedoor-feeddiscover performs feed autodiscovery using the livedoor Feed Discover API.
9
9
  require_paths:
10
10
  - lib
@@ -52,11 +52,9 @@ files:
52
52
  - spec/livedoor/api/feed_discover/version_spec.rb
53
53
  - spec/spec.opts
54
54
  - spec/spec_helper.rb
55
+ - test/spec_runner.rb
55
56
  test_files:
56
- - spec/livedoor/api/feed_discover/client_spec.rb
57
- - spec/livedoor/api/feed_discover/feed_list_spec.rb
58
- - spec/livedoor/api/feed_discover/feed_spec.rb
59
- - spec/livedoor/api/feed_discover/version_spec.rb
57
+ - test/spec_runner.rb
60
58
  rdoc_options:
61
59
  - --main
62
60
  - README.txt