rbarcode 0.0.1 → 0.0.2
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 +19 -112
- data/lib/rbarcode/base.rb +1 -1
- metadata +1 -1
data/Rakefile
CHANGED
@@ -4,7 +4,7 @@ require 'rake'
|
|
4
4
|
require 'rake/testtask'
|
5
5
|
require 'rake/rdoctask'
|
6
6
|
require 'rake/gempackagetask'
|
7
|
-
require '
|
7
|
+
require 'rubyforge'
|
8
8
|
require File.dirname(__FILE__) + '/lib/rbarcode'
|
9
9
|
|
10
10
|
PKG_VERSION = RBarcode::VERSION
|
@@ -92,123 +92,30 @@ task :upload => [:package] do
|
|
92
92
|
files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
|
93
93
|
|
94
94
|
if RUBY_FORGE_PROJECT then
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
if ENV["RUBY_FORGE_PASSWORD"]
|
105
|
-
password = ENV["RUBY_FORGE_PASSWORD"]
|
106
|
-
else
|
107
|
-
password = Proc.new do
|
108
|
-
sync = STDOUT.sync
|
109
|
-
begin
|
110
|
-
echo false
|
111
|
-
STDOUT.sync = true
|
112
|
-
print "#{RUBY_FORGE_USER}@rubyforge.org's password: "
|
113
|
-
STDIN.gets.chomp
|
114
|
-
ensure
|
115
|
-
echo true
|
116
|
-
STDOUT.sync = sync
|
117
|
-
puts
|
118
|
-
end
|
119
|
-
end.call
|
95
|
+
rubyforge = RubyForge.new
|
96
|
+
group_id, package_id, release_name = [RUBY_FORGE_PROJECT, PKG_NAME, RELEASE_NAME]
|
97
|
+
rubyforge.scrape_config
|
98
|
+
|
99
|
+
ac = rubyforge.autoconfig
|
100
|
+
if ! ac["package_ids"].include?(PKG_NAME)
|
101
|
+
rubyforge.create_package(RUBY_FORGE_PROJECT, PKG_NAME)
|
102
|
+
puts "Updating package_id for #{RUBY_FORGE_PROJECT}"
|
103
|
+
rubyforge.scrape_project(RUBY_FORGE_PROJECT)
|
120
104
|
end
|
121
105
|
|
122
|
-
login_response = Net::HTTP.start("rubyforge.org", 80) do |http|
|
123
|
-
data = [
|
124
|
-
"login=1",
|
125
|
-
"form_loginname=#{RUBY_FORGE_USER}",
|
126
|
-
"form_pw=#{password}"
|
127
|
-
].join("&")
|
128
|
-
http.post("/account/login.php", data)
|
129
|
-
end
|
130
|
-
|
131
|
-
cookie = login_response["set-cookie"]
|
132
|
-
raise "Login failed" unless cookie
|
133
|
-
headers = { "Cookie" => cookie }
|
134
|
-
|
135
|
-
release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
|
136
|
-
release_data = open(release_uri, headers) { |data| data.read }
|
137
|
-
package_id = release_data[/[?&]package_id=(\d+)/, 1]
|
138
|
-
raise "Couldn't get package id" unless package_id
|
139
|
-
|
140
106
|
first_file = true
|
141
|
-
release_id = ""
|
142
|
-
|
143
107
|
files.each do |filename|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
release_date = Time.now.strftime("%Y-%m-%d %H:%M")
|
153
|
-
type_map = {
|
154
|
-
".zip" => "3000",
|
155
|
-
".tgz" => "3110",
|
156
|
-
".gz" => "3110",
|
157
|
-
".gem" => "1400"
|
158
|
-
}; type_map.default = "9999"
|
159
|
-
type = type_map[file_ext]
|
160
|
-
boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
|
161
|
-
|
162
|
-
query_hash = if first_file then {
|
163
|
-
"group_id" => group_id,
|
164
|
-
"package_id" => package_id,
|
165
|
-
"release_name" => RELEASE_NAME,
|
166
|
-
"release_date" => release_date,
|
167
|
-
"type_id" => type,
|
168
|
-
"processor_id" => "8000", # Any
|
169
|
-
"release_notes" => "",
|
170
|
-
"release_changes" => "",
|
171
|
-
"preformatted" => "1",
|
172
|
-
"submit" => "1"
|
173
|
-
} else {
|
174
|
-
"group_id" => group_id,
|
175
|
-
"release_id" => release_id,
|
176
|
-
"package_id" => package_id,
|
177
|
-
"step2" => "1",
|
178
|
-
"type_id" => type,
|
179
|
-
"processor_id" => "8000", # Any
|
180
|
-
"submit" => "Add This File"
|
181
|
-
}
|
182
|
-
end
|
183
|
-
|
184
|
-
query = "?" + query_hash.map do |(name, value)|
|
185
|
-
[name, URI.encode(value)].join("=")
|
186
|
-
end.join("&")
|
187
|
-
|
188
|
-
data = [
|
189
|
-
"--" + boundary,
|
190
|
-
"Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
|
191
|
-
"Content-Type: application/octet-stream",
|
192
|
-
"Content-Transfer-Encoding: binary",
|
193
|
-
"", file_data, ""
|
194
|
-
].join("\x0D\x0A")
|
195
|
-
|
196
|
-
release_headers = headers.merge(
|
197
|
-
"Content-Type" => "multipart/form-data; boundary=#{boundary}"
|
198
|
-
)
|
199
|
-
|
200
|
-
target = first_file ? "/frs/admin/qrs.php" : "/frs/admin/editrelease.php"
|
201
|
-
http.post(target + query, data, release_headers)
|
202
|
-
end
|
203
|
-
|
204
|
-
if first_file then
|
205
|
-
#puts release_response.body
|
206
|
-
release_id = release_response.body[/release_id=(\d+)/, 1]
|
207
|
-
raise("Couldn't get release id") unless release_id
|
108
|
+
group_id = Integer(group_id) rescue group_id
|
109
|
+
package_id = Integer(package_id) rescue package_id
|
110
|
+
|
111
|
+
if first_file
|
112
|
+
rubyforge.add_release group_id, package_id, release_name, filename
|
113
|
+
first_file = false
|
114
|
+
else
|
115
|
+
rubyforge.add_file group_id, package_id, release_name, filename
|
208
116
|
end
|
209
|
-
|
210
|
-
first_file = false
|
211
117
|
end
|
118
|
+
|
212
119
|
end
|
213
120
|
end
|
214
121
|
|
data/lib/rbarcode/base.rb
CHANGED