marty 3.0.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +2 -15
  5. data/Gemfile +21 -15
  6. data/app/components/marty/data_grid_view.rb +4 -4
  7. data/app/components/marty/extras/layout.rb +1 -1
  8. data/app/components/marty/grid.rb +1 -1
  9. data/app/components/marty/import_view.rb +3 -3
  10. data/app/components/marty/report_form.rb +6 -6
  11. data/app/components/marty/script_form.rb +5 -5
  12. data/app/components/marty/script_tester.rb +2 -2
  13. data/app/models/marty/data_grid.rb +3 -4
  14. data/app/models/marty/event.rb +2 -2
  15. data/app/models/marty/promise.rb +4 -4
  16. data/app/services/marty/promises/delorean/create.rb +2 -2
  17. data/app/services/marty/promises/ruby/create.rb +2 -2
  18. data/lib/marty/content_handler.rb +2 -2
  19. data/lib/marty/data_change.rb +1 -1
  20. data/lib/marty/data_conversion.rb +2 -3
  21. data/lib/marty/data_importer.rb +4 -4
  22. data/lib/marty/mcfly_model.rb +0 -1
  23. data/lib/marty/monkey.rb +2 -2
  24. data/lib/marty/promise_job.rb +5 -5
  25. data/lib/marty/promise_proxy.rb +2 -2
  26. data/lib/marty/promise_ruby_job.rb +4 -4
  27. data/lib/marty/version.rb +1 -1
  28. data/marty.gemspec +13 -18
  29. data/other/marty/diagnostic/database.rb +2 -2
  30. data/other/marty/diagnostic/delayed_job_version.rb +0 -1
  31. data/spec/dummy/config/initializers/secret_token.rb +1 -1
  32. data/spec/features/data_grid_spec.rb +0 -1
  33. data/spec/features/reporting_spec.rb +4 -4
  34. data/spec/features/scripting_spec.rb +3 -3
  35. data/spec/features/user_view_spec.rb +9 -9
  36. data/spec/lib/data_importer_spec.rb +8 -8
  37. data/spec/spec_helper.rb +2 -2
  38. data/spec/support/netzke.rb +3 -3
  39. metadata +44 -51
  40. data/Gemfile.lock +0 -289
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cdb72d97f91a1f370754d64b41ca268addf4f001b061cc3e531f5993d7f5dae7
4
- data.tar.gz: 1cefbf2a2e8d6e1176be63e876f7207fbc1fe8c07dd8b78b182ac4621e9f638b
3
+ metadata.gz: acc8f6db12c19c31f0689c9490ac58111dd10bb74f464a3dc911148646a71d0f
4
+ data.tar.gz: cc6ba69d0f2cdad1d64b81fc500b595ba3752ab357528efe28a9e78fa53c526f
5
5
  SHA512:
6
- metadata.gz: c82561e607fcb7ffd5e154e85279c7afd1c992867d495cee261310282fa55912247b09db6bff1d88d773a3e49fac0fe5f361fc2048c4f8cd4ea5f70a3d70db2c
7
- data.tar.gz: 540081cb0f2474a32ebb47a5fc42741cedc717d2dc71ebc7bb772af7a8c24c475db5c6812b403b29b2997b95c1123ba576997b95af5cc84f5b1afa9163bc7168
6
+ metadata.gz: 440d3cac5ac80a0664ccea8250c890fe9899dbc45f3850bf9e8ddf2f5f9c5025414ea7a0ff6e5a44aecde547c15bfbaba8786c6a855eaf8f84a289e2b037d721
7
+ data.tar.gz: 86e9790e0d676b7a05244332199c70b8176648abce3496a05d7652ce1b5493872c192d0dbf1753f8dcedc63f641d77d74810ce8e85cc4535f374026f566da2bf
data/.gitignore CHANGED
@@ -36,3 +36,5 @@ spec/dummy/.sass-cache
36
36
  /.ssh-docker/*
37
37
  !/.ssh-docker/.keep
38
38
 
39
+ # Ignore Gemfile.lock
40
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  inherit_from: .rubocop_todo.yml
2
+ require: rubocop-performance
2
3
 
3
4
  AllCops:
4
5
  TargetRubyVersion: 2.3.3
data/.rubocop_todo.yml CHANGED
@@ -48,7 +48,7 @@ Layout/ExtraSpacing:
48
48
  # Cop supports --auto-correct.
49
49
  # Configuration parameters: EnforcedStyle, IndentationWidth.
50
50
  # SupportedStyles: special_inside_parentheses, consistent, align_braces
51
- Layout/IndentHash:
51
+ Layout/IndentFirstHashElement:
52
52
  Exclude:
53
53
  - 'app/components/marty/extras/layout.rb'
54
54
  - 'lib/marty/data_change.rb'
@@ -508,7 +508,7 @@ Performance/TimesMap:
508
508
 
509
509
  # Offense count: 1
510
510
  # Cop supports --auto-correct.
511
- Performance/UnneededSort:
511
+ Style/UnneededSort:
512
512
  Exclude:
513
513
  - 'app/models/marty/event.rb'
514
514
 
@@ -934,19 +934,6 @@ Style/Next:
934
934
  Style/NumericLiterals:
935
935
  MinDigits: 15
936
936
 
937
- # Offense count: 10
938
- # Cop supports --auto-correct.
939
- # Configuration parameters: AutoCorrect, EnforcedStyle, IgnoredMethods.
940
- # SupportedStyles: predicate, comparison
941
- Style/NumericPredicate:
942
- Exclude:
943
- - 'spec/**/*'
944
- - 'app/components/marty/main_auth_app.rb'
945
- - 'lib/marty/content_handler.rb'
946
- - 'lib/marty/data_change.rb'
947
- - 'lib/marty/data_importer.rb'
948
- - 'lib/marty/xl.rb'
949
-
950
937
  # Offense count: 42
