marty 2.6.0 → 2.6.1

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
  SHA256:
3
- metadata.gz: 5793ffa9b322a289ab5cf900d733f296127f4840586baf8a95afe8793e9752cd
4
- data.tar.gz: 6e1e78d9cbb3472ac5ed1f99a5592cc1718ab706eb1d878265a5682408d9b130
3
+ metadata.gz: eb3ca7ab90c87f02efe558edd6cc4645ab3e9fa519ca047961b959d72c58d2b9
4
+ data.tar.gz: 13ef9b0ebbe0f2e6de2de7e2b8684cadbef122ecc8fec8f1c5dee8240014191c
5
5
  SHA512:
6
- metadata.gz: 3e47115835ddf8cff33b27b6582f73cd77f5e802099c776981aa47311bae1f11047bbba797fe5def8c8188c5ae10de6e213dff1fe37dd51c974e1d326a2c22dc
7
- data.tar.gz: 731b6b6799978cbd72416461ca55c1243eac694b324b8df497a5193d2416569b901c610d862e84a19d58810031c38d4b22d2206280bf9ceaa2ad917b7365ab65
6
+ metadata.gz: 175f379edebcf299c9b6b0c9d3432bbabb16029f64d4d918b292f4812198efa47716ba88fd4e405230d52ffae5d44afb93fe614541d431f7ad20c47c82d3d5f6
7
+ data.tar.gz: d4f24991b4876a9f4e97e9facb97d4c68025b3d89fe29fd2e731f3ebd265ff77b7377f3a494b47879119202515cc26f18f040ab0da97bc9717e15c55fb76d6c5
data/.rubocop.yml CHANGED
@@ -22,3 +22,14 @@ Metrics/BlockLength:
22
22
  Exclude:
23
23
  - 'spec/**/*'
24
24
 
25
+ Style/CaseEquality:
26
+ Exclude:
27
+ - 'app/components/marty/report_form.rb'
28
+ - 'app/models/marty/data_grid.rb'
29
+ - 'app/helpers/marty/enum_helper.rb'
30
+ - 'lib/marty/data_change.rb'
31
+ - 'lib/marty/data_conversion.rb'
32
+ - 'lib/marty/mcfly_model.rb'
33
+ - 'lib/marty/monkey.rb'
34
+ - 'other/marty/api/base.rb'
35
+ - 'spec/lib/mcfly_model_spec.rb'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- marty (2.5.9)
4
+ marty (2.6.0)
5
5
  aws-sigv4 (~> 1.0, >= 1.0.2)
6
6
  axlsx (= 3.0.0pre)
7
7
  coderay
@@ -62,7 +62,9 @@ GEM
62
62
  io-like (~> 0.3.0)
63
63
  arel (8.0.0)
64
64
  ast (2.4.0)
65
- aws-sigv4 (1.0.3)
65
+ aws-eventstream (1.0.2)
66
+ aws-sigv4 (1.1.0)
67
+ aws-eventstream (~> 1.0, >= 1.0.2)
66
68
  axlsx (3.0.0.pre)
67
69
  htmlentities (~> 4.3, >= 4.3.4)
68
70
  mimemagic (~> 0.3)
@@ -0,0 +1,11 @@
1
+ module Marty
2
+ module EnumHelper
3
+ def self.pg_enum?(klass:)
4
+ return true if klass.is_a? Marty::PgEnum
5
+ return true if Marty::PgEnum === klass
6
+ return klass._pg_enum? if klass.respond_to?(:_pg_enum?)
7
+
8
+ false
9
+ end
10
+ end
11
+ end
@@ -92,11 +92,6 @@ class Marty::DataGrid < Marty::Base
92
92
  dga && Hash[fields.zip(dga)]
93
93
  end
94
94
 
95
- # deprecated - remove 2018-Oct
96
- cached_mcfly_lookup :lookup_id, sig: 2 do |pt, group_id|
97
- find_by_group_id group_id
98
- end
99
-
100
95
  cached_delorean_fn :exists, sig: 2 do |pt, name|
101
96
  Marty::DataGrid.mcfly_pt(pt).where(name: name).exists?
102
97
  end
@@ -221,19 +216,6 @@ class Marty::DataGrid < Marty::Base
221
216
  res
222
217
  end
223
218
 
224
- # deprecated - remove 2018-Oct
225
- cached_delorean_fn :lookup_grid, sig: 4 do |pt, dg, h, distinct|
226
- dg_is_grid = Marty::DataGrid === dg
227
- dg_is_os = dg.is_a?(OpenStruct)
228
- raise "bad DataGrid #{dg}" unless dg_is_grid || dg_is_os
229
- raise "non-hash arg #{h}" unless Hash === h
230
-
231
- dgh = dg_is_os ? dg.to_h.stringify_keys :
232
- dg.attributes.slice('id', 'group_id', 'created_dt', 'metadata')
233
- res = plv_lookup_grid_distinct(h, dgh, false, distinct)
234
- res['result']
235
- end
236
-
237
219
  cached_delorean_fn :lookup_grid_h, sig: 4 do |pt, dgn, h, distinct|
238
220
  dgh = lookup_h(pt, dgn)
239
221
  raise "#{dgn} grid not found" unless dgh
@@ -246,7 +228,7 @@ class Marty::DataGrid < Marty::Base
246
228
  # FIXME: using cached_delorean_fn just for the caching -- this is
247
229
  # not expected to be called from Delorean.
