1
0
Fork 0
forked from OpenNeo/impress
impress/app/models/zone.rb

28 lines
865 B
Ruby
Raw Normal View History

class Zone < ApplicationRecord
2013-01-21 17:34:39 -08:00
translates :label, :plain_label
2010-09-08 19:49:39 -07:00
# When selecting zones that an asset occupies, we allow the zone to set
# whether or not the zone is "sometimes" occupied. This is false by default.
attr_writer :sometimes
2013-01-21 17:34:39 -08:00
scope :alphabetical, -> {
with_translations(I18n.locale).order(Zone::Translation.arel_table[:label])
2013-01-21 17:34:39 -08:00
}
scope :includes_translations, -> { includes(:translations) }
scope :matching_label, ->(label, locale = I18n.locale) {
2013-01-21 17:34:39 -08:00
t = Zone::Translation.arel_table
joins(:translations)
.where(t[:locale].eq(locale))
.where(t[:plain_label].eq(Zone.plainify_label(label)))
2013-01-21 17:34:39 -08:00
}
scope :for_items, -> { where(arel_table[:type_id].gt(1)) }
2010-09-08 19:49:39 -07:00
def uncertain_label
@sometimes ? "#{label} sometimes" : label
end
2013-01-21 17:34:39 -08:00
def self.plainify_label(label)
2013-01-26 07:54:29 -08:00
label.delete('\- /').parameterize
2012-10-08 19:20:18 -07:00
end
end