marty 2.5.2 → 2.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -0
  3. data/.rubocop.yml +7 -0
  4. data/.rubocop_todo.yml +11 -589
  5. data/Gemfile +9 -9
  6. data/Gemfile.lock +1 -1
  7. data/Rakefile +1 -3
  8. data/app/components/marty/api_auth_view.rb +3 -3
  9. data/app/components/marty/api_config_view.rb +8 -8
  10. data/app/components/marty/api_log_view.rb +16 -20
  11. data/app/components/marty/auth_app.rb +6 -6
  12. data/app/components/marty/base_rule_view.rb +27 -19
  13. data/app/components/marty/config_view.rb +12 -9
  14. data/app/components/marty/data_grid_view.rb +26 -26
  15. data/app/components/marty/delorean_rule_view.rb +0 -1
  16. data/app/components/marty/event_view.rb +27 -27
  17. data/app/components/marty/extras/layout.rb +26 -26
  18. data/app/components/marty/extras/misc.rb +2 -2
  19. data/app/components/marty/grid.rb +13 -13
  20. data/app/components/marty/grid_append_only.rb +0 -1
  21. data/app/components/marty/import_type_view.rb +13 -13
  22. data/app/components/marty/import_view.rb +17 -16
  23. data/app/components/marty/log_view.rb +16 -14
  24. data/app/components/marty/main_auth_app.rb +59 -59
  25. data/app/components/marty/main_auth_app/client/main_auth_app.js +3 -3
  26. data/app/components/marty/mcfly_grid_panel.rb +10 -10
  27. data/app/components/marty/new_posting_form.rb +11 -11
  28. data/app/components/marty/new_posting_window.rb +0 -1
  29. data/app/components/marty/posting_grid.rb +12 -13
  30. data/app/components/marty/promise_view.rb +6 -6
  31. data/app/components/marty/report_form.rb +50 -53
  32. data/app/components/marty/report_select.rb +27 -27
  33. data/app/components/marty/reporting.rb +4 -4
  34. data/app/components/marty/script_form.rb +40 -42
  35. data/app/components/marty/script_grid.rb +24 -24
  36. data/app/components/marty/script_tester.rb +40 -42
  37. data/app/components/marty/scripting.rb +25 -27
  38. data/app/components/marty/simple_app.rb +24 -9
  39. data/app/components/marty/tag_grid.rb +12 -13
  40. data/app/components/marty/user_view.rb +35 -35
  41. data/app/controllers/marty/application_controller.rb +3 -4
  42. data/app/controllers/marty/components_controller.rb +1 -1
  43. data/app/controllers/marty/delayed_job_controller.rb +1 -0
  44. data/app/controllers/marty/diagnostic/controller.rb +4 -6
  45. data/app/controllers/marty/job_controller.rb +6 -6
  46. data/app/controllers/marty/report_controller.rb +11 -11
  47. data/app/controllers/marty/rpc_controller.rb +15 -16
  48. data/app/helpers/marty/script_set.rb +4 -4
  49. data/app/models/marty/api_auth.rb +4 -5
  50. data/app/models/marty/api_config.rb +1 -1
  51. data/app/models/marty/base.rb +9 -8
  52. data/app/models/marty/base_rule.rb +18 -13
  53. data/app/models/marty/config.rb +4 -5
  54. data/app/models/marty/data_grid.rb +157 -181
  55. data/app/models/marty/delorean_rule.rb +63 -62
  56. data/app/models/marty/enum.rb +1 -1
  57. data/app/models/marty/event.rb +56 -59
  58. data/app/models/marty/helper.rb +38 -6
  59. data/app/models/marty/import_type.rb +6 -6
  60. data/app/models/marty/log.rb +3 -2
  61. data/app/models/marty/name_validator.rb +3 -2
  62. data/app/models/marty/pg_enum.rb +3 -4
  63. data/app/models/marty/posting.rb +20 -24
  64. data/app/models/marty/promise.rb +28 -30
  65. data/app/models/marty/script.rb +30 -28
  66. data/app/models/marty/tag.rb +8 -8
  67. data/app/models/marty/token.rb +2 -2
  68. data/app/models/marty/user.rb +24 -23
  69. data/app/models/marty/vw_promise.rb +10 -11
  70. data/config/routes.rb +2 -2
  71. data/delorean/blame_report.dl +268 -0
  72. data/{spec/dummy/delorean/fields.dl → delorean/marty_fields.dl} +8 -0
  73. data/delorean/table_report.dl +34 -0
  74. data/docker-compose.dummy.yml +2 -3
  75. data/lib/marty/aws/base.rb +8 -8
  76. data/lib/marty/aws/request.rb +4 -4
  77. data/lib/marty/cache_adapters/mcfly_ruby_cache.rb +1 -0
  78. data/lib/marty/content_handler.rb +25 -25
  79. data/lib/marty/data_change.rb +49 -71
  80. data/lib/marty/data_conversion.rb +20 -28
  81. data/lib/marty/data_exporter.rb +25 -28
  82. data/lib/marty/data_importer.rb +25 -27
  83. data/lib/marty/engine.rb +1 -2
  84. data/lib/marty/json_schema.rb +22 -24
  85. data/lib/marty/logger.rb +6 -9
  86. data/lib/marty/mcfly_model.rb +20 -24
  87. data/lib/marty/migrations.rb +37 -35
  88. data/lib/marty/monkey.rb +33 -33
  89. data/lib/marty/permissions.rb +18 -18
  90. data/lib/marty/promise_job.rb +17 -17
  91. data/lib/marty/promise_proxy.rb +6 -6
  92. data/lib/marty/relation.rb +6 -7
  93. data/lib/marty/rpc_call.rb +13 -12
  94. data/lib/marty/rule_script_set.rb +32 -28
  95. data/lib/marty/schema_helper.rb +37 -51
  96. data/lib/marty/util.rb +25 -24
  97. data/lib/marty/version.rb +1 -1
  98. data/lib/marty/xl.rb +121 -115
  99. data/make-dummy.mk +3 -0
  100. data/marty.gemspec +21 -21
  101. data/other/marty/api/base.rb +34 -35
  102. data/other/marty/diagnostic/aws/ec2_instance.rb +8 -8
  103. data/other/marty/diagnostic/base.rb +13 -14
  104. data/other/marty/diagnostic/collection.rb +2 -1
  105. data/other/marty/diagnostic/connections.rb +8 -6
  106. data/other/marty/diagnostic/database.rb +1 -0
  107. data/other/marty/diagnostic/delayed_job_version.rb +7 -9
  108. data/other/marty/diagnostic/delayed_job_worker_total_count.rb +1 -1
  109. data/other/marty/diagnostic/delayed_job_workers.rb +1 -1
  110. data/other/marty/diagnostic/environment_variables.rb +17 -15
  111. data/other/marty/diagnostic/fatal.rb +1 -1
  112. data/other/marty/diagnostic/node.rb +5 -9
  113. data/other/marty/diagnostic/nodes.rb +7 -5
  114. data/other/marty/diagnostic/packer.rb +7 -7
  115. data/other/marty/diagnostic/reporter.rb +24 -27
  116. data/other/marty/diagnostic/version.rb +3 -5
  117. data/script/rails +2 -1
  118. data/spec/controllers/application_controller_spec.rb +6 -6
  119. data/spec/controllers/delayed_job_controller_spec.rb +4 -4
  120. data/spec/controllers/diagnostic/controller_spec.rb +59 -60
  121. data/spec/controllers/job_controller_spec.rb +68 -69
  122. data/spec/controllers/rpc_controller_spec.rb +353 -359
  123. data/spec/controllers/rpc_import_spec.rb +15 -16
  124. data/spec/dummy/delorean/blame_report.dl +110 -15
  125. data/spec/dummy/delorean/data_report.dl +4 -4
  126. data/spec/dummy/delorean/marty_fields.dl +63 -0
  127. data/spec/dummy/delorean/table_report.dl +34 -0
  128. data/spec/features/auth_app_spec.rb +1 -2
  129. data/spec/features/data_import_spec.rb +2 -3
  130. data/spec/features/enum_spec.rb +42 -46
  131. data/spec/features/jobs_dashboard_spec.rb +14 -8
  132. data/spec/features/log_view_spec.rb +40 -43
  133. data/spec/features/reporting_spec.rb +15 -15
  134. data/spec/features/rule_spec.rb +195 -190
  135. data/spec/features/scripting_spec.rb +17 -20
  136. data/spec/features/scripting_test_spec.rb +32 -33
  137. data/spec/features/user_view_spec.rb +15 -17
  138. data/spec/job_helper.rb +11 -11
  139. data/spec/lib/data_blame_spec.rb +82 -0
  140. data/spec/lib/data_exporter_spec.rb +31 -32
  141. data/spec/lib/data_importer_spec.rb +382 -395
  142. data/spec/lib/delorean_query_spec.rb +117 -119
  143. data/spec/lib/json_schema_spec.rb +382 -392
  144. data/spec/lib/logger_spec.rb +23 -24
  145. data/spec/lib/mcfly_model_spec.rb +112 -109
  146. data/spec/lib/migrations_spec.rb +10 -10
  147. data/spec/lib/struct_compare_spec.rb +6 -6
  148. data/spec/lib/table_report_spec.rb +90 -0
  149. data/spec/lib/xl_spec.rb +63 -65
  150. data/spec/lib/xl_styles_spec.rb +16 -19
  151. data/spec/models/api_auth_spec.rb +30 -30
  152. data/spec/models/config_spec.rb +32 -32
  153. data/spec/models/data_grid_spec.rb +642 -655
  154. data/spec/models/event_spec.rb +96 -88
  155. data/spec/models/import_type_spec.rb +20 -20
  156. data/spec/models/posting_spec.rb +35 -35
  157. data/spec/models/promise_spec.rb +5 -5
  158. data/spec/models/rule_spec.rb +280 -269
  159. data/spec/models/script_spec.rb +27 -18
  160. data/spec/models/user_spec.rb +9 -9
  161. data/spec/other/diagnostic/base_spec.rb +20 -19
  162. data/spec/other/diagnostic/collection_spec.rb +6 -5
  163. data/spec/other/diagnostic/delayed_job_version_spec.rb +1 -1
  164. data/spec/other/diagnostic/delayed_job_workers_spec.rb +8 -8
  165. data/spec/other/diagnostic/reporter_spec.rb +31 -33
  166. data/spec/spec_helper.rb +5 -5
  167. data/spec/support/chromedriver.rb +3 -5
  168. data/spec/support/components/netzke_combobox.rb +1 -1
  169. data/spec/support/components/netzke_grid.rb +17 -17
  170. data/spec/support/custom_matchers.rb +2 -2
  171. data/spec/support/download_helper.rb +1 -1
  172. data/spec/support/helper.rb +1 -2
  173. data/spec/support/netzke.rb +31 -31
  174. data/spec/support/performance_helper.rb +8 -8
  175. data/spec/support/post_run_logger.rb +1 -2
  176. data/spec/support/setup.rb +1 -4
  177. data/spec/support/shared_connection.rb +2 -2
  178. data/spec/support/structure_compare.rb +21 -22
  179. data/spec/support/suite.rb +1 -2
  180. data/spec/support/users.rb +5 -6
  181. metadata +32 -26
