marty 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da7cae1ae6b567cbf3f8674cea6376869f6c81f8
4
- data.tar.gz: 5eede83f082569ef70cba547e2a654b1697b95c5
3
+ metadata.gz: 0db6d8e6e7a0dc67169859bba31125097aa70c9c
4
+ data.tar.gz: 9b11c8a3d5997bbcdcc73358d5084f810762c0e7
5
5
  SHA512:
6
- metadata.gz: 5611d1364fd1ecea6dc10c7c90d27c57bfdc7e4b27949ac5811fc3e709546a2aae03063afb786418bef2b28d82da14af50ea869143b1bc29a69e2262ab305dff
7
- data.tar.gz: 235f9cd65d8e63075fbe546b70f796293fda42f332090e5acf16436ab90a2d4b059d40ce2d34051ca141667ecfe85f9221f5de8c21b073a28c328c96df7b1dee
6
+ metadata.gz: a4c280fa84312477d80b62a23ef206efd8f8361f596a74a85f36b504479f03cb758020abdb9784011c15459c987519e322dee5ced41f71b032565a10011692f3
7
+ data.tar.gz: 836352b102307c751300a3f752c20f42f63081e6beb7f9331982f89315230279f3cc194fd67c09ccec96df224c43b7a60f085db12a6bde20d91420c2795ce6f4
@@ -48,19 +48,19 @@ class Marty::DeloreanRule < Marty::BaseRule
48
48
  computed_guards.keys
49
49
  end
50
50
 
51
- def self.comp_res_keys(results, grids, ecl)
52
- defkeys = (Marty::Config[results_cfg_var] || {}).keys
51
+ def self.comp_res_keys(results, grids, ecl, pcfg = nil)
52
+ defkeys = (pcfg || Marty::Config[results_cfg_var] || {}).keys
53
53
  results.keys.map {|k| k.ends_with?("_grid") ? ecl.grid_final_name(k) : k}.
54
54
  select{|k| defkeys.include?(k)} + grid_keys(grids, ecl)
55
55
  end
56
56
  def self.grid_keys(grids, eclass)
57
57
  grids.keys.map{|k| eclass.grid_final_name(k) }
58
58
  end
59
- def self.base_compute(ruleh, params, dgparams=params)
60
- id, name, engine, computed_guards, grids, results, fixed_results =
59
+ def self.base_compute2(ruleh, metadata_opts, params, dgparams=params)
60
+ id, name, eclassname, computed_guards, grids, results, fixed_results =
61
61
  ruleh.values_at("id", "name", "engine", "computed_guards", "grids",
62
62
  "results", "fixed_results")
63
- eclass = engine && engine.constantize || Marty::RuleScriptSet
63
+ eclass = eclassname && eclassname.constantize || Marty::RuleScriptSet
64
64
  engine = eclass.new(params["pt"]).get_engine(ruleh) if
65
65
  computed_guards.present? || results.present?
66
66
 
@@ -78,8 +78,9 @@ class Marty::DeloreanRule < Marty::BaseRule
78
78
 
79
79
  grids_computed = false
80
80
  grid_results = {}
81
- crkeys = comp_res_keys(results, grids, eclass)
82
- if (results.keys - fixed_results.keys).present?
81
+ grkeys = grid_keys(grids, eclass)
82
+ crkeys = comp_res_keys(results, grids, eclass, metadata_opts)
83
+ if (crkeys - grkeys - fixed_results.keys).present?
83
84
  begin
84
85
  eval_result = engine.evaluate(
85
86
  eclass.node_name,
@@ -92,8 +93,8 @@ class Marty::DeloreanRule < Marty::BaseRule
92
93
  raise e, "Error (results) in rule '#{id}:#{name}': #{e}", e.backtrace
93
94
  end
94
95
  result = Hash[crkeys.zip(eval_result)]
95
- elsif fixed_results.keys.sort == results.keys.sort
96
- result = fixed_results
96
+ else
97
+ result = fixed_results.slice(*crkeys)
97
98
  end
98
99
 
99
100
  if grids.present? && !grids_computed
@@ -110,10 +111,26 @@ class Marty::DeloreanRule < Marty::BaseRule
110
111
  end
111
112
  result + grid_results
112
113
  end
114
+ def self.base_compute(ruleh, params, dgparams=params)
115
+ base_compute2(ruleh, nil, params, dgparams)
116
+ end
113
117
  delorean_fn :route_compute, sig: 4 do
114
118
  |ruleh, pt, params, grid_names_p|
115
119
  kl = ruleh["classname"].constantize
116
- kl.compute(ruleh, pt, params, grid_names_p)
120
+ kl.compute(ruleh, nil, pt, params, grid_names_p)
121
+ end
122
+ delorean_fn :route_compute2, sig: 5 do
123
+ |ruleh, metadata_opts, pt, params, grid_names_p|
124
+ kl = ruleh["classname"].constantize
125
+ kl.compute(ruleh, metadata_opts, pt, params, grid_names_p)
126
+ end
127
+ delorean_fn :reporting_metadata, sig: 2 do
128
+ |ruleh, metadata_opts|
129
+ rmdkeys = metadata_opts.select{|_, v| v["reporting_metadata"]}.keys
130
+ rmdkeys.each_with_object({}) do |k, h|
131
+ fr = ruleh['fixed_results']
132
+ h[k] = fr[k] if fr.include?(k)
133
+ end
117
134
  end
118
135
  delorean_fn :route_compute_rs, sig: 3 do
119
136
  |ruleh, pt, features|
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = "2.0.3"
2
+ VERSION = "2.0.4"
3
3
  end
@@ -10,7 +10,9 @@ module Marty::RuleSpec
10
10
  Marty::Config['RULEOPTS_MYRULE']={'simple_result'=>{},
11
11
  'computed_value'=>{},
12
12
  'final_value'=>{},
13
- 'grid_sum'=>{}
13
+ 'grid_sum'=>{},
14
+ 'c1'=>{},
15
+ 'sr2'=>{},
14
16
  }
15
17
  Marty::Config['RULEOPTS_XYZ']={'bvlength'=>{},
16
18
  'bv'=>{},
@@ -309,7 +311,7 @@ module Marty::RuleSpec
309
311
  expect(simple2a.compute({"pt"=>Time.zone.now})).to eq(
310
312
  {"simple_result"=>"b value",
311
313
  "sr2"=>true,
312
- "sr3"=>123})
314
+ })
313
315
  # simple2b should return grid results without evaluation
314
316
  expect(simple2b.
315
317
  compute({"pt"=>Time.zone.now,
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: 2.0.3
4
+ version: 2.0.4
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: 2018-04-16 00:00:00.000000000 Z
17
+ date: 2018-04-17 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg