Sha256: 53dc8534822fc43c176005e99e8c0f110a5abbed4bc0cca96c5ee08740fa1b21
Contents?: true
Size: 934 Bytes
Versions: 1
Compression:
Stored size: 934 Bytes
Contents
require_relative 'priority' module Priora class PriorityBuilder class << self 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 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 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
priora-0.1.1 | lib/priora/priority_builder.rb |