marty 0.5.40 → 0.5.41
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/marty/data_grid.rb +15 -3
- data/lib/marty/data_exporter.rb +1 -1
- data/lib/marty/version.rb +1 -1
- data/spec/models/data_grid_spec.rb +21 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cc0b3b8b64fe73e733f400846ff9e944b1dc113
|
4
|
+
data.tar.gz: 87db6321d7a7d2117e2b55bea1979bc0a8ac8e2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec029611b74c122897ad1497d9ff9ab06b68198354ab942e542759b8bbbfb553c37527615749c3eb14d62e6420fa2bb64df28b41c7a1afb41758ba9ccc6fc07c
|
7
|
+
data.tar.gz: fabfcf96a6a52c4211d0fac59ff573844246ce08f4c752dbe70c339b1c4c041bf84e4354221302b0528a81ea7ff89211ba3840095af0a89fc93f4fb3feecaf94
|
@@ -148,7 +148,7 @@ class Marty::DataGrid < Marty::Base
|
|
148
148
|
data_type.constantize rescue nil
|
149
149
|
end
|
150
150
|
|
151
|
-
def lookup_grid_distinct(pt, h, return_grid_data=false)
|
151
|
+
def lookup_grid_distinct(pt, h, return_grid_data=false, distinct=true)
|
152
152
|
isets = {}
|
153
153
|
|
154
154
|
(dir_infos("v") + dir_infos("h")).each do
|
@@ -221,7 +221,7 @@ class Marty::DataGrid < Marty::Base
|
|
221
221
|
end
|
222
222
|
|
223
223
|
raise "Grid #{name}, (#{isets[dir].count}) #{dir} matches > 1." if
|
224
|
-
isets[dir] && isets[dir].count > 1
|
224
|
+
distinct && isets[dir] && isets[dir].count > 1
|
225
225
|
end
|
226
226
|
|
227
227
|
vi, hi = isets["v"].first, isets["h"].first if isets["v"] && isets["h"]
|
@@ -239,6 +239,18 @@ class Marty::DataGrid < Marty::Base
|
|
239
239
|
}
|
240
240
|
end
|
241
241
|
|
242
|
+
# FIXME: added for Apollo -- not sure where this belongs given that
|
243
|
+
# DGs were moved to marty. Should add documentation about callers
|
244
|
+
# keeping the hash small.
|
245
|
+
cached_delorean_fn :lookup_grid, sig: 4 do
|
246
|
+
|pt, dg, h, distinct|
|
247
|
+
raise "bad DataGrid #{dg}" unless Marty::DataGrid === dg
|
248
|
+
raise "non-hash arg #{h}" unless Hash === h
|
249
|
+
|
250
|
+
res = dg.lookup_grid_distinct(pt, h, false, distinct)
|
251
|
+
res["result"]
|
252
|
+
end
|
253
|
+
|
242
254
|
# FIXME: using cached_delorean_fn just for the caching -- this is
|
243
255
|
# not expected to be called from Delorean.
|
244
256
|
cached_delorean_fn :find_class_instance, sig: 3 do
|
@@ -516,7 +528,7 @@ class Marty::DataGrid < Marty::Base
|
|
516
528
|
|
517
529
|
c_data_type = Marty::DataGrid.convert_data_type(data_type)
|
518
530
|
|
519
|
-
raise "bad data type" unless c_data_type
|
531
|
+
raise "bad data type #{data_type}" unless c_data_type
|
520
532
|
|
521
533
|
# based on data type, decide to check using convert or instance
|
522
534
|
# lookup. FIXME: DRY.
|
data/lib/marty/data_exporter.rb
CHANGED
@@ -40,7 +40,7 @@ class Marty::DataExporter
|
|
40
40
|
|
41
41
|
# if all array items are hashes, we merge them
|
42
42
|
obj = hash_array_merge(obj, config["transpose"]) if
|
43
|
-
obj.is_a?(Array) && obj.
|
43
|
+
obj.is_a?(Array) && obj.all? {|x| x.is_a? Hash}
|
44
44
|
|
45
45
|
# symbolize config keys as expected by CSV.generate
|
46
46
|
conf = config.each_with_object({}) { |(k,v), h|
|
data/lib/marty/version.rb
CHANGED
@@ -108,6 +108,13 @@ hb_indicator\tboolean\tv
|
|
108
108
|
|
109
109
|
true\t456
|
110
110
|
false\t123
|
111
|
+
EOS
|
112
|
+
|
113
|
+
Ge =<<EOS
|
114
|
+
ltv\tnumrange\th
|
115
|
+
|
116
|
+
>110\t>120
|
117
|
+
1.1\t1.1
|
111
118
|
EOS
|
112
119
|
|
113
120
|
before(:each) do
|
@@ -216,11 +223,24 @@ EOS
|
|
216
223
|
describe "lookup" do
|
217
224
|
before(:each) do
|
218
225
|
["G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "Ga", "Gb",
|
219
|
-
"Gc", "Gd"].each { |g|
|
226
|
+
"Gc", "Gd", "Ge"].each { |g|
|
220
227
|
dg_from_import(g, "Marty::DataGridSpec::#{g}".constantize)
|
221
228
|
}
|
222
229
|
end
|
223
230
|
|
231
|
+
it "should handle non-distinct lookups" do
|
232
|
+
pt = 'infinity'
|
233
|
+
|
234
|
+
dg = Marty::DataGrid.lookup(pt, "Ge")
|
235
|
+
res = Marty::DataGrid.lookup_grid(pt, dg, {"ltv"=>500}, false)
|
236
|
+
|
237
|
+
expect(res).to eq(1.1)
|
238
|
+
|
239
|
+
expect {
|
240
|
+
Marty::DataGrid.lookup_grid(pt, dg, {"ltv"=>500}, true)
|
241
|
+
}.to raise_error(RuntimeError)
|
242
|
+
end
|
243
|
+
|
224
244
|
it "should handle boolean lookups" do
|
225
245
|
res = [true, false].map { |hb_indicator|
|
226
246
|
lookup_grid_helper('infinity',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.41
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2016-06-
|
17
|
+
date: 2016-06-10 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: pg
|