Files
mozo-backend/app/models/section.rb
T

51 lines
1.1 KiB
Ruby

class Section
include SimplyStored::Couch
property :title
property :path, type: Array, default: []
belongs_to :supplier
has_many :tables
has_many :lists
has_many :orders
attr_protected :supplier_id
validates :supplier_id, presence: true
# Probably faster to directly retreive the document and return nil
# if the supplier does not match
def self.find_by_supplier_and_id(supplier, id)
section = find(id)
return nil unless section.supplier_id == supplier.id
section
end
def width
self.path.last.try(:first).to_f - self.path.first.try(:first).to_f
end
def height
self.path.last.try(:last).to_f - self.path.first.try(:last).to_f
end
def width=(val)
val = val.to_f
self.path[0] ||= [0.0, 0.0]
self.path[1] ||= [0.0, 0.0]
unless path[1][0] == val
self.path[1][0] = val
path_will_change!
end
end
def height=(val)
val = val.to_f
self.path[0] ||= [0.0, 0.0]
self.path[1] ||= [0.0, 0.0]
unless path[1][1] == val
self.path[1][1] = val
path_will_change!
end
end
end