marty 4.0.0.rc2 → 5.1.0

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.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +7 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +3 -16
  5. data/.ssh-docker/.keep +0 -0
  6. data/Dockerfile.dummy +3 -0
  7. data/Gemfile +19 -15
  8. data/app/components/marty/base_rule_view.rb +104 -10
  9. data/app/components/marty/base_rule_view/client/base_rule_view.js +24 -0
  10. data/app/components/marty/data_grid_user_view.rb +39 -0
  11. data/app/components/marty/data_grid_view.rb +68 -18
  12. data/app/components/marty/extras/layout.rb +1 -1
  13. data/app/components/marty/grid.rb +1 -1
  14. data/app/components/marty/grid/client/grid.js +29 -13
  15. data/app/components/marty/import_view.rb +3 -3
  16. data/app/components/marty/main_auth_app.rb +11 -1
  17. data/app/components/marty/report_form.rb +6 -6
  18. data/app/components/marty/script_form.rb +5 -5
  19. data/app/components/marty/script_tester.rb +2 -2
  20. data/app/components/marty/user_view.rb +3 -9
  21. data/app/models/marty/base_rule.rb +92 -32
  22. data/app/models/marty/data_grid.rb +92 -22
  23. data/app/models/marty/event.rb +2 -2
  24. data/app/models/marty/promise.rb +4 -4
  25. data/app/models/marty/role_type.rb +14 -1
  26. data/app/services/marty/data_grid_view/save_grid.rb +2 -2
  27. data/app/services/marty/promises/delorean/create.rb +2 -2
  28. data/app/services/marty/promises/ruby/create.rb +2 -2
  29. data/config/locales/en.yml +11 -2
  30. data/db/migrate/108_add_data_grid_perms.rb +16 -0
  31. data/db/migrate/508_add_not_to_data_grids_tables.rb +18 -0
  32. data/db/migrate/509_update_dg_plpgsql_v1_fns.rb +13 -0
  33. data/db/sql/query_grid_dir_v1.sql +16 -2
  34. data/docker-compose.dummy.yml +1 -0
  35. data/lib/marty/content_handler.rb +2 -2
  36. data/lib/marty/data_change.rb +1 -1
  37. data/lib/marty/data_conversion.rb +3 -4
  38. data/lib/marty/data_importer.rb +4 -4
  39. data/lib/marty/mcfly_model.rb +7 -10
  40. data/lib/marty/migrations.rb +1 -1
  41. data/lib/marty/monkey.rb +2 -2
  42. data/lib/marty/promise_job.rb +5 -5
  43. data/lib/marty/promise_proxy.rb +2 -2
  44. data/lib/marty/promise_ruby_job.rb +4 -4
  45. data/lib/marty/version.rb +1 -1
  46. data/make-app.mk +1 -1
  47. data/marty.gemspec +13 -18
  48. data/other/marty/diagnostic/aws/ec2_instance.rb +17 -2
  49. data/other/marty/diagnostic/aws/error.rb +8 -0
  50. data/other/marty/diagnostic/database.rb +2 -2
  51. data/other/marty/diagnostic/delayed_job_version.rb +0 -1
  52. data/spec/dummy/app/components/gemini/my_rule_view.rb +32 -6
  53. data/spec/dummy/app/models/gemini/fannie_bup.rb +13 -20
  54. data/spec/dummy/app/models/gemini/my_rule.rb +4 -0
  55. data/spec/dummy/app/models/gemini/xyz_rule.rb +3 -1
  56. data/spec/dummy/config/application.rb +1 -0
  57. data/spec/dummy/config/initializers/secret_token.rb +1 -1
  58. data/spec/dummy/db/migrate/20190702115241_add_simple_guards_options_to_rules.rb +37 -0
  59. data/spec/features/data_grid_spec.rb +109 -47
  60. data/spec/features/reporting_spec.rb +4 -4
  61. data/spec/features/rule_spec.rb +62 -31
  62. data/spec/features/scripting_spec.rb +3 -3
  63. data/spec/features/user_view_spec.rb +17 -8
  64. data/spec/fixtures/csv/rule/MyRule.csv +4 -1
  65. data/spec/lib/data_importer_spec.rb +8 -8
  66. data/spec/lib/mcfly_model_spec.rb +6 -6
  67. data/spec/models/data_grid_spec.rb +139 -7
  68. data/spec/models/rule_spec.rb +116 -9
  69. data/spec/spec_helper.rb +2 -2
  70. data/spec/support/netzke.rb +4 -3
  71. metadata +55 -54
  72. data/Gemfile.lock +0 -289