951
938
  # Cop supports --auto-correct.
952
939
  Style/ParallelAssignment:
data/Gemfile CHANGED
@@ -5,33 +5,39 @@ source 'http://rubygems.org'
5
5
  # development dependencies will be added by default to the :development group.
6
6
  gemspec
7
7
 
8
- gem 'daemons'
9
- gem 'delayed_job_active_record'
10
- gem 'pg'
11
- gem 'rails', '~> 5.1.4'
12
- gem 'sqlite3'
8
+ group :default do
9
+ gem 'daemons'
10
+ gem 'delayed_job_active_record'
11
+ gem 'pg'
12
+ gem 'rails'
13
+ end
14
+
15
+ group :default, :cmit do
16
+ gem 'delorean_lang'
17
+ gem 'marty_rspec'
18
+ gem 'mcfly'
19
+ # gem 'delorean_lang', path: File.expand_path('../../delorean', __FILE__)
20
+ # gem 'marty_rspec', path: File.expand_path('../../marty_rspec', __FILE__)
21
+ # gem 'mcfly', path: File.expand_path('../../mcfly', __FILE__)
22
+ end
13
23
 
14
24
  group :development, :test do
15
- gem 'capybara', '~> 2.18.0'
25
+ gem 'capybara'
16
26
  gem 'connection_pool'
17
27
  gem 'database_cleaner'
28
+ gem 'fuubar', require: false
29
+ gem 'netzke', '6.5.0.0'
18
30
  gem 'pry-byebug'
19
31
  gem 'pry-rails'
32
+ gem 'puma'
20
33
  gem 'rails-controller-testing'
21
34
  gem 'rspec-instafail', require: false
22
35
  gem 'rspec-rails'
23
36
  gem 'rspec-retry'
24
37
  gem 'rubocop', require: false
38
+ gem 'rubocop-performance', require: false
39
+ gem 'rubocop-rails', require: false
25
40
  gem 'selenium-webdriver'
26
41
  gem 'timecop'
27
42
  gem 'webdrivers'
28
-
29
- # gem 'mcfly', path: File.expand_path('../../mcfly', __FILE__)
30
- gem 'mcfly'
31
- gem 'netzke', '6.5.0.0'
32
-
33
- # gem 'delorean_lang', path: File.expand_path('../../delorean', __FILE__)
34
-
35
- # gem 'marty_rspec', path: File.expand_path('../../marty_rspec', __FILE__)
36
- gem 'marty_rspec'
37
43
  end
@@ -134,8 +134,8 @@ module Marty; class DataGridView < McflyGridPanel
134
134
  set_perms(dg, data)
135
135
  client.success = true
136
136
  client.netzke_on_submit_success
137
- rescue StandardError => exc
138
- client.netzke_notify(exc.to_s)
137
+ rescue StandardError => e
138
+ client.netzke_notify(e.to_s)
139
139
  end
140
140
  end
141
141
 
@@ -149,8 +149,8 @@ module Marty; class DataGridView < McflyGridPanel
149
149
  set_perms(dg, data)
150
150
  client.success = true
151
151
  client.netzke_on_submit_success
152
- rescue StandardError => exc
153
- client.netzke_notify(exc.to_s)
152
+ rescue StandardError => e
153
+ client.netzke_notify(e.to_s)
154
154
  end
155
155
  end
156
156
 
@@ -115,7 +115,7 @@ module Layout
115
115
  end
116
116
 
117
117
  def get_sorter(col)
118
- lambda { |rel, dir| rel.order("#{col}::text #{dir.to_s}") }
118
+ lambda { |rel, dir| rel.order(Arel.sql("#{col}::text #{dir}")) }
119
119
  end
120
120
 
121
121
  ######################################################################
@@ -52,7 +52,7 @@ class Marty::Grid < ::Netzke::Grid::Base
52
52
 
53
53
  def get_json_sorter(json_col, field)
54
54
  lambda do |r, dir|
55
- r.order("#{json_col} ->> '#{field}' " + dir.to_s)
55
+ r.order(Arel.sql("#{json_col} ->> '#{field}' " + dir.to_s))
56
56
  end
57
57
  end
58
58
 
@@ -84,10 +84,10 @@ class Marty::ImportView < Marty::Form
84
84
  result << messages if messages
85
85
 
86
86
  client.set_result result.join('<br/>')
87
- rescue Marty::DataImporter::Error => exc
87
+ rescue Marty::DataImporter::Error => e
88
88
  result = [
89
- "Import failed on line(s): #{exc.lines.join(', ')}",
90
- "Error: #{exc.to_s}",
89
+ "Import failed on line(s): #{e.lines.join(', ')}",
90
+ "Error: #{e.to_s}",
91
91
  ]
92
92
 
93
93
  client.set_result '<font color="red">' + result.join('<br/>') + '</font>'
@@ -61,10 +61,10 @@ class Marty::ReportForm < Marty::Form
61
61
 
62
62
  begin
63
63
  engine.evaluate(node, 'result', d_params)
64
- rescue StandardError => exc
65
- Marty::Util.logger.error "run_eval failed: #{exc.backtrace}"
64
+ rescue StandardError => e
65
+ Marty::Util.logger.error "run_eval failed: #{e.backtrace}"
66
66
 
67
- res = Delorean::Engine.grok_runtime_exception(exc)
67
+ res = Delorean::Engine.grok_runtime_exception(e)
68
68
  res['backtrace'] =
69
69
  res['backtrace'].map { |m, line, fn| "#{m}:#{line} #{fn}" }.join('\n')
70
70
  res
@@ -156,15 +156,15 @@ class Marty::ReportForm < Marty::Form
156
156
  raise 'bad form items' unless items.is_a?(Array)
157
157
  raise 'bad format' unless
158
158
  Marty::ContentHandler::GEN_FORMATS.member?(format)
