class Priora::PriorityBuilder
Public Class Methods
build(raw_priority)
click to toggle source
# File lib/priora/priority_builder.rb, line 6 def build(raw_priority) case raw_priority when Symbol Priority.new(attribute: raw_priority) when Array priority_hash = raw_priority.reduce(:merge) build_from_hash(priority_hash) when Hash build_from_hash(raw_priority) else raise InvalidPrioritySyntaxError end rescue StandardError raise InvalidPrioritySyntaxError end
Private Class Methods
build_from_hash(priority_hash)
click to toggle source
# File lib/priora/priority_builder.rb, line 24 def build_from_hash(priority_hash) unless priority_hash.one? raise InvalidPrioritySyntaxError, 'directional priority declaration takes only a single priority at a time!' end attribute = priority_hash.keys.first direction = priority_hash[attribute] Priority.new(attribute: attribute, direction: direction) end