@@ -11,9 +11,11 @@ module Marty::RuleSpec
11
11
  'grid_sum', 'c1', 'sr2']
12
12
  @ruleopts_xyz = ['bvlength', 'bv']
13
13
  end
14
+
14
15
  after(:all) do
15
16
  restore_clean_db(@save_file)
16
17
  end
18
+
17
19
  before(:each) do
18
20
  dt = DateTime.parse('2017-1-1')
19
21
  p = File.expand_path('../../fixtures/csv/rule', __FILE__)
@@ -23,6 +25,7 @@ module Marty::RuleSpec
23
25
  end
24
26
  Marty::Tag.do_create('2017-01-01', 'tag')
25
27
  end
28
+
26
29
  context 'validation' do
27
30
  subject do
28
31
  guards = (@g_array ? { 'g_array' => @g_array } : {}) +
@@ -37,6 +40,7 @@ module Marty::RuleSpec
37
40
  start_dt: @start_dt || '2013-1-1',
38
41
  end_dt: @end_dt,
39
42
  simple_guards: guards,
43
+ simple_guards_options: @simple_guards_options || {},
40
44
  computed_guards: @computed_guards || {},
41
45
  grids: @grids || {},
42
46
  results: @results || {}
@@ -121,18 +125,85 @@ module Marty::RuleSpec
121
125
  exp = /Grids - Bad grid name 'xyz' for 'grid1'/
122
126
  expect { subject }.to raise_error(exp)
123
127
  end
128
+
129
+ describe 'simple_guards_options' do
130
+ before do
131
+ @rule_type = 'SimpleRule'
132
+ end
133
+
134
+ let(:simple_guards_options) do
135
+ {
136
+ 'g_array' => { 'not' => true },
137
+ 'g_string' => { 'not' => true },
138
+ 'g_range' => { 'not' => true },
139
+ 'g_integer' => { 'not' => true },
140
+ 'g_bool' => { 'not' => true }
141
+ }
142
+ end
143
+
144
+ it 'detects wrong simple guards options value' do
145
+ @simple_guards_options = simple_guards_options.merge(
146
+ 'g_array' => { 'not' => 'wrong_type' }
147
+ )
148
+
149
+ exp = Regexp.new(
150
+ "Error in rule 'testrule' 'simple_guard_options' ->"\
151
+ " 'g_array' -> 'not' field must be a boolean"
152
+ )
153
+
154
+ expect { subject }.to raise_error(exp)
155
+ end
156
+
157
+ it 'detects wrong simple guards options field' do
158
+ @simple_guards_options = {
159
+ 'g_integer_wrong' => { 'not' => true }
160
+ }
161
+
162
+ exp = Regexp.new(
163
+ "Error in rule 'testrule' 'simple_guard_options' -> "\
164
+ "'g_integer_wrong' -> 'not'.Guard 'g_integer_wrong' doesn't exist."
165
+ )
166
+
167
+ expect { subject }.to raise_error(exp)
168
+ end
169
+
170
+ it 'detects wrong simple guards options field2' do
171
+ @simple_guards_options = {
172
+ 'g_nullbool' => { 'not' => true }
173
+ }
174
+
175
+ exp = Regexp.new(
176
+ "Error in rule 'testrule' 'simple_guard_options' ->"\
177
+ " 'g_nullbool' -> 'not'. True value is not allowed"
178
+ )
179
+ expect { subject }.to raise_error(exp)
180
+ end
181
+
182
+ it 'saves' do
183
+ @simple_guards_options = simple_guards_options
184
+ expect { subject }.to_not raise_error
185
+ end
186
+ end
187
+
124
188
  it 'sets guard defaults correctly' do
125
189
  vals = Gemini::MyRule.all.map do |r|
126
190
  [r.name, r.simple_guards['g_has_default']]
127
191
  end
