simple-rss 1.3.3 → 2.1.0

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/Rakefile CHANGED
@@ -1,54 +1,53 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
3
- require 'rake'
4
- require 'rake/testtask'
5
- require 'rdoc/task'
6
- require 'rubygems/package_task'
7
- require './lib/simple-rss'
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "rake"
4
+ require "rake/testtask"
5
+ require "rdoc/task"
6
+ require "rubygems/package_task"
7
+ require "./lib/simple-rss"
8
8
 
9
9
  PKG_VERSION = SimpleRSS::VERSION
10
- PKG_NAME = "simple-rss"
11
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12
- RUBY_FORGE_PROJECT = "simple-rss"
13
- RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || "cardmagic"
14
- RELEASE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
10
+ PKG_NAME = "simple-rss".freeze
11
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}".freeze
12
+ RUBY_FORGE_PROJECT = "simple-rss".freeze
13
+ RUBY_FORGE_USER = ENV["RUBY_FORGE_USER"] || "cardmagic"
14
+ RELEASE_NAME = "#{PKG_NAME}-#{PKG_VERSION}".freeze
15
15
 
16
16
  PKG_FILES = FileList[
17
17
  "lib/*", "bin/*", "test/**/*", "[A-Z]*", "Rakefile", "html/**/*"
18
18
  ]
19
19
 
20
20
  desc "Default Task"
21
- task :default => [ :test ]
21
+ task default: [:test]
22
22
 
23
23
  # Run the unit tests
24
24
  desc "Run all unit tests"
25
- Rake::TestTask.new("test") { |t|
26
- t.libs << ["lib", "test"]
27
- t.pattern = 'test/*/*_test.rb'
25
+ Rake::TestTask.new("test") do |t|
26
+ t.libs << %w[lib test]
27
+ t.pattern = "test/*/*_test.rb"
28
28
  t.verbose = true
29
- }
29
+ end
30
30
 
31
31
  # Make a console, useful when working on tests
32
32
  desc "Generate a test console"
33
33
  task :console do
34
- verbose( false ) { sh "irb -I lib/ -r 'simple-rss'" }
34
+ verbose(false) { sh "irb -I lib/ -r 'simple-rss'" }
35
35
  end
36
36
 
37
37
  # Genereate the RDoc documentation
38
38
  desc "Create documentation"
39
- Rake::RDocTask.new("doc") { |rdoc|
39
+ Rake::RDocTask.new("doc") do |rdoc|
40
40
  rdoc.title = "Simple RSS - A Flexible RSS and Atom reader for Ruby"
41
- rdoc.rdoc_dir = 'html'
42
- rdoc.rdoc_files.include('README.markdown')
43
- rdoc.rdoc_files.include('lib/*.rb')
44
- }
41
+ rdoc.rdoc_dir = "html"
42
+ rdoc.rdoc_files.include("README.markdown")
43
+ rdoc.rdoc_files.include("lib/*.rb")
44
+ end
45
45
 
46
46
  # Genereate the package
47
47
  spec = Gem::Specification.new do |s|
48
-
49
48
  #### Basic information.
50
49
 
51
- s.name = 'simple-rss'
50
+ s.name = "simple-rss"
52
51
  s.version = PKG_VERSION
53
52
  s.summary = <<-EOF
54
53
  A simple, flexible, extensible, and liberal RSS and Atom reader for Ruby. It is designed to be backwards compatible with the standard RSS parser, but will never do RSS generation.
@@ -63,7 +62,7 @@ spec = Gem::Specification.new do |s|
63
62
 
64
63
  #### Load-time details: library and application (you will need one or both).
65
64
 
66
- s.require_path = 'lib'
65
+ s.require_path = "lib"
67
66
 
68
67
  #### Author and project details.
69
68
 
@@ -79,130 +78,129 @@ end
79
78
 
80
79
  desc "Report code statistics (KLOCs, etc) from the application"
81
80
  task :stats do
82
- require 'code_statistics'
81
+ require "code_statistics"
83
82
  CodeStatistics.new(
84
- ["Library", "lib"],
85
- ["Units", "test"]
83
+ %w[Library lib],
84
+ %w[Units test]
86
85
  ).to_s
