Sha256: f8b5a4cd4095fb100dfe41a7364a47ae4821e5d4f7e9b70f02b6c44d3ae7f16d
Contents?: true
Size: 1.34 KB
Versions: 25
Compression:
Stored size: 1.34 KB
Contents
module Picky # coding: utf-8 # module Query # Collection class for qualifiers. # class QualifierCategoryMapper attr_reader :mapping # # def initialize indexes @mapping = {} indexes.each do |index| index.each_category do |category| add category end end end # # def add category category.qualifiers.each do |qualifier| sym_qualifier = qualifier.intern warn %Q{Warning: Qualifier "#{qualifier}" already mapped to category #{mapping[sym_qualifier].identifier} (ambiguous qualifier mapping).} if mapping.has_key? sym_qualifier mapping[sym_qualifier] = category end end # Normalizes the given qualifier. # # Returns nil if it is not allowed, the normalized qualifier if it is. # def map qualifier return nil if qualifier.empty? @mapping[qualifier.intern] end # Restricts the given categories. # def restrict user_qualified if @restricted user_qualified ? @restricted & user_qualified : @restricted else user_qualified end end def restrict_to *qualifiers @restricted = qualifiers.map { |qualifier| map qualifier }.compact end end end end
Version data entries
25 entries across 25 versions & 1 rubygems