marty 9.3.0 → 9.3.2

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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/.gemignore +2 -0
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +34 -1
  5. data/Gemfile +1 -0
  6. data/Rakefile +10 -0
  7. data/app/assets/javascripts/marty/cable.js +21 -9
  8. data/app/channels/application_cable/connection.rb +1 -1
  9. data/app/channels/marty/notification_channel.rb +4 -1
  10. data/app/components/marty/api_config_view.rb +1 -1
  11. data/app/components/marty/api_log_view.rb +1 -1
  12. data/app/components/marty/auth_app.rb +8 -1
  13. data/app/components/marty/auth_app/client/auth_app.js +6 -0
  14. data/app/components/marty/data_grid_view.rb +6 -6
  15. data/app/components/marty/extras/misc.rb +1 -1
  16. data/app/components/marty/log_view.rb +1 -1
  17. data/app/components/marty/posting_grid.rb +1 -1
  18. data/app/components/marty/script_form.rb +3 -3
  19. data/app/components/marty/user_view.rb +1 -1
  20. data/app/components/marty/users/user_view.rb +1 -1
  21. data/app/controllers/marty/application_controller.rb +7 -7
  22. data/app/controllers/marty/delayed_job_controller.rb +7 -4
  23. data/app/controllers/marty/diagnostic/controller.rb +1 -1
  24. data/app/controllers/marty/job_controller.rb +2 -2
  25. data/app/models/marty/api_auth.rb +3 -3
  26. data/app/models/marty/api_config.rb +1 -1
  27. data/app/models/marty/base_rule.rb +1 -1
  28. data/app/models/marty/config.rb +5 -5
  29. data/app/models/marty/data_grid.rb +3 -3
  30. data/app/models/marty/delorean_rule.rb +2 -2
  31. data/app/models/marty/grid_index_boolean.rb +2 -2
  32. data/app/models/marty/grid_index_int4range.rb +1 -1
  33. data/app/models/marty/grid_index_integer.rb +1 -1
  34. data/app/models/marty/grid_index_numrange.rb +1 -1
  35. data/app/models/marty/grid_index_string.rb +1 -1
  36. data/app/models/marty/import_type.rb +2 -2
  37. data/app/models/marty/notifications/notification.rb +2 -1
  38. data/app/models/marty/posting.rb +6 -6
  39. data/app/models/marty/posting_type.rb +2 -2
  40. data/app/models/marty/promise.rb +4 -3
  41. data/app/models/marty/script.rb +7 -7
  42. data/app/models/marty/tag.rb +5 -5
  43. data/app/models/marty/token.rb +1 -1
  44. data/app/models/marty/user.rb +11 -10
  45. data/app/models/marty/user_role.rb +2 -2
  46. data/app/models/marty/vw_promise.rb +2 -1
  47. data/app/services/marty/background_job/update_schedule.rb +1 -1
  48. data/app/services/marty/data_grid/constraint.rb +4 -3
  49. data/app/services/marty/jobs/schedule.rb +2 -2
  50. data/lib/marty/data_change.rb +1 -1
  51. data/lib/marty/data_conversion.rb +1 -1
  52. data/lib/marty/migrations.rb +2 -2
  53. data/lib/marty/rpc_call.rb +2 -1
  54. data/lib/marty/rule_script_set.rb +1 -3
  55. data/lib/marty/util.rb +2 -2
  56. data/lib/marty/version.rb +1 -1
  57. data/lib/tasks/scripts_tasks.rake +2 -2
  58. data/marty.gemspec +5 -1
  59. data/spec/controllers/job_controller_spec.rb +7 -7
  60. data/spec/controllers/rpc_controller_spec.rb +8 -8
  61. data/spec/controllers/rpc_import_spec.rb +3 -3
  62. data/spec/features/data_blame_report_spec.rb +1 -1
  63. data/spec/features/data_grid_spec.rb +101 -3
  64. data/spec/features/enum_values_report_spec.rb +1 -1
  65. data/spec/features/extjs_spec.rb +1 -1
  66. data/spec/features/jobs_dashboard_spec.rb +2 -2
  67. data/spec/features/log_view_spec.rb +1 -1
  68. data/spec/features/reporting_spec.rb +3 -3
  69. data/spec/features/scripting_spec.rb +3 -3
  70. data/spec/features/scripting_test_spec.rb +3 -3
  71. data/spec/features/user_list_report_spec.rb +1 -1
  72. data/spec/fixtures/misc/data_grid_6.txt +9 -0
  73. data/spec/fixtures/misc/data_grid_7.txt +7 -0
  74. data/spec/fixtures/misc/data_grid_8.txt +10 -0
  75. data/spec/fixtures/misc/data_grid_9.txt +10 -0
  76. data/spec/lib/data_blame_spec.rb +1 -1
  77. data/spec/lib/data_importer_spec.rb +4 -4
  78. data/spec/lib/delorean_query_spec.rb +1 -1
  79. data/spec/lib/logger_spec.rb +1 -1
  80. data/spec/lib/mcfly_model_spec.rb +2 -2
  81. data/spec/lib/table_report_spec.rb +1 -1
  82. data/spec/models/api_auth_spec.rb +2 -2
  83. data/spec/models/data_grid_spec.rb +3 -3
  84. data/spec/models/posting_spec.rb +12 -12
  85. data/spec/models/promise_spec.rb +1 -1
  86. data/spec/models/rule_spec.rb +1 -1
  87. data/spec/models/script_spec.rb +1 -1
  88. data/spec/other/diagnostic/delayed_job_version_spec.rb +1 -1
  89. data/spec/spec_helper.rb +3 -0
  90. data/spec/support/netzke.rb +2 -2
  91. data/spec/support/setup.rb +1 -1
  92. data/spec/support/simplecov_helper.rb +94 -0
  93. data/spec/support/users.rb +2 -2
  94. metadata +8 -3
  95. data/.gitlab-ci.yml +0 -117
