gooddata 0.6.0.pre11 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -1
- data/.yardopts +2 -0
- data/README.md +6 -3
- data/Rakefile +24 -7
- data/gooddata +2 -2
- data/gooddata.gemspec +4 -3
- data/lib/gooddata.rb +17 -12
- data/lib/gooddata/bricks/base_downloader.rb +7 -7
- data/lib/gooddata/bricks/brick.rb +7 -8
- data/lib/gooddata/bricks/bricks.rb +4 -1
- data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +5 -6
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +21 -22
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +3 -4
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +14 -14
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +6 -6
- data/lib/gooddata/bricks/middleware/middleware.rb +4 -1
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +29 -32
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +5 -5
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +6 -8
- data/lib/gooddata/bricks/utils.rb +3 -3
- data/lib/gooddata/cli/cli.rb +4 -2
- data/lib/gooddata/cli/commands/api_cmd.rb +6 -4
- data/lib/gooddata/cli/commands/auth_cmd.rb +5 -3
- data/lib/gooddata/cli/commands/console_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/process_cmd.rb +6 -4
- data/lib/gooddata/cli/commands/profile_cmd.rb +5 -3
- data/lib/gooddata/cli/commands/project_cmd.rb +24 -22
- data/lib/gooddata/cli/commands/run_ruby_cmd.rb +12 -10
- data/lib/gooddata/cli/commands/scaffold_cmd.rb +8 -6
- data/lib/gooddata/cli/hooks.rb +4 -2
- data/lib/gooddata/cli/shared.rb +3 -1
- data/lib/gooddata/cli/terminal.rb +16 -0
- data/lib/gooddata/client.rb +28 -22
- data/lib/gooddata/commands/api.rb +43 -26
- data/lib/gooddata/commands/auth.rb +22 -53
- data/lib/gooddata/commands/base.rb +2 -0
- data/lib/gooddata/commands/commands.rb +3 -0
- data/lib/gooddata/commands/datasets.rb +39 -136
- data/lib/gooddata/commands/process.rb +134 -130
- data/lib/gooddata/commands/profile.rb +2 -0
- data/lib/gooddata/commands/projects.rb +91 -129
- data/lib/gooddata/commands/runners.rb +11 -11
- data/lib/gooddata/commands/scaffold.rb +28 -26
- data/lib/gooddata/connection.rb +61 -68
- data/lib/gooddata/core/core.rb +1 -2
- data/lib/gooddata/data/data.rb +7 -0
- data/lib/gooddata/data/guesser.rb +114 -0
- data/lib/gooddata/exceptions/command_failed.rb +7 -0
- data/lib/gooddata/exceptions/exceptions.rb +7 -0
- data/lib/gooddata/{exceptions.rb → exceptions/project_not_found.rb} +2 -2
- data/lib/gooddata/extensions/big_decimal.rb +5 -0
- data/lib/gooddata/extract.rb +2 -0
- data/lib/gooddata/goodzilla/goodzilla.rb +11 -12
- data/lib/gooddata/helpers.rb +49 -35
- data/lib/gooddata/models/attribute.rb +7 -5
- data/lib/gooddata/models/dashboard.rb +44 -45
- data/lib/gooddata/models/data_result.rb +10 -13
- data/lib/gooddata/models/data_set.rb +6 -6
- data/lib/gooddata/models/display_form.rb +4 -4
- data/lib/gooddata/models/empty_result.rb +4 -3
- data/lib/gooddata/models/fact.rb +5 -5
- data/lib/gooddata/models/links.rb +3 -1
- data/lib/gooddata/models/metadata.rb +34 -32
- data/lib/gooddata/models/metric.rb +33 -34
- data/lib/gooddata/models/model.rb +165 -173
- data/lib/gooddata/models/models.rb +3 -0
- data/lib/gooddata/models/process.rb +18 -17
- data/lib/gooddata/models/profile.rb +3 -1
- data/lib/gooddata/models/project.rb +107 -35
- data/lib/gooddata/models/project_metadata.rb +12 -12
- data/lib/gooddata/models/report.rb +31 -30
- data/lib/gooddata/models/report_data_result.rb +22 -19
- data/lib/gooddata/models/report_definition.rb +101 -80
- data/lib/gooddata/version.rb +5 -3
- data/lib/templates/bricks/brick.rb.erb +3 -3
- data/lib/templates/bricks/main.rb.erb +3 -2
- data/lib/templates/project/Goodfile.erb +2 -2
- data/lib/templates/project/model/model.rb.erb +19 -19
- data/spec/data/.gooddata +4 -0
- data/spec/helpers/blueprint_helper.rb +2 -2
- data/spec/helpers/cli_helper.rb +28 -0
- data/spec/helpers/connection_helper.rb +2 -2
- data/spec/integration/command_projects_spec.rb +1 -1
- data/spec/integration/create_from_template_spec.rb +12 -0
- data/spec/integration/full_project_spec.rb +2 -2
- data/spec/integration/partial_md_export_import_spec.rb +36 -0
- data/spec/logging_in_logging_out_spec.rb +1 -1
- data/spec/spec_helper.rb +29 -2
- data/spec/unit/cli/cli_spec.rb +3 -3
- data/spec/unit/cli/commands/cmd_api_spec.rb +21 -4
- data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -4
- data/spec/unit/cli/commands/cmd_process_spec.rb +20 -4
- data/spec/unit/cli/commands/cmd_profile_spec.rb +9 -4
- data/spec/unit/cli/commands/cmd_project_spec.rb +53 -4
- data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +2 -4
- data/spec/unit/cli/commands/cmd_scaffold_spec.rb +14 -4
- data/spec/unit/commands/command_api_spec.rb +21 -2
- data/spec/unit/commands/command_auth_spec.rb +62 -1
- data/spec/unit/commands/command_dataset_spec.rb +31 -3
- data/spec/unit/commands/command_process_spec.rb +75 -1
- data/spec/unit/commands/command_profile_spec.rb +7 -1
- data/spec/unit/commands/command_projects_spec.rb +1 -1
- data/spec/unit/commands/command_scaffold_spec.rb +46 -1
- data/spec/unit/core/connection_spec.rb +1 -0
- data/spec/unit/data/guesser_spec.rb +54 -0
- data/spec/unit/helpers_spec.rb +47 -0
- data/spec/unit/model/schema_builder_spec.rb +2 -0
- data/spec/unit/model/tools_spec.rb +89 -0
- data/test/test_upload.rb +39 -15
- metadata +98 -75
- data/test/test_commands.rb +0 -85
- data/test/test_guessing.rb +0 -46
- data/test/test_model.rb +0 -81
- data/test/test_rest_api_basic.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b075f6efe569bc8551b63e727f4b8e2f988759a
|
4
|
+
data.tar.gz: de39298550e34a781eb07a8af849e7ce6e6b8452
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d593ea85fad5d42a14821e1a817c01c479fc897c25d3ff8688b77343817c190b9f8d0ea06e8df1976ccf31e222acb5f45622caa358a392f9e4e1d347bc66e774
|
7
|
+
data.tar.gz: 2b56559b63c3463c25eba41de9265ee3b8cc6fdc2fea1d1b8fbbaa00b24833fb88e552356fc8ca3cb397b625f733f762966e29e024ec3d6115f1201fd3bdf16f
|
data/.travis.yml
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
language: ruby
|
2
|
+
|
3
|
+
env:
|
4
|
+
- TEST_SUITE=test:unit
|
5
|
+
|
2
6
|
rvm:
|
3
7
|
- 1.9.3
|
4
8
|
- 2.1.0
|
5
9
|
- ruby-head
|
6
10
|
|
7
|
-
|
11
|
+
before_install:
|
12
|
+
- gem update --system
|
13
|
+
- gem update bundler
|
14
|
+
|
15
|
+
before_script:
|
16
|
+
- cp spec/data/.gooddata ~/
|
17
|
+
|
18
|
+
script: rake $TEST_SUITE
|
data/.yardopts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
--template-path doc/templates
|
2
2
|
--plugin rspec
|
3
|
+
--template default
|
3
4
|
--protected
|
4
5
|
--no-private
|
5
6
|
--verbose
|
@@ -11,6 +12,7 @@
|
|
11
12
|
--readme doc/pages/HOMEPAGE.md
|
12
13
|
--hide-void-return
|
13
14
|
--exclude LICENSE
|
15
|
+
--no-cache
|
14
16
|
--output-dir doc/html
|
15
17
|
lib/**/*.rb
|
16
18
|
ext/**/*{.m,.c}
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ It has a CLI client and it is a library which you can integrate into your applic
|
|
5
5
|
|
6
6
|
The best documentation for the GoodData API can be found using these resources:
|
7
7
|
|
8
|
-
* sdk.gooddata.com/gooddata-ruby/
|
8
|
+
* http://sdk.gooddata.com/gooddata-ruby/
|
9
9
|
* http://docs.gooddata.apiary.io/
|
10
10
|
* http://developer.gooddata.com/api
|
11
11
|
* https://secure.gooddata.com/gdc
|
@@ -15,7 +15,10 @@ The best documentation for the GoodData API can be found using these resources:
|
|
15
15
|
[![Gem Version](https://badge.fury.io/rb/gooddata.png)](http://badge.fury.io/rb/gooddata)
|
16
16
|
[![Dependency Status](https://gemnasium.com/gooddata/gooddata-ruby.png)](https://gemnasium.com/gooddata/gooddata-ruby)
|
17
17
|
[![Code Climate](https://codeclimate.com/github/gooddata/gooddata-ruby.png)](https://codeclimate.com/github/gooddata/gooddata-ruby)
|
18
|
-
[![Build Status](https://travis-ci.org/
|
18
|
+
[![Build Status](https://travis-ci.org/gooddata/gooddata-ruby.png)](https://travis-ci.org/gooddata/gooddata-ruby)
|
19
|
+
[![Coverage Status](https://coveralls.io/repos/gooddata/gooddata-ruby/badge.png)](https://coveralls.io/r/gooddata/gooddata-ruby)
|
20
|
+
[![Build Status](https://travis-ci.org/gooddata/gooddata-ruby.png)](https://travis-ci.org/gooddata/gooddata-ruby)
|
21
|
+
|
19
22
|
|
20
23
|
## Install
|
21
24
|
|
@@ -51,4 +54,4 @@ Special thanks to Thomas Watson Steen [ <mailto:w@tson.dk> / [@wa7son](http://tw
|
|
51
54
|
|
52
55
|
## Copyright
|
53
56
|
|
54
|
-
Copyright (c) 2010 - 2014 GoodData Corporation and Thomas Watson Steen. See LICENSE for details.
|
57
|
+
Copyright (c) 2010 - 2014 GoodData Corporation and Thomas Watson Steen. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -3,15 +3,29 @@ require 'rubygems'
|
|
3
3
|
require 'bundler/setup'
|
4
4
|
require 'bundler/gem_tasks'
|
5
5
|
|
6
|
+
require 'coveralls/rake/task'
|
7
|
+
|
6
8
|
require 'rake/testtask'
|
7
9
|
require 'rspec/core/rake_task'
|
8
10
|
|
9
11
|
require 'yard'
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
desc "Run Rubocop"
|
14
|
+
task :cop do
|
15
|
+
exec "rubocop lib/"
|
16
|
+
end
|
17
|
+
|
18
|
+
Coveralls::RakeTask.new
|
19
|
+
|
20
|
+
desc "Create rspec coverage"
|
21
|
+
task :coverage do
|
22
|
+
ENV['COVERAGE'] = 'true'
|
23
|
+
Rake::Task["test:unit"].execute
|
13
24
|
end
|
14
25
|
|
26
|
+
desc 'Run tests with coveralls'
|
27
|
+
task :coveralls => ['coverage', 'coveralls:push']
|
28
|
+
|
15
29
|
RSpec::Core::RakeTask.new(:test)
|
16
30
|
|
17
31
|
namespace :test do
|
@@ -25,11 +39,10 @@ namespace :test do
|
|
25
39
|
t.pattern = 'spec/integration/**/*.rb'
|
26
40
|
end
|
27
41
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
# end
|
42
|
+
desc "Run legacy tests"
|
43
|
+
RSpec::Core::RakeTask.new(:legacy) do |t|
|
44
|
+
t.pattern = 'test/**/test_*.rb'
|
45
|
+
end
|
33
46
|
|
34
47
|
task :all => [:unit, :integration]
|
35
48
|
end
|
@@ -37,6 +50,10 @@ end
|
|
37
50
|
desc "Run all tests"
|
38
51
|
task :test => 'test:all'
|
39
52
|
|
53
|
+
task :usage do
|
54
|
+
puts "No rake task specified, use rake -T to list them"
|
55
|
+
end
|
56
|
+
|
40
57
|
YARD::Rake::YardocTask.new
|
41
58
|
|
42
59
|
task :default => [:usage]
|
data/gooddata
CHANGED
data/gooddata.gemspec
CHANGED
@@ -27,21 +27,22 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.require_paths = ["lib"]
|
28
28
|
s.rubygems_version = "1.3.7"
|
29
29
|
|
30
|
-
s.add_development_dependency "rake", "~> 10.
|
30
|
+
s.add_development_dependency "rake", "~> 10.2.2"
|
31
31
|
s.add_development_dependency "redcarpet", "~> 3.1.1"
|
32
32
|
s.add_development_dependency "rspec", "~> 2.14.1"
|
33
|
+
s.add_development_dependency "rubocop", "~> 0.20.0"
|
33
34
|
s.add_development_dependency "simplecov", "~> 0.8.2"
|
34
35
|
s.add_development_dependency "yard", "~> 0.8.7.3"
|
35
36
|
s.add_development_dependency "yard-rspec", "~> 0.1"
|
36
37
|
s.add_development_dependency "ZenTest", "~> 4.9.5"
|
38
|
+
s.add_development_dependency "coveralls", "~> 0.7.0"
|
37
39
|
|
38
40
|
s.add_dependency "activesupport", "~> 4.0.3"
|
39
|
-
s.add_dependency "bundler", "
|
41
|
+
s.add_dependency "bundler", ">= 1.6.1"
|
40
42
|
s.add_dependency "erubis", "~> 2.7.0"
|
41
43
|
s.add_dependency "gli", "~> 2.9.0"
|
42
44
|
s.add_dependency "highline", "~> 1.6.21"
|
43
45
|
s.add_dependency "i18n", "~> 0.6.9"
|
44
|
-
s.add_dependency "json", "~> 1.8.1"
|
45
46
|
s.add_dependency "json_pure", "~> 1.8.1"
|
46
47
|
s.add_dependency "multi_json", "~> 1.9.0"
|
47
48
|
s.add_dependency "parseconfig", "~> 1.0.4"
|
data/lib/gooddata.rb
CHANGED
@@ -1,18 +1,23 @@
|
|
1
|
-
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# GoodData Module
|
4
|
+
module GoodData
|
5
|
+
end
|
2
6
|
|
3
7
|
require 'active_support/all'
|
4
8
|
|
5
9
|
# Modules
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
require_relative 'gooddata/bricks/bricks'
|
11
|
+
require_relative 'gooddata/cli/cli'
|
12
|
+
require_relative 'gooddata/commands/commands'
|
13
|
+
require_relative 'gooddata/core/core'
|
14
|
+
require_relative 'gooddata/data/data'
|
15
|
+
require_relative 'gooddata/exceptions/exceptions'
|
16
|
+
require_relative 'gooddata/models/models'
|
11
17
|
|
12
18
|
# Files
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
require File.join(File.dirname(__FILE__), 'gooddata/version')
|
19
|
+
require_relative 'gooddata/client'
|
20
|
+
require_relative 'gooddata/connection'
|
21
|
+
require_relative 'gooddata/extract'
|
22
|
+
require_relative 'gooddata/helpers'
|
23
|
+
require_relative 'gooddata/version'
|
@@ -1,6 +1,7 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
module GoodData::Bricks
|
2
4
|
class BaseDownloader
|
3
|
-
|
4
5
|
def initialize(params)
|
5
6
|
@params = params
|
6
7
|
end
|
@@ -10,12 +11,12 @@ module GoodData::Bricks
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def download
|
13
|
-
puts
|
14
|
+
puts 'would download data'
|
14
15
|
[]
|
15
16
|
end
|
16
17
|
|
17
18
|
def backup(meta)
|
18
|
-
puts
|
19
|
+
puts 'would send a backup list of files to backup'
|
19
20
|
files = meta.reduce([]) do |memo, item|
|
20
21
|
memo << item[:filename]
|
21
22
|
end
|
@@ -37,7 +38,7 @@ module GoodData::Bricks
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def post_process(meta)
|
40
|
-
puts
|
41
|
+
puts 'Maybe some postprocessing'
|
41
42
|
meta
|
42
43
|
end
|
43
44
|
|
@@ -47,17 +48,16 @@ module GoodData::Bricks
|
|
47
48
|
downloaded_data = pre_process(downloaded_data)
|
48
49
|
backup(downloaded_data)
|
49
50
|
downloaded_data = post_process(downloaded_data)
|
50
|
-
|
51
|
+
|
51
52
|
downloaded_data.reduce([]) do |memo, item|
|
52
53
|
item.has_key?(:state) ? memo.concat(item[:state]) : memo
|
53
54
|
end.each do |item|
|
54
55
|
key = item[:key]
|
55
56
|
val = item[:value]
|
56
57
|
|
57
|
-
puts "Saving metadata #{}"
|
58
|
+
puts "Saving metadata #{key} => #{val}"
|
58
59
|
GoodData::ProjectMetadata[key] = val
|
59
60
|
end
|
60
61
|
end
|
61
|
-
|
62
62
|
end
|
63
63
|
end
|
@@ -1,11 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require_relative 'base_downloader'
|
4
|
+
require_relative 'utils'
|
3
5
|
|
4
6
|
Dir[File.dirname(__FILE__) + '/commands/**/*_cmd.rb'].each do |file|
|
5
7
|
require file
|
6
8
|
end
|
7
9
|
|
8
|
-
|
10
|
+
require_relative 'middleware/middleware'
|
9
11
|
|
10
12
|
module GoodData::Bricks
|
11
13
|
class Pipeline
|
@@ -22,7 +24,6 @@ module GoodData::Bricks
|
|
22
24
|
|
23
25
|
# Brick base class
|
24
26
|
class Brick
|
25
|
-
|
26
27
|
def log(message)
|
27
28
|
logger = @params[:gdc_logger]
|
28
29
|
logger.info(message) unless logger.nil?
|
@@ -33,14 +34,12 @@ module GoodData::Bricks
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def version
|
36
|
-
fail
|
37
|
+
fail 'Method version should be reimplemented'
|
37
38
|
end
|
38
39
|
|
39
40
|
def call(params={})
|
40
41
|
@params = params
|
41
|
-
|
42
|
+
''
|
42
43
|
end
|
43
|
-
|
44
44
|
end
|
45
|
-
|
46
45
|
end
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'pathname'
|
3
|
+
|
1
4
|
base = Pathname(__FILE__).dirname.expand_path
|
2
5
|
Dir.glob(base + '*.rb').each do |file|
|
3
6
|
require file
|
4
7
|
end
|
5
8
|
|
6
9
|
# Require all middleware
|
7
|
-
|
10
|
+
require_relative 'middleware/middleware'
|
@@ -1,18 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'benchmark'
|
2
|
-
|
4
|
+
require_relative 'base_middleware'
|
3
5
|
|
4
6
|
module GoodData::Bricks
|
5
|
-
|
6
7
|
class BenchMiddleware < GoodData::Bricks::Middleware
|
7
|
-
|
8
8
|
def call(params)
|
9
|
-
puts
|
9
|
+
puts 'Starting timer'
|
10
10
|
result = nil
|
11
11
|
report = Benchmark.measure { result = @app.call(params) }
|
12
|
-
puts
|
12
|
+
puts 'Stopping timer'
|
13
13
|
pp report
|
14
14
|
result
|
15
15
|
end
|
16
|
-
|
17
16
|
end
|
18
17
|
end
|
@@ -1,39 +1,38 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'salesforce_bulk'
|
2
4
|
|
3
|
-
|
5
|
+
require_relative 'base_middleware'
|
4
6
|
|
5
7
|
module GoodData::Bricks
|
6
8
|
class BulkSalesforceMiddleware < GoodData::Bricks::Middleware
|
7
|
-
|
8
9
|
def call(params)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
client_id = params[:salesforce_client_id]
|
10
|
+
username = params[:salesforce_username]
|
11
|
+
password = params[:salesforce_password]
|
12
|
+
token = params[:salesforce_token]
|
13
|
+
client_id = params[:salesforce_client_id]
|
14
14
|
client_secret = params[:salesforce_client_secret]
|
15
|
-
host
|
15
|
+
host = params[:salesforce_host]
|
16
16
|
|
17
17
|
credentials = {}
|
18
18
|
|
19
19
|
credentials = if (username && password && token)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
{
|
21
|
+
:username => username,
|
22
|
+
:password => password,
|
23
|
+
:security_token => token
|
24
|
+
}
|
25
|
+
end
|
26
26
|
|
27
27
|
client = if credentials
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
28
|
+
credentials.merge!({
|
29
|
+
:client_id => client_id,
|
30
|
+
:client_secret => client_secret,
|
31
|
+
})
|
32
|
+
credentials[:host] = host unless host.nil?
|
33
|
+
SalesforceBulk::Api.new(credentials[:username], credentials[:password] + credentials[:security_token])
|
34
|
+
end
|
35
35
|
@app.call(params.merge(:salesforce_bulk_client => client))
|
36
36
|
end
|
37
|
-
|
38
37
|
end
|
39
38
|
end
|
@@ -2,10 +2,10 @@ require 'uri'
|
|
2
2
|
require 'net/http'
|
3
3
|
require 'pathname'
|
4
4
|
|
5
|
-
|
5
|
+
require_relative 'base_middleware'
|
6
6
|
|
7
|
+
module GoodData::Bricks
|
7
8
|
class FsUploadMiddleware < GoodData::Bricks::Middleware
|
8
|
-
|
9
9
|
def initialize(options={})
|
10
10
|
super
|
11
11
|
@destination = options[:destination]
|
@@ -25,6 +25,5 @@ module GoodData::Bricks
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
29
28
|
end
|
30
|
-
end
|
29
|
+
end
|
@@ -1,31 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'gooddata'
|
2
4
|
|
3
|
-
|
5
|
+
require_relative 'base_middleware'
|
4
6
|
|
5
7
|
module GoodData::Bricks
|
6
8
|
class GoodDataMiddleware < GoodData::Bricks::Middleware
|
7
|
-
|
8
9
|
def call(params)
|
9
|
-
logger = params[
|
10
|
-
token_name =
|
11
|
-
protocol_name =
|
12
|
-
server_name =
|
13
|
-
project_id = params[
|
10
|
+
logger = params['GDC_LOGGER']
|
11
|
+
token_name = 'GDC_SST'
|
12
|
+
protocol_name = 'GDC_PROTOCOL'
|
13
|
+
server_name = 'GDC_HOSTNAME'
|
14
|
+
project_id = params['GDC_PROJECT_ID']
|
14
15
|
|
15
|
-
fail
|
16
|
+
fail 'SST (SuperSecureToken) not present in params' if params[token_name].nil?
|
16
17
|
server = if !params[protocol_name].empty? && !params[server_name].empty?
|
17
|
-
|
18
|
-
|
18
|
+
"#{params[protocol_name]}://#{params[server_name]}"
|
19
|
+
end
|
19
20
|
|
20
|
-
fail
|
21
|
-
fail
|
21
|
+
fail 'GoodData username is missing. Expected param :GDC_USERNAME' if params['GDC_USERNAME'].nil?
|
22
|
+
fail 'GoodData password is missing. Expected param :GDC_PASSWORD' if params['GDC_PASSWORD'].nil?
|
22
23
|
|
23
|
-
GoodData.connect(params[
|
24
|
+
GoodData.connect(params['GDC_USERNAME'], params['GDC_PASSWORD'], {:server => server})
|
24
25
|
GoodData.logger = logger
|
25
26
|
GoodData.with_project(project_id) do |p|
|
26
27
|
@app.call(params)
|
27
28
|
end
|
28
29
|
end
|
29
|
-
|
30
30
|
end
|
31
31
|
end
|