Provide filename and line number for `class_eval`

This commit removes one RuboCop offense from its todo file.
This commit is contained in:
Peter Leitzen 2019-09-02 18:05:33 +00:00 committed by Lin Jen-Shin
parent d3076322f2
commit e0ce29ad06
2 changed files with 4 additions and 9 deletions

View File

@ -570,11 +570,6 @@ Style/EmptyMethod:
Style/Encoding:
Enabled: false
# Offense count: 2
Style/EvalWithLocation:
Exclude:
- 'app/models/service.rb'
# Offense count: 203
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle.

View File

@ -174,7 +174,7 @@ class Service < ApplicationRecord
# Also keep track of updated properties in a similar way as ActiveModel::Dirty
def self.prop_accessor(*args)
args.each do |arg|
class_eval %{
class_eval <<~RUBY, __FILE__, __LINE__ + 1
unless method_defined?(arg)
def #{arg}
properties['#{arg}']
@ -198,7 +198,7 @@ class Service < ApplicationRecord
def #{arg}_was
updated_properties['#{arg}']
end
}
RUBY
end
end
@ -209,12 +209,12 @@ class Service < ApplicationRecord
self.prop_accessor(*args)
args.each do |arg|
class_eval %{
class_eval <<~RUBY, __FILE__, __LINE__ + 1
def #{arg}?
# '!!' is used because nil or empty string is converted to nil
!!ActiveRecord::Type::Boolean.new.cast(#{arg})
end
}
RUBY
end
end