simple_worker 0.6.0 → 0.6.1
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/lib/simple_worker/service.rb +136 -7
- metadata +2 -2
@@ -2,6 +2,9 @@ require 'base64'
|
|
2
2
|
require 'logger'
|
3
3
|
require 'appoxy_api'
|
4
4
|
require 'zip'
|
5
|
+
require 'rest_client'
|
6
|
+
require 'json'
|
7
|
+
|
5
8
|
module SimpleWorker
|
6
9
|
|
7
10
|
@@logger = Logger.new(STDOUT)
|
@@ -15,6 +18,134 @@ module SimpleWorker
|
|
15
18
|
3
|
16
19
|
end
|
17
20
|
|
21
|
+
module Api
|
22
|
+
|
23
|
+
# Subclass must define:
|
24
|
+
# host: endpoint url for service
|
25
|
+
class Client
|
26
|
+
|
27
|
+
@@logger = Logger.new(STDOUT)
|
28
|
+
@@logger.level = Logger::INFO
|
29
|
+
|
30
|
+
def self.logger
|
31
|
+
@@logger
|
32
|
+
end
|
33
|
+
|
34
|
+
attr_accessor :host, :access_key, :secret_key, :version
|
35
|
+
|
36
|
+
def initialize(host, access_key, secret_key, options={})
|
37
|
+
@host = host
|
38
|
+
@access_key = access_key
|
39
|
+
@secret_key = secret_key
|
40
|
+
end
|
41
|
+
|
42
|
+
def process_ex(ex)
|
43
|
+
body = ex.http_body
|
44
|
+
puts 'EX BODY=' + body.to_s
|
45
|
+
decoded_ex = JSON.parse(ex.http_body)
|
46
|
+
exception = Exception.new(ex.message+":"+decoded_ex["msg"])
|
47
|
+
exception.set_backtrace(decoded_ex["backtrace"].split(",")) if decoded_ex["backtrace"]
|
48
|
+
raise exception
|
49
|
+
end
|
50
|
+
|
51
|
+
def get(method, params={}, options={})
|
52
|
+
begin
|
53
|
+
# ClientHelper.run_http(host, access_key, secret_key, :get, method, nil, params)
|
54
|
+
parse_response RestClient.get(append_params(url(method), add_params(method, params)), headers), options
|
55
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => ex
|
56
|
+
process_ex(ex)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def post_file(method, file, params={}, options={})
|
61
|
+
begin
|
62
|
+
parse_response RestClient.post(url(method), add_params(method, params).merge!({:file=>file}), :multipart => true), options
|
63
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => ex
|
64
|
+
process_ex(ex)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def post(method, params={}, options={})
|
69
|
+
begin
|
70
|
+
parse_response RestClient.post(url(method), add_params(method, params).to_json, headers), options
|
71
|
+
#ClientHelper.run_http(host, access_key, secret_key, :post, method, nil, params)
|
72
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => ex
|
73
|
+
process_ex(ex)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
def put(method, body, options={})
|
79
|
+
begin
|
80
|
+
parse_response RestClient.put(url(method), add_params(method, body).to_json, headers), options
|
81
|
+
#ClientHelper.run_http(host, access_key, secret_key, :put, method, body, nil)
|
82
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => ex
|
83
|
+
process_ex(ex)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def delete(method, params={}, options={})
|
88
|
+
begin
|
89
|
+
parse_response RestClient.delete(append_params(url(method), add_params(method, params))), options
|
90
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => ex
|
91
|
+
process_ex(ex)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def url(command_path)
|
96
|
+
url = host + command_path
|
97
|
+
url
|
98
|
+
end
|
99
|
+
|
100
|
+
def add_params(command_path, hash)
|
101
|
+
v = version||"0.1"
|
102
|
+
ts = Appoxy::Api::Signatures.generate_timestamp(Time.now.gmtime)
|
103
|
+
# puts 'timestamp = ' + ts
|
104
|
+
sig = case v
|
105
|
+
when "0.2"
|
106
|
+
Appoxy::Api::Signatures.generate_signature(command_path + Appoxy::Api::Signatures.hash_to_s(hash), ts, secret_key)
|
107
|
+
when "0.1"
|
108
|
+
Appoxy::Api::Signatures.generate_signature(command_path, ts, secret_key)
|
109
|
+
end
|
110
|
+
|
111
|
+
extra_params = {'sigv'=>v, 'sig' => sig, 'timestamp' => ts, 'access_key' => access_key}
|
112
|
+
hash.merge!(extra_params)
|
113
|
+
end
|
114
|
+
|
115
|
+
def append_params(host, params)
|
116
|
+
host += "?"
|
117
|
+
i = 0
|
118
|
+
params.each_pair do |k, v|
|
119
|
+
host += "&" if i > 0
|
120
|
+
host += k + "=" + CGI.escape(v)
|
121
|
+
i +=1
|
122
|
+
end
|
123
|
+
return host
|
124
|
+
end
|
125
|
+
|
126
|
+
def headers
|
127
|
+
user_agent = "Appoxy API Ruby Client"
|
128
|
+
headers = {'User-Agent' => user_agent}
|
129
|
+
end
|
130
|
+
|
131
|
+
def parse_response(response, options={})
|
132
|
+
puts 'PARSE RESPONSE!'
|
133
|
+
unless options[:parse] == false
|
134
|
+
begin
|
135
|
+
return JSON.parse(response.to_s)
|
136
|
+
rescue => ex
|
137
|
+
puts 'response that caused error = ' + response.to_s
|
138
|
+
raise ex
|
139
|
+
end
|
140
|
+
else
|
141
|
+
response
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
148
|
+
|
18
149
|
class Service < Appoxy::Api::Client
|
19
150
|
|
20
151
|
attr_accessor :config
|
@@ -157,13 +288,13 @@ module SimpleWorker
|
|
157
288
|
#File.open(fname2, "w") do |f|
|
158
289
|
File.delete(fname2) if File.exist?(fname2)
|
159
290
|
Zip::ZipFile.open(fname2, 'w') do |f|
|
160
|
-
if merged_gems
|
291
|
+
if merged_gems && merged_gems.size > 0
|
161
292
|
merged_gems.each do |gem|
|
162
293
|
next unless gem[:merge]
|
163
294
|
# puts 'gem=' + gem.inspect
|
164
295
|
path = get_gem_path(gem)
|
165
296
|
if path
|
166
|
-
|
297
|
+
SimpleWorker.logger.debug "Collecting gem #{path}"
|
167
298
|
Dir["#{path}/**/**"].each do |file|
|
168
299
|
# puts 'gem2=' + gem.inspect
|
169
300
|
zdest = "gems/#{gem[:name]}/#{file.sub(path+'/', '')}"
|
@@ -180,11 +311,10 @@ module SimpleWorker
|
|
180
311
|
# puts "merging #{m} into #{filename}"
|
181
312
|
f.add(File.basename(m), m)
|
182
313
|
end
|
183
|
-
|
184
|
-
|
185
|
-
puts " MERGED MAILERS" + merged_mailers.inspect
|
314
|
+
if merged_mailers && merged_mailers.size > 0
|
315
|
+
# puts " MERGED MAILERS" + merged_mailers.inspect
|
186
316
|
merged_mailers.each do |mailer|
|
187
|
-
|
317
|
+
SimpleWorker.logger.debug "Collecting mailer #{mailer[:name]}"
|
188
318
|
f.add(File.basename(mailer[:filename]), mailer[:filename])
|
189
319
|
path = mailer[:path_to_templates]
|
190
320
|
Dir["#{path}/**/**"].each do |file|
|
@@ -193,7 +323,6 @@ module SimpleWorker
|
|
193
323
|
end
|
194
324
|
end
|
195
325
|
end
|
196
|
-
puts "merging templates - done"
|
197
326
|
end
|
198
327
|
fname2
|
199
328
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: simple_worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.6.
|
5
|
+
version: 0.6.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Travis Reeder
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-27 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: appoxy_api
|