@@ -69,7 +69,7 @@ class Marty::BaseRule < Marty::Base
69
69
  "- Error in rule '#{name}' field 'results': #{res_err.capitalize}" if res_err
70
70
  end
71
71
 
72
- validates_presence_of :name
72
+ validates :name, presence: true
73
73
  validate :validate
74
74
  validate :validate_simple_guard_options
75
75
 
@@ -7,8 +7,8 @@ class Marty::Config < Marty::Base
7
7
  end
8
8
  end
9
9
 
10
- validates_presence_of :key, :value
11
- validates_uniqueness_of :key
10
+ validates :key, :value, presence: true
11
+ validates :key, uniqueness: true
12
12
  validates_with ConfigValidator
13
13
 
14
14
  delorean_fn :lookup, sig: 1 do |key|
@@ -29,7 +29,7 @@ class Marty::Config < Marty::Base
29
29
  "(given #{args.size}, expected 1..2)"
30
30
  end
31
31
 
32
- entry = find_by_key(args[0])
32
+ entry = find_by(key: args[0])
33
33
  return entry.get_value if entry
34
34
  return args[1] if args.size > 1
35
35
 
@@ -37,7 +37,7 @@ class Marty::Config < Marty::Base
37
37
  end
38
38
 
39
39
  def self.[]=(key, value)
40
- entry = find_by_key(key)
40
+ entry = find_by(key: key)
41
41
  if !entry
42
42
  entry = new
43
43
  entry.key = key
@@ -53,7 +53,7 @@ class Marty::Config < Marty::Base
53
53
  end
54
54
 
55
55
  def self.del(key)
56
- entry = find_by_key(key)
56
+ entry = find_by(key: key)
57
57
  if entry
58
58
  result = entry.get_value
59
59
  entry.destroy
@@ -35,7 +35,7 @@ class Marty::DataGrid < Marty::Base
35
35
  attr, type, keys, rs_keep =
36
36
  inf['attr'], inf['type'], inf['keys'], inf['rs_keep']
37
37
 
38
- unless rs_keep.nil? || rs_keep.empty?
38
+ if rs_keep.present?
39
39
  m = /\A *(<|<=|>|>=)? *([a-z][a-z_0-9]+) *\z/.match(rs_keep)
40
40
  unless m
41
41
  dg.errors.add(:base, "invalid grid modifier expression: #{rs_keep}")
@@ -81,7 +81,7 @@ class Marty::DataGrid < Marty::Base
81
81
  end
82
82
  data_check = Marty::DataGrid::Constraint.check_data(dg.data_type,
83
83
  dg.data, con_chk)
84
- return unless data_check.present?
84
+ return if data_check.blank?
85
85
 
86
86
  data_check.each do |(err, x, y)|
87
87
  dg.errors.add(:base, "cell #{x}, #{y} fails constraint check") if
@@ -94,7 +94,7 @@ class Marty::DataGrid < Marty::Base
94
94
 