128
- expect(vals.sort).to eq([['Rule1', 'different'],
129
- ['Rule2', 'string default'],
130
- ['Rule2a', 'string default'],
131
- ['Rule2b', 'string default'],
132
- ['Rule2c', 'string default'],
133
- ['Rule3', 'string default'],
134
- ['Rule4', 'string default'],
135
- ['Rule5', 'foo']].sort)
192
+ expect(vals.sort).to eq(
193
+ [
194
+ ['NotRule1', 'foo'],
195
+ ['NotRule2', 'foo'],
196
+ ['NotRule3', 'foo'],
197
+ ['Rule1', 'different'],
198
+ ['Rule2', 'string default'],
199
+ ['Rule2a', 'string default'],
200
+ ['Rule2b', 'string default'],
201
+ ['Rule2c', 'string default'],
202
+ ['Rule3', 'string default'],
203
+ ['Rule4', 'string default'],
204
+ ['Rule5', 'foo']
205
+ ].sort
206
+ )
136
207
  end
137
208
  end
138
209
  context 'validation (xyz type)' do
@@ -176,6 +247,7 @@ module Marty::RuleSpec
176
247
  expect(rule.compute_xyz('infinity', true)).to be false
177
248
  expect(rule.compute_xyz('infinity', false)).to be true
178
249
  end
250
+
179
251
  it 'no error' do
180
252
  @rule_type = 'XRule'
181
253
  @results = { 'x' => '1' }
@@ -250,7 +322,7 @@ module Marty::RuleSpec
250
322
  expect(lookup.first.name).to eq('Rule2c')
251
323
  lookup = Gemini::MyRule.get_matches('infinity',
252
324
  { 'rule_type' => 'SimpleRule' }, {})
253
- expect(lookup.to_a.count).to eq(5)
325
+ expect(lookup.to_a.count).to eq(8)
254
326
  lookup = Gemini::MyRule.get_matches('infinity',
255
327
  { 'rule_dt' => '2017-3-1 02:00:00' },
256
328
  {})
@@ -273,8 +345,43 @@ module Marty::RuleSpec
273
345
  'g_nbool_def' => true)
274
346
  expect(lookup.to_a.count).to eq(1)
275
347
  expect(lookup.pluck(:name).first).to eq('Rule1')
348
+
349
+ #####
350
+ # NOT lookups
351
+ #####
352
+ lookup = Gemini::MyRule.get_matches('infinity', {},
353
+ 'g_bool_def' => true,
354
+ 'g_integer' => 3757)
355
+ expect(lookup.to_a.count).to eq(2)
356
+ expect(lookup.pluck(:name).sort).to eq(['NotRule1', 'Rule5'])
357
+
358
+ lookup = Gemini::MyRule.get_matches('infinity', {},
359
+ 'g_bool_def' => true,
360
+ 'g_integer' => 100500)
361
+ expect(lookup.to_a.count).to eq(2)
362
+ expect(lookup.pluck(:name).sort).to eq(['NotRule2', 'NotRule3'])
363
+
364
+ lookup = Gemini::MyRule.get_matches('infinity', {},
365
+ 'g_string' => 'wrong',
366
+ 'g_range' => 20
367
+ )
368
+ expect(lookup.to_a.count).to eq(2)
369
+ expect(lookup.pluck(:name).sort).to eq(['NotRule1', 'NotRule2'])
370
+
371
+ lookup = Gemini::MyRule.get_matches('infinity', {},
372
+ 'g_string' => 'wrong',
373
+ )
374
+ expect(lookup.to_a.count).to eq(3)
375
+ expect(lookup.pluck(:name).sort).to eq(['NotRule1', 'NotRule2', 'NotRule3'])
376
+
377
+ lookup = Gemini::MyRule.get_matches('infinity', {},
378
+ 'g_range' => 250,
379
+ 'g_string' => 'wrong')
380
+ expect(lookup.to_a.count).to eq(1)
381
+ expect(lookup.pluck(:name).sort).to eq(['NotRule3'])
276
382
  end
277
383
  end
384
+
278
385
  context 'rule compute' do
279
386
  let(:complex) do
