Farmbot-Web-App/app/models/tool_slot.rb

27 lines
973 B
Ruby

# A single slot in a tool rack. Lets the sequence builder know things
# like where to put a tool when not in use, where to grab the next tool from,
# etc.
class ToolSlot < Point
PULLOUT_DIRECTIONS = [NONE = 0,
POSITIVE_X = 1,
NEGATIVE_X = 2,
POSITIVE_Y = 3,
NEGATIVE_Y = 4,]
MAX_PULLOUT = PULLOUT_DIRECTIONS.max
MIN_PULLOUT = PULLOUT_DIRECTIONS.min
PULLOUT_ERR = "must be a value between #{MIN_PULLOUT} and #{MAX_PULLOUT}. "\
"%{value} is not valid."
IN_USE = "already in use by another slot. "\
"Please un-assign the tool from its current slot"\
" before reassigning."
belongs_to :tool
validates_uniqueness_of :tool,
allow_blank: true,
allow_nil: true,
message: IN_USE
validates :pullout_direction,
presence: true,
inclusion: { in: PULLOUT_DIRECTIONS, message: PULLOUT_ERR }
end