gd_bam 0.1.19 → 0.1.20
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/bam +7 -1
- data/lib/bam/version.rb +1 -1
- data/lib/base/sink.rb +4 -0
- data/lib/commands/sf_commands.rb +5 -1
- data/lib/generators/etl.rb +26 -1
- data/lib/nodes/clover_gen.rb +33 -33
- metadata +2 -2
data/bin/bam
CHANGED
@@ -191,6 +191,11 @@ command :debug do |c|
|
|
191
191
|
flows = project[:flows].find_all do |flow|
|
192
192
|
GoodData::Bam::Flow.find_graphs(flow).map {|s| GoodData::Bam::Step.get_graph_path(s).basename}.any? {|name| name == debug_path}
|
193
193
|
end
|
194
|
+
|
195
|
+
if flows.empty?
|
196
|
+
fail "Graph \"#{debug_path}\" is not used in any flow."
|
197
|
+
end
|
198
|
+
|
194
199
|
index = if flows.count > 1
|
195
200
|
m = HighLine::Menu.new
|
196
201
|
m.choose do |menu|
|
@@ -248,8 +253,9 @@ command :project do |c|
|
|
248
253
|
|
249
254
|
c.action do |global_options,options,args|
|
250
255
|
fail "You need to specify token to create a project" if options[:token].nil?
|
251
|
-
|
256
|
+
binding.pry
|
252
257
|
GoodData::Bam::Commands::connect_to_gd()
|
258
|
+
binding.pry
|
253
259
|
pid = case options[:blueprint]
|
254
260
|
when "goodsales"
|
255
261
|
"nt935rwzls50zfqwy6dh62tabu8h0ocy"
|
data/lib/bam/version.rb
CHANGED
data/lib/base/sink.rb
CHANGED
data/lib/commands/sf_commands.rb
CHANGED
@@ -14,7 +14,11 @@ module GoodData
|
|
14
14
|
u = sf_client.describe(sf_object)
|
15
15
|
sf_fields = u[:describeSObjectResponse][:result][:fields].map {|field| field[:name]}
|
16
16
|
fields_to_validate = tap[:fields].map {|field| field[:name]}
|
17
|
-
memo
|
17
|
+
if memo.has_key?(sf_object)
|
18
|
+
memo[sf_object] = memo[sf_object].concat(fields_to_validate - sf_fields)
|
19
|
+
else
|
20
|
+
memo[sf_object] = (fields_to_validate - sf_fields)
|
21
|
+
end
|
18
22
|
memo
|
19
23
|
end
|
20
24
|
end
|
data/lib/generators/etl.rb
CHANGED
@@ -109,11 +109,36 @@ module GoodData
|
|
109
109
|
Helpers::csv_metadata(builder, state[:metadata][input_name])
|
110
110
|
end
|
111
111
|
end
|
112
|
+
|
112
113
|
builder.Phase(:number => 0) do
|
113
114
|
gd_dataset = sink[:gd_name] || sink[:id]
|
114
115
|
to_svinstvo = GoodData::CloverGenerator::build_gd_dataset_loader_json(sink)
|
115
116
|
Core::build_node2(builder, Nodes.reader2({:name => "CSV Loader", :id => "loader", :fileURL => "${PROJECT}/data/#{input_name}.csv"}))
|
116
|
-
Core::build_node2(builder, Nodes.edge2({:toNode => "gd_load:0", :fromNode => "
|
117
|
+
Core::build_node2(builder, Nodes.edge2({:toNode => "gd_load:0", :fromNode => "reformat:0", :metadata => "load_metadata"}))
|
118
|
+
|
119
|
+
transform = <<HEREDOC
|
120
|
+
function string gd_date_compliance(string a_date) {
|
121
|
+
if (a_date != null && a_date != "" && left(a_date, 4) < "1950") {
|
122
|
+
return '1950-01-01';
|
123
|
+
}
|
124
|
+
if (a_date != null && a_date != "" && left(a_date, 4) > "2049") {
|
125
|
+
return '2049-01-01';
|
126
|
+
}
|
127
|
+
return a_date;
|
128
|
+
}
|
129
|
+
|
130
|
+
function integer transform() {
|
131
|
+
$out.0.* = $in.0.*;
|
132
|
+
#{Sink.get_date_fields(sink).map do |f|
|
133
|
+
"$out.0.#{f[:meta]} = gd_date_compliance($in.0.#{f[:meta]});"
|
134
|
+
end.join("\n")}
|
135
|
+
|
136
|
+
return ALL;
|
137
|
+
}
|
138
|
+
HEREDOC
|
139
|
+
|
140
|
+
Core::build_node2(builder, Nodes.reformat2({:name => "Reformat", :id => "reformat", :transformation => transform}))
|
141
|
+
Core::build_node2(builder, Nodes.edge2({:toNode => "reformat:0", :fromNode => "loader:0", :metadata => "load_metadata"}))
|
117
142
|
Core::build_node2(builder, Nodes.gd_loader2({:name => "GD Loader", :id => "gd_load", :dataset => "dataset.#{gd_dataset}", :datasetFieldMappings => to_svinstvo.to_json}))
|
118
143
|
end
|
119
144
|
end
|
data/lib/nodes/clover_gen.rb
CHANGED
@@ -345,39 +345,39 @@ module GoodData
|
|
345
345
|
|
346
346
|
|
347
347
|
|
348
|
-
def self.create_es_uploading_graph(file, options={})
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
end
|
348
|
+
# def self.create_es_uploading_graph(file, options={})
|
349
|
+
# metadata = options[:metadata]
|
350
|
+
# dataset_infos = [options[:datasets]]
|
351
|
+
# input_file = options[:input_file]
|
352
|
+
#
|
353
|
+
# File.open(file, "w") do |file|
|
354
|
+
# builder = Builder::XmlMarkup.new(:target=>file, :indent=>2)
|
355
|
+
# builder.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8"
|
356
|
+
# builder.Graph({
|
357
|
+
# :name => "GoodData Uploader"
|
358
|
+
# }) do
|
359
|
+
# builder.Global do
|
360
|
+
# property_file(builder, {:id => "workspace_params", :fileURL => "workspace.prm"})
|
361
|
+
# dataset_infos.each do |dataset_info|
|
362
|
+
# dataset = dataset_info[:id]
|
363
|
+
# builder.Metadata({:id => "#{dataset}_load"}) do |builder|
|
364
|
+
# csv_metadata(builder, metadata)
|
365
|
+
# end
|
366
|
+
# end
|
367
|
+
# end
|
368
|
+
# builder.Phase(:number => 0) do
|
369
|
+
# dataset_infos.each do |dataset_info|
|
370
|
+
# dataset = dataset_info[:id]
|
371
|
+
# gd_dataset = dataset_info[:gd_name] || dataset_info[:id]
|
372
|
+
# to_svinstvo = build_gd_dataset_loader_json(dataset_info)
|
373
|
+
# build_node2(builder, GoodData::CloverGenerator::Nodes.reader2({:name => "#{dataset} CSV Loader", :id => "#{dataset}_loader", :fileURL => "${PROJECT}/data/#{dataset}.csv"}))
|
374
|
+
# build_node2(builder, GoodData::CloverGenerator::Nodes.edge2({:toNode => "#{dataset}_load:0", :fromNode => "#{dataset}_loader:0", :metadata => "#{dataset}_load", :id => get_id()}))
|
375
|
+
# build_node2(builder, GoodData::CloverGenerator::Nodes.gd_loader2({:name => "#{dataset} Loader", :id => "#{dataset}_load", :dataset => "dataset.#{gd_dataset}", :datasetFieldMappings => to_svinstvo.to_json}))
|
376
|
+
# end
|
377
|
+
# end
|
378
|
+
# end
|
379
|
+
# end
|
380
|
+
# end
|
381
381
|
|
382
382
|
def self.create_metadata(mod)
|
383
383
|
module_name = mod.object
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gd_bam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|