@@ -1,5 +1,5 @@
1
- ENV["RAILS_ENV"] ||= "test"
2
- ENV["TZ"] ||= "America/Los_Angeles"
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ ENV['TZ'] ||= 'America/Los_Angeles'
3
3
 
4
4
  require 'dummy/config/application'
5
5
  require 'rspec/rails'
@@ -11,15 +11,15 @@ 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::Migrator.migrate File.expand_path('../../db/migrate/', __FILE__)
15
+ ActiveRecord::Migrator.migrate File.expand_path('../dummy/db/migrate/', __FILE__)
16
16
 
17
17
  RSpec.configure do |config|
18
18
  config.include Marty::RSpec::Suite
19
19
  config.include Marty::RSpec::SharedConnection
20
20
  config.include Marty::RSpec::SharedConnectionDbHelpers
21
21
 
22
- #RspecMarty::SharedConnection.classes_to_exclude_shared = ['Marty::Log']
22
+ # RspecMarty::SharedConnection.classes_to_exclude_shared = ['Marty::Log']
23
23
  Capybara.default_max_wait_time = 3
24
24
 
25
25
  # TODO: Continue to remove should syntax from specs - remove this line to see
@@ -2,12 +2,12 @@ require 'selenium-webdriver'
2
2
  require Pathname.new(__FILE__).parent.to_s + '/download_helper'