248
230
  cached_delorean_fn :find_class_instance, sig: 3 do |pt, klass, v|
249
- if Marty::PgEnum === klass
231
+ if ::Marty::EnumHelper.pg_enum?(klass: klass)
250
232
  klass.find_by_name(v)
251
233
  else
252
234
  # FIXME: very hacky -- hard-coded name
@@ -254,8 +236,9 @@ class Marty::DataGrid < Marty::Base
254
236
  end
255
237
  end
256
238
 
257
- def self.lookup_grid_distinct_entry_h(pt, h, dgh, visited = nil, follow = true,
258
- return_grid_data = false, distinct = true)
239
+ def self.lookup_grid_distinct_entry_h(
240
+ pt, h, dgh, visited = nil, follow = true,
241
+ return_grid_data = false, distinct = true)
259
242
 
260
243
  # Perform grid lookup, if result is another data_grid, and follow is true,
261
244
  # then perform lookup on the resulting grid. Allows grids to be nested
@@ -278,18 +261,18 @@ class Marty::DataGrid < Marty::Base
278
261
  res = vhash['result']
279
262
 
280
263
  v = case
281
- when Marty::PgEnum === res
282
- c_data_type.find_by_name(res)
283
- when Marty::DataGrid == c_data_type
284
- follow ?
285
- Marty::DataGrid.lookup_h(pt, res) :
286
- Marty::DataGrid.lookup(pt, res)
287
- else
288
- Marty::DataConversion.find_row(c_data_type, { 'name' => res }, pt)
289
- end
290
-
291
- return vhash.merge('result' => v) unless (Marty::DataGrid == c_data_type &&
292
- follow)
264
+ when ::Marty::EnumHelper.pg_enum?(klass: res)
265
+ c_data_type.find_by_name(res)
266
+ when Marty::DataGrid == c_data_type
267
+ follow ?
268
+ Marty::DataGrid.lookup_h(pt, res) :
269
+ Marty::DataGrid.lookup(pt, res)
270
+ else
271
+ Marty::DataConversion.find_row(c_data_type, { 'name' => res }, pt)
272
+ end
273
+
274
+ return vhash.merge('result' => v) unless
275
+ Marty::DataGrid == c_data_type && follow
293
276
 
294
277
  visited ||= []
295
278
 
@@ -298,8 +281,8 @@ class Marty::DataGrid < Marty::Base
298
281
  raise "#{self.class} recursion loop detected -- #{visited}" if
299
282
  visited.member?(v['group_id'])
300
283
 
301
- lookup_grid_distinct_entry_h(pt, h, v, visited, follow, return_grid_data,
302
- distinct)
284
+ lookup_grid_distinct_entry_h(
285
+ pt, h, v, visited, follow, return_grid_data, distinct)
303
286
  end
304
287
 
305
288
  def dir_infos(dir)
@@ -24,6 +24,10 @@ module Marty::PgEnum
24
24
  def seed
25
25
  end
26
26
 
27
+ def _pg_enum?
28
+ true
29
+ end
30
+
27
31
  alias_method :find_by_name, :[]
28
32
  alias_method :lookup, :[]
29
33
  end
@@ -114,7 +114,9 @@ class Marty::DataChange
114
114
 
115
115
  delorean_fn :do_pg_enum_export, sig: 1 do |k|
116
116
  klass = k.constantize
117
- next (klass.is_a? Marty::PgEnum) ? klass.get_all : []
117
+ next klass.get_all if ::Marty::EnumHelper.pg_enum?(klass: klass)
118
+
119
+ []
118
120
  end
119
121
 
120
122
  delorean_fn :export_changes, sig: 3 do |t0, t1, class_name|
data/lib/marty/monkey.rb CHANGED
@@ -11,7 +11,7 @@ class Delorean::BaseModule::BaseClass
11
11
 
12
12
  def _get_attr(obj, attr, _e)
13
13
  if (Marty::Enum === obj ||
14
- Marty::PgEnum === obj) && !obj.respond_to?(attr)
14
+ ::Marty::EnumHelper.pg_enum?(klass: obj)) && !obj.respond_to?(attr)
15
15
  obj[attr]
16
16
  else
17
17
  old_get_attr(obj, attr, _e)
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = '2.6.0'
2
+ VERSION = '2.6.1'
3
3
  end
data/make-dummy.mk CHANGED
@@ -17,7 +17,7 @@ dummy-app-bash:
17
17
  docker-compose --file=docker-compose.dummy.yml run --rm app bash
18
18
 
19
19
  dummy-app-console:
20
- docker-compose --file=docker-compose.dummy.yml run --rm app bin/rails c
20
+ docker-compose --file=docker-compose.dummy.yml run --rm app /bin/bash -c "cd spec/dummy && bin/rails c"
21
21
 
22
22
  dummy-app-initialise-docker:
23
23
  touch .bash_history.docker
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.6.0
4
+ version: 2.6.1
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: 2019-03-25 00:00:00.000000000 Z
17
+ date: 2019-03-29 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg
@@ -300,6 +300,7 @@ files:
300
300
  - app/controllers/marty/report_controller.rb
301
301
  - app/controllers/marty/rpc_controller.rb
302
302
  - app/helpers/marty/application_helper.rb
303
+ - app/helpers/marty/enum_helper.rb
303
304
  - app/helpers/marty/script_set.rb
304
305
  - app/models/marty/api_auth.rb
305
306
  - app/models/marty/api_config.rb