159
- rescue StandardError => exc
159
+ rescue StandardError => e
160
160
  c.title = 'ERROR'
161
161
  c.items =
162
162
  [
163
163
  {
164
- field_label: 'Exception',
164
+ field_label: 'exception',
165
165
  xtype: :displayfield,
166
166
  name: 'displayfield1',
167
- value: "<span style=\"color:red;\">#{exc}</span>"
167
+ value: "<span style=\"color:red;\">#{e}</span>"
168
168
  },
169
169
  ]
170
170
  return
@@ -83,10 +83,10 @@ class Marty::ScriptForm < Marty::Form
83
83
  begin
84
84
  dev = Marty::Tag.find_by_name('DEV')
85
85
  Marty::ScriptSet.new(dev).parse_check(script.name, data['body'])
86
- rescue Delorean::ParseError => exc
87
- client.netzke_notify exc.message
86
+ rescue Delorean::ParseError => e
87
+ client.netzke_notify e.message
88
88
  client.netzke_apply_form_errors({})
89
- client.set_line_error(exc.line)
89
+ client.set_line_error(e.line)
90
90
  return
91
91
  end
92
92
 
@@ -120,8 +120,8 @@ class Marty::ScriptForm < Marty::Form
120
120
  'PrettyScript',
121
121
  rep_params)
122
122
  client.get_report(path)
123
- rescue StandardError => exc
124
- return client.netzke_notify "ERROR: #{exc}"
123
+ rescue StandardError => e
124
+ return client.netzke_notify "ERROR: #{e}"
125
125
  end
126
126
  end
127
127
 
@@ -75,8 +75,8 @@ class Marty::ScriptTester < Marty::Form
75
75
  client.set_result result.join('<br/>')
76
76
  rescue SystemStackError
77
77
  return client.netzke_notify 'System Stack Error'
78
- rescue StandardError => exc
79
- res = Delorean::Engine.grok_runtime_exception(exc)
78
+ rescue StandardError => e
79
+ res = Delorean::Engine.grok_runtime_exception(e)
80
80
 
81
81
  result = ["Error: #{res['error']}", 'Backtrace:'] +
82
82
  res['backtrace'].map { |m, line, fn| "#{m}:#{line} #{fn}" }
@@ -254,7 +254,6 @@ class Marty::DataGrid < Marty::Base
254
254
  # private method used to cache lookup_grid_distinct_entry_h result
255
255
  delorean_fn :lookup_grid_h_priv,
256
256
  private: true, cache: true, sig: 4 do |pt, dgh, h, distinct|
257
-
258
257
  lookup_grid_distinct_entry_h(
259
258
  pt, h, dgh, nil, true, false, distinct)['result']
260
259
  end
@@ -271,9 +270,9 @@ class Marty::DataGrid < Marty::Base
271
270
  end
272
271
 
273
272
  def self.lookup_grid_distinct_entry_h(
274
- pt, h, dgh, visited = nil, follow = true,
275
- return_grid_data = false, distinct = true
276
- )
273
+ pt, h, dgh, visited = nil, follow = true,
274
+ return_grid_data = false, distinct = true
275
+ )
277
276
 
278
277
  # Perform grid lookup, if result is another data_grid, and follow is true,
279
278
  # then perform lookup on the resulting grid. Allows grids to be nested
@@ -311,7 +311,7 @@ SQL
311
311
 
312
312
  def self.cleanup
313
313
  where('start_dt < ?', Time.zone.now - 48.hours).delete_all
314
- rescue StandardError => exc
315
- Marty::Util.logger.error("event GC error: #{exc}")
314
+ rescue StandardError => e
315
+ Marty::Util.logger.error("event GC error: #{e}")
316
316
  end
317
317
  end
@@ -132,9 +132,9 @@ class Marty::Promise < Marty::Base
132
132
  # log "OFF0 #{Process.pid} #{last}"
133
133
  begin
134
134
  work_off_job(job)
135
- rescue StandardError => exc
135
+ rescue StandardError => e
136
136
  # log "OFFERR #{exc}"
137
- error = exception_to_result(exc)
137
+ error = exception_to_result(e)
138
138
  last.set_result(error)
139
139
  end
140
140
  # log "OFF1 #{Process.pid} #{last}"
@@ -215,8 +215,8 @@ class Marty::Promise < Marty::Base
215
215
  'start_dt < ? AND parent_id IS NULL',
216
216
  DateTime.now - (all ? 0.hours : 4.hours)
217
217
  ).destroy_all
218
- rescue StandardError => exc
219
- Marty::Util.logger.error("promise GC error: #{exc}")
218
+ rescue StandardError => e
219
+ Marty::Util.logger.error("promise GC error: #{e}")
220
220
  end
221
221
 
222
222
  def exception_to_result(promise:, exception:)
@@ -31,9 +31,9 @@ module Marty
31
31
  )
32
32
 
33
33
  job = Delayed::Job.enqueue(promise_job)
34
- rescue StandardError => exc
34
+ rescue StandardError => e
35
35
  # log "CALLERR #{exc}"
36
- res = ::Delorean::Engine.grok_runtime_exception(exc)
36
+ res = ::Delorean::Engine.grok_runtime_exception(e)
37
37
  promise.set_start
38
38
  promise.set_result(res)
39
39
  # log "CALLERRSET #{res}"
@@ -29,8 +29,8 @@ module Marty
29
29
  )
30
30
 
31
31
  job = Delayed::Job.enqueue(promise_job)
32
- rescue StandardError => exc
33
- res = { 'error' => exc.message }
32
+ rescue StandardError => e
33
+ res = { 'error' => e.message }
34
34
  promise.set_start
35
35
  promise.set_result(res)
36
36
  raise
@@ -34,9 +34,9 @@ module Marty::ContentHandler
34
34
  else