3
3
 
4
4
  module Marty; module RSpec; module Chromedriver
5
- def self.register_chrome_driver driver= :chrome, opts={}
5
+ def self.register_chrome_driver driver = :chrome, opts = {}
6
6
  Capybara.register_driver driver do |app|
7
7
  copts = {
8
8
  chromeOptions: opts.deep_merge(
9
- prefs: {'download.default_directory' =>
10
- Marty::RSpec::DownloadHelper::PATH.to_s}),
9
+ prefs: { 'download.default_directory' =>
10
+ Marty::RSpec::DownloadHelper::PATH.to_s }),
11
11
  pageLoadStrategy: 'none',
12
12
  }
13
13
 
@@ -26,7 +26,6 @@ module Marty; module RSpec; module Chromedriver
26
26
  headless_args = ['no-sandbox', 'headless', 'disable-gpu', "window-size=#{window_size}"]
27
27
 
28
28
  register_chrome_driver(:headless_chrome, args: headless_args) do |driver|
29
-
30
29
  # workaround to enable downloading with headless chrome
31
30
  bridge = driver.browser.send(:bridge)
32
31
  bridge.http.call(:post,
@@ -41,5 +40,4 @@ module Marty; module RSpec; module Chromedriver
41
40
  Capybara.default_driver = :chrome
42
41
  Capybara.javascript_driver = ENV['HEADLESS'] == 'true' ?
43
42
  :headless_chrome : :chrome
44
-
45
43
  end end end
@@ -6,7 +6,7 @@ module Marty; module RSpec; module Components
6
6
  class NetzkeCombobox
7
7
  include Netzke
8
8
  include Capybara::DSL
9
- #include RSpec::Matchers
9
+ # include RSpec::Matchers
10
10
 
11
11
  attr_reader :name, :combobox
12
12
 
@@ -6,7 +6,7 @@ module Marty; module RSpec; module Components
6
6
  class NetzkeGrid
7
7
  include Netzke
8
8
  include Capybara::DSL
9
- #include RSpec::Matchers
9
+ # include RSpec::Matchers
10
10
 
11
11
  attr_reader :name, :grid
12
12
 
@@ -53,7 +53,7 @@ module Marty; module RSpec; module Components
53
53
 
54
54
  def data_desc row
55
55
  res = run_js <<-JS
56
- var r = #{grid}.getStore().getAt(#{row.to_i-1});
56
+ var r = #{grid}.getStore().getAt(#{row.to_i - 1});
57
57
  return r.data.desc
58
58
  JS
59
59
  res.gsub(/<.*?>/, '')
@@ -65,10 +65,10 @@ module Marty; module RSpec; module Components
65
65
  return #{ext_find(ext_arg('gridcolumn', text: col), 'grid')}.id
66
66
  JS
67
67
 
68
- find("#" + el).click
68
+ find('#' + el).click
69
69
  end
70
70
 
71
- def get_col_vals(col, cnt=row_count, init=0)
71
+ def get_col_vals(col, cnt = row_count, init = 0)
72
72
  # NOTE: does not validate the # of rows
73
73
  run_js <<-JS
74
74
  var result = [];
@@ -84,7 +84,7 @@ module Marty; module RSpec; module Components
84
84
  JS
85
85
  end
86
86
 
87
- def validate_col_vals(col, val, cnt, init=0)
87
+ def validate_col_vals(col, val, cnt, init = 0)
88
88
  run_js <<-JS
89
89
  for (var i = #{init}; i < #{init.to_i + cnt.to_i}; i++) {
90
90
  #{ext_cell_val('i', col, grid)}
@@ -101,20 +101,20 @@ module Marty; module RSpec; module Components
101
101
  JS
102
102
  end
103
103
 
104
- def select_row(row, click_after=true)
104
+ def select_row(row, click_after = true)
105
105
  resid = run_js(<<-JS, 10.0)
106
106
  #{ext_var(grid, 'grid')}
107
- grid.getSelectionModel().select(#{row.to_i-1});
108
- return grid.getView().getNode(#{row.to_i-1}).id;
107
+ grid.getSelectionModel().select(#{row.to_i - 1});
108
+ return grid.getView().getNode(#{row.to_i - 1}).id;
109
109
  JS
110
110
  el = find_by_id(resid)
111
111
  el.click if click_after
112
112
  wait_for_ajax
113
- return el
113
+ el
114
114
  end
115
115
 
116
116
  def set_row_vals row, fields
117
- js_set_fields = fields.each_pair.map do |k,v|
117
+ js_set_fields = fields.each_pair.map do |k, v|
118
118
  "r.set('#{k}', '#{v}');"
119
119
  end.join
120
120
 
@@ -124,14 +124,14 @@ module Marty; module RSpec; module Components
124
124
  JS
125
125
  end
126
126
 
127
- def get_row_vals row, fields=nil
127
+ def get_row_vals row, fields = nil
128
128
  res = run_js <<-JS
129
129
  #{ext_var(grid, 'grid')}
130
130
  return Ext.encode(#{ext_row(row.to_i - 1, 'grid')}.data);
131
131
  JS
132
132
  temp = JSON.parse(res)
133
133
  parsed = temp.merge(temp.delete('association_values') || {})
134
- fields ? fields.each_with_object({}).each{|k,h| h[k] = parsed[k]} :
134
+ fields ? fields.each_with_object({}).each { |k, h| h[k] = parsed[k] } :
135
135
  parsed
136
136
  end
137
137
 
@@ -201,7 +201,7 @@ module Marty; module RSpec; module Components
201
201
  #{ext_var(ext_netzkecombo(field), 'combo')}
202
202
  #{ext_var(ext_celleditor, 'editor')}
203
203
 
204
- editor.startEditByPosition({ row:#{row.to_i-1},
204
+ editor.startEditByPosition({ row:#{row.to_i - 1},
205
205
  column:grid.headerCt.items.findIndex('name', '#{field}') });
206
206
 
207
207
  var now = new Date().getTime();
@@ -216,7 +216,7 @@ module Marty; module RSpec; module Components
216
216
  #{ext_var(grid, 'grid')}
217
217
  #{ext_var(ext_celleditor, 'editor')}
218
218
 
219
- editor.startEditByPosition({ row:#{row.to_i-1},
219
+ editor.startEditByPosition({ row:#{row.to_i - 1},
220
220
  column:grid.headerCt.items.findIndex('name', '#{field}') });
221
221
  return editor.activeEditor.field.inputId;
222
222
  JS
@@ -237,7 +237,7 @@ module Marty; module RSpec; module Components
237
237
  #{ext_var(grid, 'grid')}
238
238
  #{ext_var(ext_celleditor, 'editor')}
239
239
 
240
- editor.startEditByPosition({ row:#{row.to_i-1},
240
+ editor.startEditByPosition({ row:#{row.to_i - 1},
241
241
  column:grid.headerCt.items.findIndex('name', '#{field}') });
242
242
  return editor.activeEditor.field.getItemId();
243
243
  JS
@@ -323,7 +323,7 @@ module Marty; module RSpec; module Components
323
323
  #{ext_var(ext_netzkecombo(field), 'combo')}
324
324
  #{ext_var(ext_celleditor, 'editor')}
325
325
 
326
- editor.startEditByPosition({ row:#{row.to_i-1},
326
+ editor.startEditByPosition({ row:#{row.to_i - 1},
327
327
  column:grid.headerCt.items.findIndex('name', '#{field}') });
328
328
 
329
329
  var now = new Date().getTime();
@@ -339,7 +339,7 @@ module Marty; module RSpec; module Components
339
339
  #{ext_combo(field, 'combo')}
340
340
  #{ext_var(ext_celleditor, 'editor')}
341
341
 
342
- editor.startEditByPosition({ row:#{row.to_i-1},
342
+ editor.startEditByPosition({ row:#{row.to_i - 1},
343
343
  column:grid.headerCt.items.findIndex('name', '#{field}') });
344
344
  JS
345
345
  end
@@ -2,8 +2,8 @@ require 'rspec'
2
2
 
3
3
  RSpec::Matchers.define :netzke_include do |expected|
4
4
  match do |actual|
5
- parsed_values = actual.each_with_object({}) do | (k, v), h |
6
- h[k] = v == "False" ? false : v
5
+ parsed_values = actual.each_with_object({}) do |(k, v), h|
6
+ h[k] = v == 'False' ? false : v
7
7
  end
8
8
  expect(parsed_values).to include(expected.stringify_keys)
9
9
  end
@@ -7,7 +7,7 @@ module Marty::RSpec::DownloadHelper
7
7
  extend self
8
8
 
9
9
  def downloads
10
- Dir[PATH.join("*")]
10
+ Dir[PATH.join('*')]
11
11
  end
12
12
 
13
13
  def download
@@ -6,8 +6,7 @@ module Marty; module RSpec;
6
6
  # Helper function which increments a global counter. Can be used by
7
7
  # tests which run Delorean code to see how many times some code is
8
8
  # being called. Works for rule scripts as well.
9
- delorean_fn :global_inc, sig: 1 do
10
- |inc|
9
+ delorean_fn :global_inc, sig: 1 do |inc|
11
10
  @@global_inc ||= 0
12
11
 
13
12
  if inc
@@ -1,7 +1,7 @@
1
1
  module Marty; module RSpec; module Netzke
2
2
  MAX_WAIT_TIME = 5.0
3
3
 
4
- def by message, level=0
4
+ def by message, level = 0
5
5
  wait_for_ready(10)
6
6
  pending(message) unless block_given?
7
7
  yield
@@ -25,39 +25,39 @@ module Marty; module RSpec; module Netzke
25
25
  log_out
26
26
  wait_for_ajax
27
27
  end
28
- rescue
28
+ rescue StandardError
29
29
  # ignore error
30
30
  end
31
31
 
32
- find(:xpath, "//span", text: 'Sign in', match: :first, wait: 5).click
33
- fill_in("login", :with => username)
34
- fill_in("password", :with => password)
35
- press("OK")
32
+ find(:xpath, '//span', text: 'Sign in', match: :first, wait: 5).click
33
+ fill_in('login', :with => username)
34
+ fill_in('password', :with => password)
35
+ press('OK')
36
36
  wait_for_ajax
37
37
  end
38
38
 
39
39
  def log_in_as(username)
40
40
  Rails.configuration.marty.auth_source = 'local'
41
41
 
42
- ensure_on("/")
42
+ ensure_on('/')
43
43
  log_in(username, Rails.configuration.marty.local_password)
44
- ensure_on("/")
44
+ ensure_on('/')
45
45
  end
46
46
 
47
47
  def log_out
48
- press("Current user")
49
- press("Sign out")
48
+ press('Current user')
49
+ press('Sign out')
50
50
  end
51
51
 
52
52
  def press button_name, index_of = 0
53
53
  wait_for_element do
54
54
  begin
55
55
  cmp = first("a[data-qtip='#{button_name}']")
56
- cmp ||= first(:xpath, ".//a", text: "#{button_name}")
56
+ cmp ||= first(:xpath, './/a', text: button_name.to_s)
57
57
  cmp ||= find(:btn, button_name, match: :first)
58
58
  cmp.click
59
59
  true
60
- rescue
60
+ rescue StandardError
61
61
  find_by_id(ext_button_id(button_name, index_of), visible: :all).click
62
62
  true
63
63
  end
@@ -104,7 +104,7 @@ module Marty; module RSpec; module Netzke
104
104
  while !res && current_time - start_time < seconds_to_wait
105
105
  begin
106
106
  res = yield
107
- rescue
107
+ rescue StandardError
108
108
  ensure
109
109
  sleep sleeptime
110
110
  current_time = Time.now
@@ -152,9 +152,9 @@ module Marty; module RSpec; module Netzke
152
152
  JS
153
153
  end
154
154
 
155
- def set_field_value value, field_type='textfield', name=''
156
- args1 = name.empty? ? "" : "[fieldLabel='#{name}']"
157
- args2 = name.empty? ? "" : "[name='#{name}']"
155
+ def set_field_value value, field_type = 'textfield', name = ''
156
+ args1 = name.empty? ? '' : "[fieldLabel='#{name}']"
157
+ args2 = name.empty? ? '' : "[name='#{name}']"
158
158
  run_js <<-JS
159
159
  var field = Ext.ComponentQuery.query("#{field_type}#{args1}")[0];
160
160
  field = field || Ext.ComponentQuery.query("#{field_type}#{args2}")[0];
@@ -209,31 +209,31 @@ module Marty; module RSpec; module Netzke
209
209
  def press_key_in(key, el_id)
210
210
  kd = key.downcase
211
211
  use_key = ['enter', 'return'].include?(kd) ? kd.to_sym : key
212
- el = find_by_id("#{el_id}")
212
+ el = find_by_id(el_id.to_s)
213
213
  el.native.send_keys(use_key)
214
214
  end
215
215
 
216
216
  def simple_escape! text
217
- text.gsub!(/(\r\n|\n)/, "\\n")
218
- text.gsub!(/\t/, "\\t")
217
+ text.gsub!(/(\r\n|\n)/, '\\n')
218
+ text.gsub!(/\t/, '\\t')
219
219
  end
220
220
 
221
221
  def simple_escape text
222
- text.gsub(/(\r\n|\n)/, "\\n")
223
- .gsub(/\t/, "\\t")
224
- .gsub(/"/, '\"')
222
+ text.gsub(/(\r\n|\n)/, '\\n').
223
+ gsub(/\t/, '\\t').
224
+ gsub(/"/, '\"')
225
225
  end
226
226
 
227
- def type_in(type_s, el_id)
228
- el = find_by_id("#{el_id}")
229
- el.native.clear()
227
+ def type_in(type_s, el_id, enter: false)
228
+ el = find_by_id(el_id.to_s)
230
229
  type_s.each_char do |key|
231
230
  el.native.send_keys(key)
232
231
  end
233
- el.send_keys(:enter)
232
+ el.send_keys(:enter) if enter
234
233
  end
235
234
 
236
235
  private
236
+
237
237
  ############################################################################
238
238
  # ExtJS/Netzke helper javascripts:
239
239
  # Netzke component lookups, arguments for helper methods
@@ -255,7 +255,7 @@ module Marty; module RSpec; module Netzke
255
255
  JS
256
256
  end
257
257
 
258
- def ext_var(ext_find_str, var_name='ext_c')
258
+ def ext_var(ext_find_str, var_name = 'ext_c')
259
259
  <<-JS
260
260
  var #{var_name} = #{ext_find_str};
261
261
  JS
@@ -267,7 +267,7 @@ module Marty; module RSpec; module Netzke
267
267
  JS
268
268
  end
269
269
 
270
- def ext_combo combo_label, c_name='combo'
270
+ def ext_combo combo_label, c_name = 'combo'
271
271
  <<-JS
272
272
  #{ext_var(ext_find(ext_arg('combobox', fieldLabel: combo_label)), c_name)}
273
273
  #{c_name} = #{c_name} ||
@@ -275,19 +275,19 @@ module Marty; module RSpec; module Netzke
275
275
  JS
276
276
  end
277
277
 
278
- def ext_celleditor(grid_name='grid')
278
+ def ext_celleditor(grid_name = 'grid')
279
279
  <<-JS
280
280
  #{grid_name}.getPlugin('celleditor')
281
281
  JS
282
282
  end
283
283
 
284
- def ext_row(row, grid_name='grid')
284
+ def ext_row(row, grid_name = 'grid')
285
285
  <<-JS
286
286
  #{grid_name}.getStore().getAt(#{row})
287
287
  JS
288
288
  end
289
289
 
290
- def ext_col(col, grid_name='grid')
290
+ def ext_col(col, grid_name = 'grid')
291
291
  <<-JS
292
292
  #{ext_find(ext_arg('gridcolumn', name: "\"#{col}\""), grid_name)}
293
293
  JS
@@ -4,22 +4,22 @@ module Marty; module RSpec; module PerformanceHelper
4
4
  include Marty::RSpec::PostRunLogger
5
5
 
6
6
  def calculate_baseline iterations
7
- Benchmark.measure {
8
- ActiveRecord::Base.uncached {(0...iterations).each { yield }}
9
- }
7
+ Benchmark.measure do
8
+ ActiveRecord::Base.uncached { (0...iterations).each { yield } }
9
+ end
10
10
  end
11
11
 
12
- def compare_baseline baseline, timings, opts={}
13
- result_time = timings.map{|t| t.total}.sum
12
+ def compare_baseline baseline, timings, opts = {}
13
+ result_time = timings.map(&:total).sum
14
14
  factor = result_time / baseline.total
15
15
 
16
16
  lb = opts.delete(:lower_bound) || 1.5
17
17
  ub = opts.delete(:upper_bound) || 5.0
18
18
 
19
- post_run_log ' '+'-'*45,
20
- " baseline: %.2f, result: %.2f, factor: %.2f" %
19
+ post_run_log ' ' + '-' * 45,
20
+ ' baseline: %.2f, result: %.2f, factor: %.2f' %
21
21
  [baseline.total, result_time, factor],
22
- ' '+'-'*45
22
+ ' ' + '-' * 45
23
23
 
24
24
  expect(result_time).to be_between(baseline.total * lb, baseline.total * ub)
25
25
  end
@@ -12,7 +12,7 @@ module Marty; module RSpec; module PostRunLogger
12
12
  def self.store_data(name, line)
13
13
  data << " #{test_number}) #{name}"
14
14
  data << Array(line).map { |string| " #{string}" }
15
- data << ""
15
+ data << ''
16
16
  end
17
17
 
18
18
  def self.dump_data
@@ -21,7 +21,6 @@ module Marty; module RSpec; module PostRunLogger
21
21
  puts data
22
22
  end
23
23
  end
24
-
25
24
  end
26
25
 
27
26
  def post_run_log(*log_string)
@@ -1,5 +1,4 @@
1
1
  module Marty; module RSpec; module Setup
2
-
3
2
  def marty_whodunnit
4
3
  Mcfly.whodunnit = Marty::User.find_by_login('marty')
5
4
  end
@@ -23,14 +22,12 @@ module Marty; module RSpec; module Setup
23
22
  end
24
23
 
25
24
  def disable_triggers(table_name, &block)
26
- begin
27
25
  ActiveRecord::Base.connection.
28
26
  execute("ALTER TABLE #{table_name} DISABLE TRIGGER USER;")
29
27
 
30
28
  block.call
31
- ensure
29
+ ensure
32
30
  ActiveRecord::Base.connection.
33
31
  execute("ALTER TABLE #{table_name} ENABLE TRIGGER USER;")
34
- end
35
32
  end
36
33
  end end end