280
387
  Gemini::MyRule.get_matches('infinity',
@@ -11,8 +11,8 @@ require "#{support}/shared_connection"
11
11
 
12
12
  Dummy::Application.initialize! unless Dummy::Application.initialized?
13
13
 
14
- ActiveRecord::Migrator.migrate File.expand_path('../../db/migrate/', __FILE__)
15
- ActiveRecord::Migrator.migrate File.expand_path('../dummy/db/migrate/', __FILE__)
14
+ ActiveRecord::Migration.migrate File.expand_path('../../db/migrate/', __FILE__)
15
+ ActiveRecord::Migration.migrate File.expand_path('../dummy/db/migrate/', __FILE__)
16
16
 
17
17
  require 'rspec/retry'
18
18
 
@@ -18,7 +18,7 @@ module Marty; module RSpec; module Netzke
18
18
  end
19
19
 
20
20
  def log_in(username, password)
21
- wait_for_ready(10)
21
+ wait_for_ready(25)
22
22
 
23
23
  begin
24
24
  if first("a[data-qtip='Current user']")
@@ -52,8 +52,9 @@ module Marty; module RSpec; module Netzke
52
52
  def press button_name, index_of = 0
53
53
  wait_for_element do
54
54
  begin
55
- cmp = first("a[data-qtip='#{button_name}']")
56
- cmp ||= first(:xpath, './/a', text: button_name.to_s)
55
+ cmp = first("a[data-qtip='#{button_name}']") rescue nil
56
+ cmp ||= all(:xpath, './/a', text: button_name.to_s).
57
+ detect { |c| c.text == button_name.to_s } rescue nil
57
58
  cmp ||= find(:btn, button_name, match: :first)
58
59
  cmp.click
59
60
  true
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: 4.0.0.rc2
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
@@ -14,80 +14,80 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-06-25 00:00:00.000000000 Z
17
+ date: 2019-07-26 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
- name: pg
20
+ name: aws-sigv4
21
21
  requirement: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '0.21'
25
+ version: '0'
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0.21'
32
+ version: '0'
33
33
  - !ruby/object:Gem::Dependency
34
- name: netzke
34
+ name: axlsx
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 6.5.0.0
39
+ version: 3.0.0pre
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 6.5.0.0
46
+ version: 3.0.0pre
47
47
  - !ruby/object:Gem::Dependency
48
- name: axlsx
48
+ name: coderay
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 3.0.0pre
53
+ version: '0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 3.0.0pre
60
+ version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
- name: delorean_lang
62
+ name: daemons
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '1.0'
67
+ version: '0'
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '1.0'
74
+ version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: mcfly
76
+ name: delayed_cron_job
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 0.0.20
81
+ version: '0'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: 0.0.20
88
+ version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: coderay
90
+ name: delayed_job_active_record
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
@@ -101,7 +101,7 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: json-schema
104
+ name: delorean_lang
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="
@@ -115,21 +115,21 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  - !ruby/object:Gem::Dependency
118
- name: net-ldap
118
+ name: json-schema
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - "~>"
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: 0.16.1
123
+ version: '0'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - "~>"
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 0.16.1
130
+ version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
- name: rubyzip
132
+ name: mcfly
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
@@ -143,7 +143,7 @@ dependencies:
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
- name: sqlite3
146
+ name: net-ldap
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
@@ -157,41 +157,35 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  - !ruby/object:Gem::Dependency
160
- name: aws-sigv4
160
+ name: netzke
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '1.0'
166
163
  - - ">="
167
164
  - !ruby/object:Gem::Version
168
- version: 1.0.2
165
+ version: '0'
169
166
  type: :runtime
170
167
  prerelease: false
171
168
  version_requirements: !ruby/object:Gem::Requirement
172
169
  requirements:
173
- - - "~>"
174
- - !ruby/object:Gem::Version
175
- version: '1.0'
176
170
  - - ">="
177
171
  - !ruby/object:Gem::Version
178
- version: 1.0.2
172
+ version: '0'
179
173
  - !ruby/object:Gem::Dependency
180
- name: daemons
174
+ name: pg
181
175
  requirement: !ruby/object:Gem::Requirement
182
176
  requirements:
183
- - - "~>"
177
+ - - ">="
184
178
  - !ruby/object:Gem::Version
185
- version: 1.3.1
179
+ version: '0'
186
180
  type: :runtime
187
181
  prerelease: false
188
182
  version_requirements: !ruby/object:Gem::Requirement
189
183
  requirements:
190
- - - "~>"
184
+ - - ">="
191
185
  - !ruby/object:Gem::Version
192
- version: 1.3.1
186
+ version: '0'
193
187
  - !ruby/object:Gem::Dependency
194
- name: delayed_cron_job
188
+ name: rubyzip
195
189
  requirement: !ruby/object:Gem::Requirement
196
190
  requirements:
197
191
  - - ">="
@@ -205,7 +199,7 @@ dependencies:
205
199
  - !ruby/object:Gem::Version
206
200
  version: '0'
207
201
  - !ruby/object:Gem::Dependency
208
- name: delayed_job_active_record
202
+ name: zip-zip
209
203
  requirement: !ruby/object:Gem::Requirement
210
204
  requirements:
211
205
  - - ">="
@@ -230,10 +224,10 @@ files:
230
224
  - ".rspec"
231
225
  - ".rubocop.yml"
232
226
  - ".rubocop_todo.yml"
227
+ - ".ssh-docker/.keep"
233
228
  - ".travis.yml"
234
229
  - Dockerfile.dummy
235
230
  - Gemfile
236
- - Gemfile.lock
237
231
  - INDEPENDENCE_ISSUES.md
238
232
  - MIT-LICENSE
239
233
  - Makefile
@@ -255,7 +249,9 @@ files:
255
249
  - app/components/marty/auth_app.rb
256
250
  - app/components/marty/auth_app/client/auth_app.js
257
251
  - app/components/marty/base_rule_view.rb
252
+ - app/components/marty/base_rule_view/client/base_rule_view.js
258
253
  - app/components/marty/config_view.rb
254
+ - app/components/marty/data_grid_user_view.rb
259
255
  - app/components/marty/data_grid_view.rb
260
256
  - app/components/marty/data_grid_view/client/data_grid_edit.js
261
257
  - app/components/marty/delorean_rule_view.rb
@@ -394,6 +390,7 @@ files:
394
390
  - db/migrate/105_create_marty_grid_index_booleans.rb
395
391
  - db/migrate/106_make_grid_indexes_nullable.rb
396
392
  - db/migrate/107_add_data_grid_constraint.rb
393
+ - db/migrate/108_add_data_grid_perms.rb
397
394
  - db/migrate/200_create_marty_event_operation_enum.rb
398
395
  - db/migrate/201_create_marty_events.rb
399
396
  - db/migrate/202_add_completion_status_to_event.rb
@@ -412,6 +409,8 @@ files:
412
409
  - db/migrate/505_add_cron_to_delayed_jobs.rb
413
410
  - db/migrate/506_create_marty_delayed_job_schedules.rb
414
411
  - db/migrate/507_migrate_marty_roles_to_enum.rb
412
+ - db/migrate/508_add_not_to_data_grids_tables.rb
413
+ - db/migrate/509_update_dg_plpgsql_v1_fns.rb
415
414
  - db/seeds.rb
416
415
  - db/sql/lookup_grid_distinct_v1.sql
417
416
  - db/sql/query_grid_dir_v1.sql
@@ -462,6 +461,7 @@ files:
462
461
  - marty.gemspec
463
462
  - other/marty/api/base.rb
464
463
  - other/marty/diagnostic/aws/ec2_instance.rb
464
+ - other/marty/diagnostic/aws/error.rb
465
465
  - other/marty/diagnostic/base.rb
466
466
  - other/marty/diagnostic/collection.rb
467
467
  - other/marty/diagnostic/connections.rb
@@ -560,6 +560,7 @@ files:
560
560
  - spec/dummy/db/migrate/20171221095312_create_gemini_my_rules.rb
561
561
  - spec/dummy/db/migrate/20171221095359_create_gemini_xyz_rules.rb
562
562
  - spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
563
+ - spec/dummy/db/migrate/20190702115241_add_simple_guards_options_to_rules.rb
563
564
  - spec/dummy/db/seeds.rb
564
565
  - spec/dummy/delorean/base_code.dl
565
566
  - spec/dummy/delorean/blame_report.dl
@@ -1688,12 +1689,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
1688
1689
  version: '0'
1689
1690
  required_rubygems_version: !ruby/object:Gem::Requirement
1690
1691
  requirements:
1691
- - - ">"
1692
+ - - ">="
1692
1693
  - !ruby/object:Gem::Version
1693
- version: 1.3.1
1694
+ version: '0'
1694
1695
  requirements: []
1695
1696
  rubyforge_project:
1696
- rubygems_version: 2.7.8
1697
+ rubygems_version: 2.6.14
1697
1698
  signing_key:
1698
1699
  specification_version: 4
1699
1700
  summary: A framework for working with versioned data