marty 3.0.1 → 3.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 (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