35
35
  res, format = { error: "Unknown format: #{format}" }.to_json, 'json'
36
36
  end
37
- rescue StandardError => exc
37
+ rescue StandardError => e
38
38
  res, format =
39
- { error: "Failed conversion #{format}: #{exc}" }.to_json, 'json'
39
+ { error: "Failed conversion #{format}: #{e}" }.to_json, 'json'
40
40
  end
41
41
 
42
42
  type, disposition = GEN_FORMATS[format]
@@ -219,7 +219,7 @@ class Marty::DataChange
219
219
  # "different".
220
220
  conv =
221
221
  Marty::DataConversion.convert_row(klass, input, ts)
222
- rescue StandardError => exc
222
+ rescue StandardError => e
223
223
  only_input << input
224
224
  next
225
225
  end
@@ -58,13 +58,13 @@ class Marty::DataConversion
58
58
  begin
59
59
  v =~ FLOAT_PAT ? EXCEL_START_DATE + v.to_f :
60
60
  Mcfly.is_infinity(v) ? 'infinity' : v.to_date
61
- rescue StandardError => exc
61
+ rescue StandardError => e
62
62
  raise "date conversion failed for #{v.inspect}}"
63
63
  end
64
64
  when :datetime
65
65
  begin
66
66
  Mcfly.is_infinity(v) ? 'infinity' : v.to_datetime
67
- rescue StandardError => exc
67
+ rescue StandardError => e
68
68
  raise "datetime conversion failed for #{v.inspect}}"
69
69
  end
70
70
  when :numrange, :int4range, :int8range
@@ -98,7 +98,6 @@ class Marty::DataConversion
98
98
 
99
99
  @@associations[klass] ||= klass.reflect_on_all_associations.
100
100
  each_with_object({}) do |assoc, h|