95
95
  has_mcfly
96
96
 
97
- validates_presence_of :name, :data, :metadata
97
+ validates :name, :data, :metadata, presence: true
98
98
 
99
99
  mcfly_validates_uniqueness_of :name
100
100
  validates_with DataGridValidator
@@ -1,7 +1,7 @@
1
1
  class Marty::DeloreanRule < Marty::BaseRule
2
2
  self.abstract_class = true
3
3
 
4
- validates_presence_of :rule_type, :start_dt
4
+ validates :rule_type, :start_dt, presence: true
5
5
 
6
6
  def validate
7
7
  super
@@ -200,7 +200,7 @@ class Marty::DeloreanRule < Marty::BaseRule
200
200
 
201
201
  def self.get_grid_rename_handler(klass)
202
202
  proc do |old, new|
203
- klass.where(obsoleted_dt: 'infinity').each do |r|
203
+ klass.where(obsoleted_dt: 'infinity').find_each do |r|
204
204
  r.grids.each { |k, v| r.grids[k] = new if v == old }
205
205
  r.results.each do |k, _v|
206
206
  r.results[k] = %Q("#{new}") if
@@ -1,4 +1,4 @@
1
1
  class Marty::GridIndexBoolean < Marty::Base
2
- validates_presence_of :created_dt, :data_grid_id, :attr, :index
3
- validates_inclusion_of :key, in: [true, false, nil]
2
+ validates :created_dt, :data_grid_id, :attr, :index, presence: true
3
+ validates :key, inclusion: { in: [true, false, nil] }
4
4
  end
@@ -1,3 +1,3 @@
1
1
  class Marty::GridIndexInt4range < Marty::Base
2
- validates_presence_of :created_dt, :data_grid_id, :attr, :index
2
+ validates :created_dt, :data_grid_id, :attr, :index, presence: true
3
3
  end
@@ -1,3 +1,3 @@
1
1
  class Marty::GridIndexInteger < Marty::Base
2
- validates_presence_of :created_dt, :data_grid_id, :attr, :index
2
+ validates :created_dt, :data_grid_id, :attr, :index, presence: true
3
3
  end
@@ -1,3 +1,3 @@
1
1
  class Marty::GridIndexNumrange < Marty::Base
2
- validates_presence_of :created_dt, :data_grid_id, :attr, :index
2
+ validates :created_dt, :data_grid_id, :attr, :index, presence: true
3
3
  end
@@ -1,3 +1,3 @@
1
1
  class Marty::GridIndexString < Marty::Base
2
- validates_presence_of :created_dt, :data_grid_id, :attr, :index
2
+ validates :created_dt, :data_grid_id, :attr, :index, presence: true
3
3
  end
@@ -27,8 +27,8 @@ class Marty::ImportType < Marty::Base
27
27
  self.preprocess_function = nil if preprocess_function.blank?
28
28
  end
29
29
 
30
- validates_presence_of :name, :db_model_name, :role
31
- validates_uniqueness_of :name
30
+ validates :name, :db_model_name, :role, presence: true
31
+ validates :name, uniqueness: true
32
32
  validates_with ImportTypeValidator
33
33
 
34
34
  def get_model_class
@@ -9,7 +9,8 @@ module Marty
9
9
  :deliveries,
10
10
  class_name: '::Marty::Notifications::Delivery',
11
11
  dependent: :destroy,
12
- foreign_key: :notification_id
12
+ foreign_key: :notification_id,
13
+ inverse_of: :notification
13
14
  )
14
15
 
15
16
  state_machine :state, initial: :pending do
@@ -2,7 +2,7 @@ class Marty::Posting < Marty::Base
2
2
  has_mcfly append_only: true
3
3
 
4
4
  mcfly_validates_uniqueness_of :name
5
- validates_presence_of :name, :posting_type_id, :comment
5
+ validates :name, :posting_type_id, :comment, presence: true
6
6
 
7
7
  belongs_to :user, class_name: 'Marty::User'
8
8
  belongs_to :posting_type
@@ -16,19 +16,19 @@ class Marty::Posting < Marty::Base
16
16
  # use Time.now.strftime to name the posting. This has the effect
17
17
  # of using the host's timezone. i.e. since we're in PST8PDT, names
18
18
  # will be based off of the Pacific TZ.
19
- dt ||= Time.now
19
+ dt ||= Time.zone.now
20
20
  "#{posting_type.name}-#{dt.strftime('%Y%m%d-%H%M')}"