87
86
  end
88
87
 
89
88
  desc "Publish new documentation"
90
89
  task :publish do
91
- Rake::RubyForgePublisher.new('simple-rss', 'cardmagic').upload
90
+ Rake::RubyForgePublisher.new("simple-rss", "cardmagic").upload
92
91
  end
93
92
 
94
-
95
93
  desc "Publish the release files to RubyForge."
96
- task :upload => [:package] do
94
+ task upload: [:package] do
97
95
  files = ["gem", "tar.gz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
98
96
 
99
- if RUBY_FORGE_PROJECT then
100
- require 'net/http'
101
- require 'open-uri'
102
-
103
- project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/"
104
- project_data = open(project_uri) { |data| data.read }
105
- group_id = project_data[/[?&]group_id=(\d+)/, 1]
106
- raise "Couldn't get group id" unless group_id
107
-
108
- # This echos password to shell which is a bit sucky
109
- if ENV["RUBY_FORGE_PASSWORD"]
110
- password = ENV["RUBY_FORGE_PASSWORD"]
111
- else
112
- print "#{RUBY_FORGE_USER}@rubyforge.org's password: "
113
- password = STDIN.gets.chomp
97
+ if RUBY_FORGE_PROJECT
98
+ require "net/http"
99
+ require "open-uri"
100
+
101
+ project_uri = "http://rubyforge.org/projects/#{RUBY_FORGE_PROJECT}/"
102
+ project_data = open(project_uri, &:read)
103
+ group_id = project_data[/[?&]group_id=(\d+)/, 1]
104
+ raise "Couldn't get group id" unless group_id
105
+
106
+ # This echos password to shell which is a bit sucky
107
+ if ENV["RUBY_FORGE_PASSWORD"]
108
+ password = ENV["RUBY_FORGE_PASSWORD"]
109
+ else
110
+ print "#{RUBY_FORGE_USER}@rubyforge.org's password: "
111
+ password = STDIN.gets.chomp
112
+ end
113
+
114
+ login_response = Net::HTTP.start("rubyforge.org", 80) do |http|
115
+ data = [
116
+ "login=1",
117
+ "form_loginname=#{RUBY_FORGE_USER}",
118
+ "form_pw=#{password}"
119
+ ].join("&")
120
+ http.post("/account/login.php", data)
121
+ end
122
+
123
+ cookie = login_response["set-cookie"]
124
+ raise "Login failed" unless cookie
125
+ headers = { "Cookie" => cookie }
126
+
127
+ release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
128
+ release_data = open(release_uri, headers, &:read)
129
+ package_id = release_data[/[?&]package_id=(\d+)/, 1]
130
+ raise "Couldn't get package id" unless package_id
131
+
132
+ first_file = true
133
+ release_id = ""
134
+
135
+ files.each do |filename|
136
+ basename = File.basename(filename)
137
+ file_ext = File.extname(filename)
138
+ file_data = File.open(filename, "rb", &:read)
139
+
140
+ puts "Releasing #{basename}..."
141
+
142
+ release_response = Net::HTTP.start("rubyforge.org", 80) do |http|
143
+ release_date = Time.now.strftime("%Y-%m-%d %H:%M")
144
+ type_map = {
145
+ ".zip" => "3000",
146
+ ".tgz" => "3110",
147
+ ".gz" => "3110",
148
+ ".gem" => "1400"
149
+ }; type_map.default = "9999"
150
+ type = type_map[file_ext]
151
+ boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
152
+
153
+ query_hash = if first_file
154
+ {
155
+ "group_id" => group_id,
156
+ "package_id" => package_id,
157
+ "release_name" => RELEASE_NAME,
158
+ "release_date" => release_date,
159
+ "type_id" => type,
160
+ "processor_id" => "8000", # Any
161
+ "release_notes" => "",
162
+ "release_changes" => "",
163
+ "preformatted" => "1",
164
+ "submit" => "1"
165
+ }
166
+ else
167
+ {
168
+ "group_id" => group_id,
169
+ "release_id" => release_id,
170
+ "package_id" => package_id,
171
+ "step2" => "1",
172
+ "type_id" => type,
173
+ "processor_id" => "8000", # Any
174
+ "submit" => "Add This File"
175
+ }
176
+ end
177
+
178
+ query = "?" + query_hash.map do |(name, value)|
179
+ [name, URI.encode(value)].join("=")
180
+ end.join("&")
181
+
182
+ data = [
183
+ "--" + boundary,
184
+ "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
185
+ "Content-Type: application/octet-stream",
186
+ "Content-Transfer-Encoding: binary",
187
+ "", file_data, ""
188
+ ].join("\x0D\x0A")
189
+
190
+ release_headers = headers.merge(
191
+ "Content-Type" => "multipart/form-data; boundary=#{boundary}"
192
+ )
193
+
194
+ target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php"
195
+ http.post(target + query, data, release_headers)
114
196
  end
115
197
 
116
- login_response = Net::HTTP.start("rubyforge.org", 80) do |http|
117
- data = [
118
- "login=1",
119
- "form_loginname=#{RUBY_FORGE_USER}",
120
- "form_pw=#{password}"
121
- ].join("&")
122
- http.post("/account/login.php", data)
198
+ if first_file
199
+ release_id = release_response.body[/release_id=(\d+)/, 1]
200
+ raise("Couldn't get release id") unless release_id
123
201
  end
124
202
 
125
- cookie = login_response["set-cookie"]
126
- raise "Login failed" unless cookie
127
- headers = { "Cookie" => cookie }
128
-
129
- release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
130
- release_data = open(release_uri, headers) { |data| data.read }
131
- package_id = release_data[/[?&]package_id=(\d+)/, 1]
132
- raise "Couldn't get package id" unless package_id
133
-
134
- first_file = true
135
- release_id = ""
136
-
137
- files.each do |filename|
138
- basename = File.basename(filename)
139
- file_ext = File.extname(filename)
140
- file_data = File.open(filename, "rb") { |file| file.read }
141
-
142
- puts "Releasing #{basename}..."
143
-
144
- release_response = Net::HTTP.start("rubyforge.org", 80) do |http|
145
- release_date = Time.now.strftime("%Y-%m-%d %H:%M")
146
- type_map = {
147
- ".zip" => "3000",
148
- ".tgz" => "3110",
149
- ".gz" => "3110",
150
- ".gem" => "1400"
151
- }; type_map.default = "9999"
152
- type = type_map[file_ext]
153
- boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
154
-
155
- query_hash = if first_file then
156
- {
157
- "group_id" => group_id,
158
- "package_id" => package_id,
159
- "release_name" => RELEASE_NAME,
160
- "release_date" => release_date,
161
- "type_id" => type,
162
- "processor_id" => "8000", # Any
163
- "release_notes" => "",
164
- "release_changes" => "",
165
- "preformatted" => "1",
166
- "submit" => "1"
167
- }
168
- else
169
- {
170
- "group_id" => group_id,
171
- "release_id" => release_id,
172
- "package_id" => package_id,
173
- "step2" => "1",
174
- "type_id" => type,
175
- "processor_id" => "8000", # Any
176
- "submit" => "Add This File"
177
- }
178
- end
179
-
180
- query = "?" + query_hash.map do |(name, value)|
181
- [name, URI.encode(value)].join("=")
182
- end.join("&")
183
-
184
- data = [
185
- "--" + boundary,
186
- "Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
187
- "Content-Type: application/octet-stream",
188
- "Content-Transfer-Encoding: binary",
189
- "", file_data, ""
190
- ].join("\x0D\x0A")
191
-
192
- release_headers = headers.merge(
193
- "Content-Type" => "multipart/form-data; boundary=#{boundary}"
194
- )
195
-
196
- target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php"
197
- http.post(target + query, data, release_headers)
198
- end
199
-
200
- if first_file then
201
- release_id = release_response.body[/release_id=(\d+)/, 1]
202
- raise("Couldn't get release id") unless release_id
203
- end
204
-
205
- first_file = false
206
- end
203
+ first_file = false
204
+ end
207
205
  end
208
206
  end