gooddata 0.6.0.pre3 → 0.6.0.pre4
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/gooddata/bricks/middleware/bench_middleware.rb +14 -11
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +20 -15
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +9 -7
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +11 -9
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +15 -12
- data/lib/gooddata/client.rb +5 -0
- data/lib/gooddata/connection.rb +11 -14
- data/lib/gooddata/version.rb +1 -1
- metadata +1 -1
@@ -1,14 +1,17 @@
|
|
1
1
|
require 'benchmark'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
puts "Starting timer"
|
7
|
-
result = nil
|
8
|
-
report = Benchmark.measure { result = @app.call(params) }
|
9
|
-
puts "Stopping timer"
|
10
|
-
pp report
|
11
|
-
result
|
12
|
-
end
|
3
|
+
module GoodData::Bricks
|
4
|
+
|
5
|
+
class BenchMiddleware < GoodData::Bricks::Middleware
|
13
6
|
|
14
|
-
|
7
|
+
def call(params)
|
8
|
+
puts "Starting timer"
|
9
|
+
result = nil
|
10
|
+
report = Benchmark.measure { result = @app.call(params) }
|
11
|
+
puts "Stopping timer"
|
12
|
+
pp report
|
13
|
+
result
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -1,22 +1,27 @@
|
|
1
1
|
require 'gooddata'
|
2
2
|
|
3
|
-
|
3
|
+
module GoodData::Bricks
|
4
|
+
class GoodDataMiddleware < GoodData::Bricks::Middleware
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
def call(params)
|
7
|
+
logger = params[:gdc_logger]
|
8
|
+
token_name = :GDC_SST
|
9
|
+
protocol_name = :GDC_PROTOCOL
|
10
|
+
server_name = :GDC_SERVER
|
11
|
+
project_id = params[:GDC_PROJECT_ID]
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
13
|
+
fail "SST (SuperSecureToken) not present in params" if params[token_name].nil?
|
14
|
+
logger.info "Connecting to GD with SST"
|
15
|
+
server = if !params[protocol_name].empty? && !params[server_name].empty?
|
16
|
+
params[protocol_name] + "://" + params[server_name]
|
17
|
+
end
|
18
|
+
|
19
|
+
GoodData.connect_with_sst(params[token_name], {:server => server})
|
20
|
+
GoodData.logger = logger
|
21
|
+
GoodData.with_project(project_id) do |p|
|
22
|
+
@app.call(params)
|
23
|
+
end
|
15
24
|
end
|
16
25
|
|
17
|
-
GoodData.connect_with_sst(params[token_name], {:server => server})
|
18
|
-
GoodData.logger = logger
|
19
|
-
@app.call(params)
|
20
26
|
end
|
21
|
-
|
22
|
-
end
|
27
|
+
end
|
@@ -1,14 +1,16 @@
|
|
1
1
|
require 'logger'
|
2
2
|
|
3
|
-
|
3
|
+
module GoodData::Bricks
|
4
|
+
class LoggerMiddleware < GoodData::Bricks::Middleware
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
def call(params)
|
7
|
+
logger = params[:gdc_logger] = params[:GDC_LOGGER_FILE].nil? ? Logger.new(STDOUT) : Logger.new(params[:GDC_LOGGER_FILE])
|
8
|
+
logger.info("Pipeline starts")
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
returning(@app.call(params)) do |result|
|
11
|
+
logger.info("Pipeline ending")
|
12
|
+
end
|
11
13
|
end
|
12
|
-
end
|
13
14
|
|
15
|
+
end
|
14
16
|
end
|
@@ -1,12 +1,14 @@
|
|
1
|
-
|
1
|
+
module GoodData::Bricks
|
2
|
+
class STDOUTLoggingMiddleware < GoodData::Bricks::Middleware
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def call(params)
|
5
|
+
logger = Logger.new(STDOUT)
|
6
|
+
params[:logger] = logger
|
7
|
+
logger.info("Pipeline starting with STDOUT logger")
|
8
|
+
returning(@app.call(params)) do
|
9
|
+
logger.info("Pipeline ending")
|
10
|
+
end
|
9
11
|
end
|
10
|
-
end
|
11
12
|
|
12
|
-
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,19 +1,22 @@
|
|
1
1
|
require 'twitter'
|
2
2
|
|
3
|
-
|
3
|
+
module GoodData::Bricks
|
4
|
+
|
5
|
+
class TwitterMiddleware < GoodData::Bricks::Middleware
|
4
6
|
|
5
|
-
|
7
|
+
def call(params)
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
client = Twitter::REST::Client.new do |config|
|
10
|
+
config.consumer_key = params[:twitter_consumer_key]
|
11
|
+
config.consumer_secret = params[:twitter_consumer_secret]
|
12
|
+
config.access_token = params[:twitter_access_token]
|
13
|
+
config.access_token_secret = params[:twitter_access_token_secret]
|
14
|
+
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
returning(@app.call(params)) do |result|
|
17
|
+
client.update(result)
|
18
|
+
end
|
16
19
|
end
|
17
|
-
end
|
18
20
|
|
19
|
-
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/gooddata/client.rb
CHANGED
@@ -119,6 +119,7 @@ module GoodData
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def with_project(project, &bl)
|
122
|
+
fail "You have to specify a project when using with_project" if project.nil? || project.empty?
|
122
123
|
old_project = GoodData.project
|
123
124
|
begin
|
124
125
|
GoodData.use(project)
|
@@ -239,6 +240,10 @@ module GoodData
|
|
239
240
|
connection.delete path, options
|
240
241
|
end
|
241
242
|
|
243
|
+
def upload_webdav(file, options={})
|
244
|
+
connection.upload(file, options[:directory], options)
|
245
|
+
end
|
246
|
+
|
242
247
|
def poll(result, key, options={})
|
243
248
|
sleep_interval = options[:sleep_interval] || 10
|
244
249
|
link = result[key]["links"]["poll"]
|
data/lib/gooddata/connection.rb
CHANGED
@@ -199,7 +199,7 @@ module GoodData
|
|
199
199
|
def upload(file, dir = nil, options={})
|
200
200
|
ensure_connection
|
201
201
|
# We should have followed a link. If it was correct.
|
202
|
-
|
202
|
+
|
203
203
|
stage_url = @options[:webdav_server] || @url.sub(/\./, '-di.')
|
204
204
|
# Make a directory, if needed
|
205
205
|
if dir then
|
@@ -208,29 +208,25 @@ module GoodData
|
|
208
208
|
GoodData.logger.debug "#{method}: #{url}"
|
209
209
|
begin
|
210
210
|
# first check if it does exits
|
211
|
-
RestClient::Request.execute(
|
211
|
+
RestClient::Request.execute({
|
212
212
|
:method => method,
|
213
213
|
:url => url,
|
214
|
-
:user => @username,
|
215
|
-
:password => @password,
|
216
214
|
:timeout => @options[:timeout],
|
217
215
|
:headers => {
|
218
216
|
:user_agent => GoodData.gem_version_string
|
219
|
-
}
|
217
|
+
}}.merge(cookies)
|
220
218
|
)
|
221
219
|
rescue RestClient::Exception => e
|
222
220
|
if e.http_code == 404 then
|
223
221
|
method = :mkcol
|
224
222
|
GoodData.logger.debug "#{method}: #{url}"
|
225
|
-
RestClient::Request.execute(
|
223
|
+
RestClient::Request.execute({
|
226
224
|
:method => method,
|
227
225
|
:url => url,
|
228
|
-
:user => @username,
|
229
|
-
:password => @password,
|
230
226
|
:timeout => @options[:timeout],
|
231
227
|
:headers => {
|
232
228
|
:user_agent => GoodData.gem_version_string
|
233
|
-
}
|
229
|
+
}}.merge(cookies)
|
234
230
|
)
|
235
231
|
end
|
236
232
|
end
|
@@ -242,17 +238,18 @@ module GoodData
|
|
242
238
|
filename = options[:filename] || options[:stream] ? "randome-filename.txt" : File.basename(file)
|
243
239
|
|
244
240
|
# Upload the file
|
245
|
-
RestClient::Request.
|
241
|
+
req = RestClient::Request.new({
|
246
242
|
:method => :put,
|
247
243
|
:url => stage_url + STAGE_PATH + dir + '/' + filename,
|
248
|
-
:user => @username,
|
249
|
-
:password => @password,
|
250
244
|
:timeout => @options[:timeout],
|
251
245
|
:headers => {
|
252
246
|
:user_agent => GoodData.gem_version_string,
|
253
247
|
},
|
254
|
-
:payload => payload
|
255
|
-
|
248
|
+
:payload => payload,
|
249
|
+
:raw_response => true
|
250
|
+
}.merge(cookies))
|
251
|
+
resp = req.execute
|
252
|
+
pp e.inspect
|
256
253
|
end
|
257
254
|
|
258
255
|
def download(what, where)
|
data/lib/gooddata/version.rb
CHANGED