21
21
  end
22
22
 
23
23
  before_validation :set_posting_name
24
24
  def set_posting_name
25
- posting_type = Marty::PostingType.find_by_id(posting_type_id)
25
+ posting_type = Marty::PostingType.find_by(id: posting_type_id)
26
26
  self.name = self.class.make_name(posting_type, created_dt)
27
27
  true
28
28
  end
29
29
 
30
30
  def self.do_create(type_name, dt, comment)
31
- posting_type = Marty::PostingType.find_by_name(type_name)
31
+ posting_type = Marty::PostingType.find_by(name: type_name)
32
32
 
33
33
  raise "unknown posting type #{name}" unless posting_type
34
34
 
@@ -50,12 +50,12 @@ class Marty::Posting < Marty::Base
50
50
  # might be created. Or, use regular validates_uniqueness_of instead
51
51
  # of mcfly_validates_uniqueness_of.
52
52
  delorean_fn :lookup, sig: 1 do |name|
53
- p = select(get_struct_attrs).find_by_name(name)
53
+ p = select(get_struct_attrs).find_by(name: name)
54
54
  make_openstruct(p)
55
55
  end
56
56
 
57
57
  delorean_fn :lookup_dt, sig: 1 do |name|
58
- find_by_name(name).try(:created_dt)
58
+ find_by(name: name).try(:created_dt)
59
59
  end
60
60
 
61
61
  delorean_fn :first_match, sig: [1, 2] do |dt, posting_type = nil|
@@ -1,6 +1,6 @@
1
1
  class Marty::PostingType < Marty::Base
2
2
  extend Marty::Enum
3
3
 
4
- validates_presence_of :name
5
- validates_uniqueness_of :name
4
+ validates :name, presence: true
5
+ validates :name, uniqueness: true
6
6
  end
@@ -13,9 +13,10 @@ class Marty::Promise < Marty::Base
13
13
  has_many :children,
14
14
  foreign_key: 'parent_id',
15
15
  class_name: 'Marty::Promise',
16
- dependent: :destroy
16
+ dependent: :destroy,
17
+ inverse_of: :parent
17
18
 
18
- validates_presence_of :title, :promise_type
19
+ validates :title, :promise_type, presence: true
19
20
 
20
21
  belongs_to :parent, class_name: 'Marty::Promise'
21
22
  belongs_to :user, class_name: 'Marty::User'
@@ -94,7 +95,7 @@ class Marty::Promise < Marty::Base
94
95
  end
95
96
 
96
97
  def self.job_by_id(job_id)
97
- Delayed::Job.uncached { Delayed::Job.find_by_id(job_id) }
98
+ Delayed::Job.uncached { Delayed::Job.find_by(id: job_id) }
98
99
  end
99
100
 
100
101
  def work_off_job(job)
@@ -1,11 +1,11 @@
1
1
  class Marty::Script < Marty::Base
2
2
  has_mcfly
3
3
 
4
- validates_presence_of :name, :body
4
+ validates :name, :body, presence: true
5
5
  mcfly_validates_uniqueness_of :name
6
- validates_format_of :name,
7
- with: /\A[A-Z][a-zA-Z0-9]*(::[A-Z][a-zA-Z0-9]*)*\z/,
8
- message: I18n.t('script.save_error')
6
+ validates :name,
7
+ format: { with: /\A[A-Z][a-zA-Z0-9]*(::[A-Z][a-zA-Z0-9]*)*\z/,
8
+ message: I18n.t('script.save_error') }
9
9
 
10
10
  belongs_to :user, class_name: 'Marty::User'
11
11
 
@@ -50,7 +50,7 @@ class Marty::Script < Marty::Base
50
50
  end
51
51
 
52
52
  delorean_fn :pretty_print, sig: 1 do |id|
53
- script = find_by_id id
53
+ script = find_by id: id
54
54
 
55
55
  next "unknown script #{id}" unless script
56
56
 
@@ -96,7 +96,7 @@ class Marty::Script < Marty::Base
96
96
  tag = Marty::Tag.get_latest1
97
97
  latest = Marty::Script.order('created_dt DESC').first
98
98
 
99
- tag_time = (dt || [latest.try(:created_dt), Time.now].compact.max) +
99
+ tag_time = (dt || [latest.try(:created_dt), Time.zone.now].compact.max) +
100
100
  1.second
101
101
 
102
102
  # If no tag_time is provided, the tag created_dt will be the same
