We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
30 lines
684 B
Ruby
30 lines
684 B
Ruby
module Mappable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
attr_accessor :skip_map
|
|
|
|
has_one :map_location, dependent: :destroy
|
|
accepts_nested_attributes_for :map_location, allow_destroy: true, reject_if: :all_blank
|
|
|
|
validate :map_must_be_valid, on: :create, if: :feature_maps?
|
|
|
|
def map_must_be_valid
|
|
return true if skip_map?
|
|
|
|
unless map_location&.available?
|
|
skip_map_error = I18n.t("activerecord.errors.models.map_location.attributes.map.invalid")
|
|
errors.add(:skip_map, skip_map_error)
|
|
end
|
|
end
|
|
|
|
def feature_maps?
|
|
Setting["feature.map"].present?
|
|
end
|
|
|
|
def skip_map?
|
|
skip_map == "1"
|
|
end
|
|
end
|
|
end
|