Sha256: d8f6ff929c9ef0654eb34f23c13b902d72667d75889aece4437b14efca6782d3
Contents?: true
Size: 676 Bytes
Versions: 2
Compression:
Stored size: 676 Bytes
Contents
module Priora class Collection def initialize(collection) @collection = collection @comparison_ready_objects = {} end def prioritize_by(priorities) sorted_collection_by(priorities).reverse end private def sorted_collection_by(priorities) @collection.sort do |object_a, object_b| comparison_ready(object_a, priorities) <=> comparison_ready(object_b, priorities) end end def comparison_ready(object, priorities) @comparison_ready_objects[[object, priorities]] ||= begin priorities.map do |priority| priority.comparable_value_from(object) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
priora-0.1.1 | lib/priora/collection.rb |
priora-0.1.0 | lib/priora/collection.rb |