@@ -149,7 +149,7 @@ class Marty::Script < Marty::Base
149
149
  return paths_from_config if paths_from_config.present?
150
150
 
151
151
  [
152
- "#{Rails.root}/delorean",
152
+ Rails.root.join('delorean'),
153
153
  # FIXME: HACKY, wouldn't it be better to use
154
154
  # Gem::Specification.find_by_name("marty").gem_dir??
155
155
  File.expand_path('../../../../delorean', __FILE__),
@@ -2,7 +2,7 @@ class Marty::Tag < Marty::Base
2
2
  has_mcfly append_only: true
3
3
 
4
4
  mcfly_validates_uniqueness_of :name
5
- validates_presence_of :name, :comment
5
+ validates :name, :comment, presence: true
6
6
 
7
7
  belongs_to :user, class_name: 'Marty::User'
8
8
 
@@ -17,7 +17,7 @@ class Marty::Tag < Marty::Base
17
17
  # use Time.now.strftime to name the posting. This has the effect
18
18
  # of using the host's timezone. i.e. since we're in PST8PDT, names
19
19
  # will be based off of the Pacific TZ.
20
- dt ||= Time.now
20
+ dt ||= Time.zone.now
21
21
  dt.strftime('%Y%m%d-%H%M')
22
22
  end
23
23
 
@@ -44,9 +44,9 @@ class Marty::Tag < Marty::Base
44
44
  # many different types of arguments.
45
45
  case tag_id
46
46
  when Integer, /\A[0-9]+\z/
47
- tag = find_by_id(tag_id)
47
+ tag = find_by(id: tag_id)
48
48
  when String
49
- tag = find_by_name(tag_id)
49
+ tag = find_by(name: tag_id)
50
50
  # if tag name wasn't found, look for a matching
51
51
  # posting, then find the tag whose created_dt <= posting dt.
52
52
  if !tag
@@ -65,7 +65,7 @@ class Marty::Tag < Marty::Base
65
65
  end
66
66
 
67
67
  delorean_fn :lookup, cache: true, sig: 1 do |name|
68
- t = find_by_name(name).select(get_struct_attrs)
68
+ t = find_by(name: name).select(get_struct_attrs)
69
69
  t && t.attributes
70
70
  end
71
71
 
@@ -1,6 +1,6 @@
1
1
  class Marty::Token < Marty::Base
2
2
  belongs_to :user
3
- validates_uniqueness_of :value
3
+ validates :value, uniqueness: true
4
4
 
5
5
  before_create :delete_previous_tokens, :generate_new_token
6
6
 
@@ -1,9 +1,9 @@
1
1
  class Marty::User < Marty::Base
2
- validates_presence_of :login, :firstname, :lastname
3
- validates_uniqueness_of :login
2
+ validates :login, :firstname, :lastname, presence: true
3
+ validates :login, uniqueness: true
4
4
 
5
- validates_format_of :login, with: /\A[a-z0-9_\-@\.]*\z/i
6
- validates_length_of :login, :firstname, :lastname, maximum: 100
5
+ validates :login, format: { with: /\A[a-z0-9_\-@\.]*\z/i }
6
+ validates :login, :firstname, :lastname, length: { maximum: 100 }
7
7
 
8
8
  MARTY_IMPORT_UNIQUENESS = [:login]
9
9
 
@@ -13,7 +13,8 @@ class Marty::User < Marty::Base
13
13
  :notification_deliveries,
14
14
  class_name: '::Marty::Notifications::Delivery',
15
15
  dependent: :destroy,
16
- foreign_key: :recipient_id
16
+ foreign_key: :recipient_id,
17
+ inverse_of: :recipient
17
18
  )
18
19
 
19
20
  scope :active, -> { where(active: true) }
@@ -56,7 +57,7 @@ class Marty::User < Marty::Base
56
57
  # Make sure no one can sign in with an empty password
57
58
  return nil if password.empty?
58
59
 
59
- user = find_by_login(login)
60
+ user = find_by(login: login)
60
61
 
61
62
  return nil if !user || !user.active?
62
63
 
@@ -93,7 +94,7 @@ class Marty::User < Marty::Base
93
94
  raise "bad auth_source: #{auth_source.inspect}"
94
95
  end
95
96
 
96
- find_by_login(login) if ok
97
+ find_by(login: login) if ok
97
98
  end
98
99
 
99
100
  def self.current=(user)
@@ -135,8 +136,8 @@ class Marty::User < Marty::Base
135
136
  # 1 - Do not allow user to edit own record
