marty 2.6.0 → 2.6.1

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