marty 2.0.3 → 2.0.4

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.
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