101
-
102
101
  h[assoc.name.to_s] = {
103
102
  assoc_keys: assoc_keys(assoc.klass),
104
103
  assoc_class: assoc.klass,
@@ -77,9 +77,9 @@ module Marty
77
77
 
78
78
  Marty::DataConversion.create_or_update(klass, row, dt)
79
79
  end
80
- rescue StandardError => exc
80
+ rescue StandardError => e
81
81
  # to find problems with the importer, comment out the rescue block
82
- raise Error.new(exc.to_s, [eline])
82
+ raise Error.new(e.to_s, [eline])
83
83
  end
84
84
 
85
85
  ids = {}
@@ -96,8 +96,8 @@ module Marty
96
96
  # Validate affected rows if necessary
97
97
  klass.send(validation_function.to_sym, ids.keys) if
98
98
  validation_function
99
- rescue StandardError => exc
100
- raise Error.new(exc.to_s, [])
99
+ rescue StandardError => e
100
+ raise Error.new(e.to_s, [])
101
101
  end
102
102
 
103
103
  remainder_ids = cleaner_ids - ids.keys
@@ -86,7 +86,6 @@ module Mcfly::Model
86
86
 
87
87
  base_mcfly_lookup(name, options + { sig: attrs.length + 1,
88
88
  mode: mode }) do |_t, *attr_list|
89
-
90
89
  attr_list_ids = attr_list.each_with_index.map do |_x, i|
91
90
  assoc.member?(attrs[i]) ?
92
91
  (attr_list[i] && attr_list[i].id) : attr_list[i]
data/lib/marty/monkey.rb CHANGED
@@ -54,8 +54,8 @@ class Delorean::BaseModule::NodeCall
54
54
  begin
55
55
  # make sure params is serialzable before starting a Job
56
56
  JSON.dump(params)
57
- rescue StandardError => exc
58
- raise "non-serializable parameters: #{params} #{exc}"
57
+ rescue StandardError => e
58
+ raise "non-serializable parameters: #{params} #{e}"
59
59
  end
60
60
 
61
61
  Marty::Promises::Delorean::Create.call(
@@ -41,9 +41,9 @@ class Marty::PromiseJob < Struct.new(:promise,
41
41
  end
42
42
 
43
43
  # log "DONE #{Process.pid} #{promise.id} #{Time.now.to_f} #{res}"
44
- rescue StandardError => exc
45
- res = Delorean::Engine.grok_runtime_exception(exc)
46
- # log "ERR- #{Process.pid} #{promise.id} #{Time.now.to_f} #{exc}"
44
+ rescue StandardError => e
45
+ res = Delorean::Engine.grok_runtime_exception(e)
46
+ # log "ERR- #{Process.pid} #{promise.id} #{Time.now.to_f} #{e}"
47
47
  end
48
48
  promise.set_result(res)
49
49
  process_hook(res)
@@ -53,8 +53,8 @@ class Marty::PromiseJob < Struct.new(:promise,
53
53
  return unless hook
54
54
 
55
55
  hook.run(params: params, result: res)
56
- rescue StandardError => exc
57
- Marty::Util.logger.error "promise hook failed: #{exc}"
56
+ rescue StandardError => e
57
+ Marty::Util.logger.error "promise hook failed: #{e}"
58
58
  end
59
59
 
60
60
  def max_attempts
@@ -55,8 +55,8 @@ class Marty::PromiseProxy < BasicObject
55
55
  begin
56
56
  @result = @promise.wait_for_result(@timeout)
57
57
  @result = @result[@attr] if @attr && !@result['error']
58
- rescue ::Exception => exc
59
- @result = ::Delorean::Engine.grok_runtime_exception(exc)
58
+ rescue ::Exception => e
59
+ @result = ::Delorean::Engine.grok_runtime_exception(e)
60
60
  end
61
61
  end
62
62
  end
@@ -25,8 +25,8 @@ class Marty::PromiseRubyJob < Struct.new(:promise,
25
25
 
26
26
  mod = module_name.constantize
27
27
  res = { 'result' => mod.send(method_name, *method_args) }
28
- rescue StandardError => exc
29
- res = ::Marty::Promise.exception_to_result(promise: promise, exception: exc)
28
+ rescue StandardError => e
29
+ res = ::Marty::Promise.exception_to_result(promise: promise, exception: e)
30
30
  end
31
31
 
32
32
  promise.set_result(res)
@@ -37,8 +37,8 @@ class Marty::PromiseRubyJob < Struct.new(:promise,
37
37
  return unless hook
38
38
 
39
39
  hook.run(params: method_args, result: res)
40
- rescue StandardError => exc
41
- Marty::Util.logger.error "promise hook failed: #{exc}"
40
+ rescue StandardError => e
41
+ Marty::Util.logger.error "promise hook failed: #{e}"
42
42
  end
43
43
 
44
44
  def max_attempts
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = '3.0.1'
2
+ VERSION = '3.1.0'
3
3
  end
data/marty.gemspec CHANGED
@@ -26,26 +26,21 @@ Gem::Specification.new do |s|
26
26
  'Marty is a framework for viewing and reporting on versioned data.'
27
27
  s.files = `git ls-files`.split($\)
28
28
  s.licenses = ['MIT']
29
-
30
- s.add_dependency 'pg', '~> 0.21'
31
-
32
- s.add_dependency 'netzke', '6.5.0.0'
33
-
29
+ # used for signing aws ec2 requests
30
+ s.add_dependency 'aws-sigv4'
31
+ # Only pinning this because there's no other way around it for Axlsx.
32
+ # DO NOT unpin this.
34
33
  s.add_dependency 'axlsx', '3.0.0pre'
35
-
36
- s.add_dependency 'delorean_lang', '~> 1.0'
37
- s.add_dependency 'mcfly', '~> 0.0.20'
38
-
39
34
  s.add_dependency 'coderay'
40
- s.add_dependency 'json-schema'
41
- s.add_dependency 'net-ldap', '~> 0.16.1'
42
- s.add_dependency 'rubyzip'
43
- s.add_dependency 'sqlite3'
44
-
45
- # used for signing aws ec2 requests
46
- s.add_dependency 'aws-sigv4', '~> 1.0', '>= 1.0.2'
47
-
48
- s.add_dependency 'daemons', '~> 1.3.1'
35
+ s.add_dependency 'daemons'
49
36
  s.add_dependency 'delayed_cron_job'
50
37
  s.add_dependency 'delayed_job_active_record'
38
+ s.add_dependency 'delorean_lang'
39
+ s.add_dependency 'json-schema'
40
+ s.add_dependency 'mcfly'
41
+ s.add_dependency 'net-ldap'
42
+ s.add_dependency 'netzke'
43
+ s.add_dependency 'pg'
44
+ s.add_dependency 'rubyzip'
45
+ s.add_dependency 'zip-zip'
51
46
  end
@@ -20,9 +20,9 @@ module Marty::Diagnostic::Database
20
20
  end
21
21
 
22
22
  def self.db_schema
23
- current = ActiveRecord::Migrator.current_version
23
+ current = ActiveRecord::Migration.current_version
24
24
  raise "Migration is needed.\nCurrent Version: #{current}" if
25
- ActiveRecord::Migrator.needs_migration?
25
+ ActiveRecord::Base.connection.migration_context.needs_migration?
26
26
 
27
27
  current.to_s
28
28
  end
@@ -31,7 +31,6 @@ module Marty::Diagnostic; class DelayedJobVersion < Base
31
31
  hash[r[0]] ||= []
32
32
  hash[r[0]] << r[1]
33
33
  end.map do |node, result|
34
-
35
34
  versions = result.uniq
36
35
  status = versions.count == 1 && versions[0] == ENV['DELAYED_VER']
37
36
 
@@ -4,4 +4,4 @@
4
4
  # If you change this key, all old signed cookies will become invalid!
5
5
  # Make sure the secret is at least 30 characters and all random,
6
6
  # no regular words or you'll be exposed to dictionary attacks.
7
- Dummy::Application.config.secret_token = 'a087c113817a728e1552d63682abbd7f19fd7481ea3e24154889af53ab56d114f8901f63909a5e8310260c7187f6fd203cddc8743f6486fead0a4043cd7976c2'
7
+ Dummy::Application.config.secret_key_base = 'a087c113817a728e1552d63682abbd7f19fd7481ea3e24154889af53ab56d114f8901f63909a5e8310260c7187f6fd203cddc8743f6486fead0a4043cd7976c2'
@@ -374,7 +374,6 @@ feature 'data grid view', js: true do
374
374
  ['edit_all', context_test_all],
375
375
  ['edit_data', false],
376
376
  ['view', false]].each do |perm, all_cells|
377
-
378
377
  set_perm(perm)
379
378
  press('Refresh')
380
379
  grids = dgv.get_col_vals('name', 5)
@@ -206,8 +206,8 @@ DELOREAN
206
206
  end
207
207
 
208
208
  wait_for_element do
209
- expect(page).to have_content('XYZ1,XYZ2,XYZ3,XYZ4 1,2,3,4 2,4,6,8 ' +
210
- '3,6,9,12 4,8,12,16')
209
+ expect(page).to have_content("XYZ1,XYZ2,XYZ3,XYZ4\n1,2,3,4\n2,4,6,8\n" +
210
+ "3,6,9,12\n4,8,12,16")
211
211
  end
212
212
  end
213
213
 
@@ -263,8 +263,8 @@ DELOREAN
263
263
  url = generate_rep_url(format: 'txt') + URI.encode('&disposition=inline')
264
264
  visit url
265
265
  wait_for_element do
266
- expect(page).to have_content('XYZ1,XYZ2,XYZ3,XYZ4 1,2,3,4 2,4,6,8 ' +
267
- '3,6,9,12 4,8,12,16')
266
+ expect(page).to have_content("XYZ1,XYZ2,XYZ3,XYZ4\n1,2,3,4\n2,4,6,8\n" +
267
+ "3,6,9,12\n4,8,12,16")
268
268
  end
269
269
  end
270
270
 
@@ -221,7 +221,7 @@ feature 'under Applications menu, Scripting workflows', js: true do
221
221
 
222
222
  and_by 'form displays correct body' do
223
223
  wait_for_ajax
224
- expect(page).to have_content '1 #5 2 #1 3 #2 4 #3'
224
+ expect(page).to have_content "1\n#5\n2\n#1\n3\n#2\n4\n#3"
225
225
  end
226
226
 
227
227
  and_by 'select different tag' do
@@ -235,7 +235,7 @@ feature 'under Applications menu, Scripting workflows', js: true do
235
235
 
236
236
  and_by 'form displays updated body' do
237
237
  wait_for_ajax
238
- expect(page).to have_content '1 #5 2 #1'
238
+ expect(page).to have_content "1\n#5\n2\n#1"
239
239
  end
240
240
  end
241
241
 
@@ -288,7 +288,7 @@ feature 'under Applications menu, Scripting workflows', js: true do
288
288
  tag_grid.select_row(2)
289
289
  wait_for_ajax
290
290
  script_grid.select_row(5)
291
- expect(page).to have_content '1 #123 2 #456'
291
+ expect(page).to have_content "1\n#123\n2\n#456"
292
292
  expect(tag_grid.get_row_vals(2)).to netzke_include(comment: 'ABCD')
293
293
  end
294
294
  end
@@ -8,7 +8,7 @@ feature 'under System menu, User Management worflows', js: true do
8
8
  end
9
9
 
10
10
  def go_to_user_view_backdoor
11
- sys_btn = first(:btn, 'System')
11
+ sys_btn = first(:btn, 'System') rescue nil
12
12
  if sys_btn
13
13
  sys_btn.click
14
14
  expect(page).not_to have_content 'User Management'
@@ -147,10 +147,10 @@ feature 'under System menu, User Management worflows', js: true do
147
147
  user_view = netzke_find('user_view')
148
148
  by 'check buttons' do
149
149
  user_view.select_row(1)
150
- err = /Unable to find visible btn/
151
- expect { find(:btn, 'New User') }.to raise_error(err)
152
- expect { find(:btn, 'Edit') }.to raise_error(err)
153
- expect { find(:btn, 'Delete') }.to raise_error(err)
150
+ err = /Unable to find btn/
151
+ ['New User', 'Edit', 'Delete'].each do |btn_name|
152
+ expect { find(:btn, btn_name) }.to raise_error(err)
153
+ end
154
154
  end
155
155
  end
156
156
 
@@ -161,10 +161,10 @@ feature 'under System menu, User Management worflows', js: true do
161
161
  user_view = netzke_find('user_view')
162
162
  by 'check buttons' do
163
163
  user_view.select_row(1)
164
- err = /Unable to find visible btn/
165
- expect { find(:btn, 'New User') }.to raise_error(err)
166
- expect { find(:btn, 'Edit') }.to raise_error(err)
167
- expect { find(:btn, 'Delete') }.to raise_error(err)
164
+ err = /Unable to find btn/
165
+ ['New User', 'Edit', 'Delete'].each do |btn_name|
166
+ expect { find(:btn, btn_name) }.to raise_error(err)
167
+ end
168
168
  end
169
169
  end
170
170
  end
@@ -349,8 +349,8 @@ describe DataImporter do
349
349
 
350
350
  begin
351
351
  Marty::DataImporter.do_import_summary(Gemini::FannieBup, fannie_bup4)
352
- rescue Marty::DataImporter::Error => exc
353
- exc.lines.should == [0]
352
+ rescue Marty::DataImporter::Error => e
353
+ e.lines.should == [0]
354
354
  else
355
355
  raise 'should have had an exception'
356
356
  end
@@ -390,9 +390,9 @@ describe DataImporter do
390
390
 
391
391
  begin
392
392
  Marty::DataImporter.do_import_summary(Gemini::FannieBup, fannie_bup5)
393
- rescue Marty::DataImporter::Error => exc
394
- exc.lines.should == [1]
395
- exc.message.should =~ /Conv Fixed XX/
393
+ rescue Marty::DataImporter::Error => e
394
+ e.lines.should == [1]
395
+ e.message.should =~ /Conv Fixed XX/
396
396
  else
397
397
  raise 'should have had an exception'
398
398
  end
@@ -409,9 +409,9 @@ describe DataImporter do
409
409
  begin
410
410
  res = Marty::DataImporter.
411
411
  do_import_summary(Gemini::FannieBup, fannie_bup6)
412
- rescue Marty::DataImporter::Error => exc
413
- exc.lines.should == [1]
414
- exc.message.should =~ /bad float/
412
+ rescue Marty::DataImporter::Error => e
413
+ e.lines.should == [1]
414
+ e.message.should =~ /bad float/
415
415
  else
416
416
  raise 'should have had an exception'
417
417
  end
data/spec/spec_helper.rb CHANGED
@@ -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,9 +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}']")
55
+ cmp = first("a[data-qtip='#{button_name}']") rescue nil
56
56
  cmp ||= all(:xpath, './/a', text: button_name.to_s).
57
- detect { |c| c.text == button_name.to_s }
57
+ detect { |c| c.text == button_name.to_s } rescue nil
58
58
  cmp ||= find(:btn, button_name, match: :first)
59
59
  cmp.click
60
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: 3.0.1
4
+ version: 3.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-07-05 00:00:00.000000000 Z
17
+ date: 2019-07-12 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
  - - ">="
@@ -234,7 +228,6 @@ files:
234
228
  - ".travis.yml"
235
229
  - Dockerfile.dummy
236
230
  - Gemfile
237
- - Gemfile.lock
238
231
  - INDEPENDENCE_ISSUES.md
239
232
  - MIT-LICENSE
240
233
  - Makefile
data/Gemfile.lock DELETED
@@ -1,289 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- marty (3.0.0)
5
- aws-sigv4 (~> 1.0, >= 1.0.2)
6
- axlsx (= 3.0.0pre)
7
- coderay
8
- daemons (~> 1.3.1)
9
- delayed_cron_job
10
- delayed_job_active_record
11
- delorean_lang (~> 1.0)
12
- json-schema
13
- mcfly (~> 0.0.20)
14
- net-ldap (~> 0.16.1)
15
- netzke (= 6.5.0.0)
16
- pg (~> 0.21)
17
- rubyzip
18
- sqlite3
19
-
20
- GEM
21
- remote: http://rubygems.org/
22
- specs:
23
- actioncable (5.1.6.1)
24
- actionpack (= 5.1.6.1)
25
- nio4r (~> 2.0)
26
- websocket-driver (~> 0.6.1)
27
- actionmailer (5.1.6.1)
28
- actionpack (= 5.1.6.1)
29
- actionview (= 5.1.6.1)
30
- activejob (= 5.1.6.1)
31
- mail (~> 2.5, >= 2.5.4)
32
- rails-dom-testing (~> 2.0)
33
- actionpack (5.1.6.1)
34
- actionview (= 5.1.6.1)
35
- activesupport (= 5.1.6.1)
36
- rack (~> 2.0)
37
- rack-test (>= 0.6.3)
38
- rails-dom-testing (~> 2.0)
39
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
40
- actionview (5.1.6.1)
41
- activesupport (= 5.1.6.1)
42
- builder (~> 3.1)
43
- erubi (~> 1.4)
44
- rails-dom-testing (~> 2.0)
45
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
46
- activejob (5.1.6.1)
47
- activesupport (= 5.1.6.1)
48
- globalid (>= 0.3.6)
49
- activemodel (5.1.6.1)
50
- activesupport (= 5.1.6.1)
51
- activerecord (5.1.6.1)
52
- activemodel (= 5.1.6.1)
53
- activesupport (= 5.1.6.1)
54
- arel (~> 8.0)
55
- activesupport (5.1.6.1)
56
- concurrent-ruby (~> 1.0, >= 1.0.2)
57
- i18n (>= 0.7, < 2)
58
- minitest (~> 5.1)
59
- tzinfo (~> 1.1)
60
- addressable (2.6.0)
61
- public_suffix (>= 2.0.2, < 4.0)
62
- arel (8.0.0)
63
- ast (2.4.0)
64
- aws-eventstream (1.0.3)
65
- aws-sigv4 (1.1.0)
66
- aws-eventstream (~> 1.0, >= 1.0.2)
67
- axlsx (3.0.0.pre)
68
- htmlentities (~> 4.3, >= 4.3.4)
69
- mimemagic (~> 0.3)
70
- nokogiri (~> 1.8, >= 1.8.2)
71
- rubyzip (~> 1.2, >= 1.2.1)
72
- builder (3.2.3)
73
- byebug (11.0.0)
74
- capybara (2.18.0)
75
- addressable
76
- mini_mime (>= 0.1.3)
77
- nokogiri (>= 1.3.3)
78
- rack (>= 1.0.0)
79
- rack-test (>= 0.5.4)
80
- xpath (>= 2.0, < 4.0)
81
- childprocess (0.9.0)
82
- ffi (~> 1.0, >= 1.0.11)
83
- coderay (1.1.2)
84
- coffee-script (2.4.1)
85
- coffee-script-source
86
- execjs
87
- coffee-script-source (1.12.2)
88
- concurrent-ruby (1.1.5)
89
- connection_pool (2.2.2)
90
- crass (1.0.4)
91
- daemons (1.3.1)
92
- database_cleaner (1.7.0)
93
- delayed_cron_job (0.7.2)
94
- delayed_job (>= 4.1)
95
- delayed_job (4.1.5)
96
- activesupport (>= 3.0, < 5.3)
97
- delayed_job_active_record (4.1.3)
98
- activerecord (>= 3.0, < 5.3)
99
- delayed_job (>= 3.0, < 5)
100
- delorean_lang (1.0.0)
101
- activerecord
102
- treetop
103
- diff-lcs (1.3)
104
- erubi (1.8.0)
105
- execjs (2.7.0)
106
- ffi (1.10.0)
107
- globalid (0.4.2)
108
- activesupport (>= 4.2.0)
109
- htmlentities (4.3.4)
110
- i18n (1.6.0)
111
- concurrent-ruby (~> 1.0)
112
- jaro_winkler (1.5.2)
113
- json-schema (2.8.1)
114
- addressable (>= 2.4)
115
- loofah (2.2.3)
116
- crass (~> 1.0.2)
117
- nokogiri (>= 1.5.9)
118
- mail (2.7.1)
119
- mini_mime (>= 0.1.1)
120
- marty_rspec (0.1)
121
- rspec-by
122
- mcfly (0.0.22)
123
- delorean_lang
124
- pg (~> 0.17)
125
- method_source (0.9.2)
126
- mime-types (2.99.3)
127
- mimemagic (0.3.3)
128
- mini_mime (1.0.1)
129
- mini_portile2 (2.4.0)
130
- minitest (5.11.3)
131
- net-ldap (0.16.1)
132
- netzke (6.5.0.0)
133
- netzke-basepack (= 6.5.0.0)
134
- netzke-core (= 6.5.0.0)
135
- netzke-testing (= 6.5.0.0)
136
- netzke-basepack (6.5.0.0)
137
- netzke-core (6.5.0.0)
138
- execjs
139
- mime-types (< 3)
140
- uglifier
141
- netzke-testing (6.5.0.0)
142
- coffee-script
143
- nio4r (2.3.1)
144
- nokogiri (1.10.1)
145
- mini_portile2 (~> 2.4.0)
146
- parallel (1.13.0)
147
- parser (2.6.0.0)
148
- ast (~> 2.4.0)
149
- pg (0.21.0)
150
- polyglot (0.3.5)
151
- powerpack (0.1.2)
152
- pry (0.12.2)
153
- coderay (~> 1.1.0)
154
- method_source (~> 0.9.0)
155
- pry-byebug (3.7.0)
156
- byebug (~> 11.0)
157
- pry (~> 0.10)
158
- pry-rails (0.3.9)
159
- pry (>= 0.10.4)
160
- public_suffix (3.0.3)
161
- rack (2.0.6)
162
- rack-test (1.1.0)
163
- rack (>= 1.0, < 3)
164
- rails (5.1.6.1)
165
- actioncable (= 5.1.6.1)
166
- actionmailer (= 5.1.6.1)
167
- actionpack (= 5.1.6.1)
168
- actionview (= 5.1.6.1)
169
- activejob (= 5.1.6.1)
170
- activemodel (= 5.1.6.1)
171
- activerecord (= 5.1.6.1)
172
- activesupport (= 5.1.6.1)
173
- bundler (>= 1.3.0)
174
- railties (= 5.1.6.1)
175
- sprockets-rails (>= 2.0.0)
176
- rails-controller-testing (1.0.4)
177
- actionpack (>= 5.0.1.x)
178
- actionview (>= 5.0.1.x)
179
- activesupport (>= 5.0.1.x)
180
- rails-dom-testing (2.0.3)
181
- activesupport (>= 4.2.0)
182
- nokogiri (>= 1.6)
183
- rails-html-sanitizer (1.0.4)
184
- loofah (~> 2.2, >= 2.2.2)
185
- railties (5.1.6.1)
186
- actionpack (= 5.1.6.1)
187
- activesupport (= 5.1.6.1)
188
- method_source
189
- rake (>= 0.8.7)
190
- thor (>= 0.18.1, < 2.0)
191
- rainbow (3.0.0)
192
- rake (12.3.2)
193
- rspec (3.8.0)
194
- rspec-core (~> 3.8.0)
195
- rspec-expectations (~> 3.8.0)
196
- rspec-mocks (~> 3.8.0)
197
- rspec-by (0.0.7)
198
- rspec-core (>= 3)
199
- rspec-core (3.8.0)
200
- rspec-support (~> 3.8.0)
201
- rspec-expectations (3.8.2)
202
- diff-lcs (>= 1.2.0, < 2.0)
203
- rspec-support (~> 3.8.0)
204
- rspec-instafail (1.0.0)
205
- rspec
206
- rspec-mocks (3.8.0)
207
- diff-lcs (>= 1.2.0, < 2.0)
208
- rspec-support (~> 3.8.0)
209
- rspec-rails (3.8.2)
210
- actionpack (>= 3.0)
211
- activesupport (>= 3.0)
212
- railties (>= 3.0)
213
- rspec-core (~> 3.8.0)
214
- rspec-expectations (~> 3.8.0)
215
- rspec-mocks (~> 3.8.0)
216
- rspec-support (~> 3.8.0)
217
- rspec-retry (0.6.1)
218
- rspec-core (> 3.3)
219
- rspec-support (3.8.0)
220
- rubocop (0.64.0)
221
- jaro_winkler (~> 1.5.1)
222
- parallel (~> 1.10)
223
- parser (>= 2.5, != 2.5.1.1)
224
- powerpack (~> 0.1)
225
- rainbow (>= 2.2.2, < 4.0)
226
- ruby-progressbar (~> 1.7)
227
- unicode-display_width (~> 1.4.0)
228
- ruby-progressbar (1.10.0)
229
- rubyzip (1.2.2)
230
- selenium-webdriver (3.141.0)
231
- childprocess (~> 0.5)
232
- rubyzip (~> 1.2, >= 1.2.2)
233
- sprockets (3.7.2)
234
- concurrent-ruby (~> 1.0)
235
- rack (> 1, < 3)
236
- sprockets-rails (3.2.1)
237
- actionpack (>= 4.0)
238
- activesupport (>= 4.0)
239
- sprockets (>= 3.0.0)
240
- sqlite3 (1.4.0)
241
- thor (0.20.3)
242
- thread_safe (0.3.6)
243
- timecop (0.9.1)
244
- treetop (1.6.10)
245
- polyglot (~> 0.3)
246
- tzinfo (1.2.5)
247
- thread_safe (~> 0.1)
248
- uglifier (4.1.20)
249
- execjs (>= 0.3.0, < 3)
250
- unicode-display_width (1.4.1)
251
- webdrivers (3.9.4)
252
- nokogiri (~> 1.6)
253
- rubyzip (~> 1.0)
254
- selenium-webdriver (~> 3.0)
255
- websocket-driver (0.6.5)
256
- websocket-extensions (>= 0.1.0)
257
- websocket-extensions (0.1.3)
258
- xpath (3.2.0)
259
- nokogiri (~> 1.8)
260
-
261
- PLATFORMS
262
- ruby
263
-
264
- DEPENDENCIES
265
- capybara (~> 2.18.0)
266
- connection_pool
267
- daemons
268
- database_cleaner
269
- delayed_job_active_record
270
- marty!
271
- marty_rspec
272
- mcfly
273
- netzke (= 6.5.0.0)
274
- pg
275
- pry-byebug
276
- pry-rails
277
- rails (~> 5.1.4)
278
- rails-controller-testing
279
- rspec-instafail
280
- rspec-rails
281
- rspec-retry
282
- rubocop
283
- selenium-webdriver
284
- sqlite3
285
- timecop
286
- webdrivers
287
-
288
- BUNDLED WITH
289
- 2.0.1