136
137
  # 2 - Do not allow user to edit the application system record
137
138
  if user_manager_only
138
- system_user = Marty::User.find_by_login(
139
- Rails.configuration.marty.system_account.to_s)
139
+ system_user = Marty::User.find_by(
140
+ login: Rails.configuration.marty.system_account.to_s)
140
141
  system_id = system_user.id if system_user
141
142
 
142
143
  roles = user_roles.map(&:role)
@@ -173,6 +174,6 @@ class Marty::User < Marty::Base
173
174
  errors.add :base,
174
175
  "Users cannot be deleted - set 'Active' to false to disable the account"
175
176
 
176
- throw :abort unless errors.blank?
177
+ throw :abort if errors.present?
177
178
  end
178
179
  end
@@ -1,6 +1,6 @@
1
1
  class Marty::UserRole < Marty::Base
2
- validates_uniqueness_of :user_id, scope: [:role]
3
- validates_presence_of :user_id, :role
2
+ validates :user_id, uniqueness: { scope: [:role] }
3
+ validates :user_id, :role, presence: true
4
4
 
5
5
  belongs_to :user
6
6
  end
@@ -2,7 +2,8 @@ class Marty::VwPromise < Marty::Base
2
2
  has_many :children,
3
3
  foreign_key: 'parent_id',
4
4
  class_name: 'Marty::VwPromise',
5
- dependent: :destroy
5
+ dependent: :destroy,
6
+ inverse_of: :parent
6
7
 
7
8
  belongs_to :parent, class_name: 'Marty::VwPromise'
8
9
  belongs_to :user, class_name: 'Marty::User'
@@ -4,7 +4,7 @@ module Marty
4
4
  def self.call(id:, job_class:)
5
5
  model = Marty::BackgroundJob::Schedule.find_by(id: id)
6
6
 
7
- return remove_schedule(job_class: job_class) unless model.present?
7
+ return remove_schedule(job_class: job_class) if model.blank?
8
8
  return remove_schedule(job_class: job_class) if model.off?
9
9
  return schedule(job_class: job_class) if model.on?
10
10
  end
@@ -14,7 +14,7 @@ module Marty
14
14
  [r[0, 2], r[2..-1].reverse]
15
15
  else
16
16
  raw_vals = constraint.split('|')
17
- return unless raw_vals.present?
17
+ return if raw_vals.blank?
18
18
  raise 'list constraint not allowed for type Float' if dt == 'float'
19
19
 
20
20
  pt = 'infinity'
@@ -37,6 +37,7 @@ module Marty
37
37
  [data_type]
38
38
  end
39
39
  types << Integer if types.include?(Float)
40
+ types
40
41
  end
41
42
 
42
43
  # if check_data is called from validation, data has already been converted
@@ -55,8 +56,8 @@ module Marty
55
56
  err = nil
56
57
  begin
57
58
  cvt_val = cvt && !data_v.class.in?(rt) ?
58
- DataGrid.parse_fvalue(pt, data_v, dt, klass)&.first :
59
- data_v
59
+ [DataGrid.parse_fvalue(pt, data_v, dt, klass)].
60
+ flatten.first : data_v
60
61
  rescue StandardError => e
61
62
  err = e.message
62
63
  end
@@ -4,10 +4,10 @@ module Marty
4
4
  extend Delorean::Functions
5
5
 
6
6
  delorean_fn :call, sig: 0 do
7
- glob = Rails.root.join('app', 'jobs', '**', '*_job.rb')
7
+ glob = Rails.root.join('app/jobs/**/*_job.rb')
8
8
  Dir.glob(glob).sort.each { |f| require f }
9
9
 
10
- glob2 = Marty.root.join('app', 'jobs', '**', '*_job.rb')
10
+ glob2 = Marty.root.join('app/jobs/**/*_job.rb')
11
11
  Dir.glob(glob2).sort.each { |f| require f }
12
12
 
13
13
  Delayed::Job.where.not(cron: nil).each(&:destroy!)
@@ -94,7 +94,7 @@ class Marty::DataChange
94
94
  end
95
95
 
96
96
  delorean_fn :user_name, sig: 1 do |user_id|
97
- Marty::User.find_by_id(user_id).try(:name)
97
+ Marty::User.find_by(id: user_id).try(:name)
98
98
  end
99
99
 
100
100
  delorean_fn :sanitize_classes, sig: 1 do |classes|