Class: Picky::QualifierMapper
Overview
Collection class for qualifiers.
Instance Attribute Summary collapse
-
#mapping ⇒ Object
readonly
Returns the value of attribute mapping.
Instance Method Summary collapse
- #add(category) ⇒ Object
-
#initialize(categories) ⇒ QualifierMapper
constructor
A new instance of QualifierMapper.
-
#map(qualifier) ⇒ Object
Normalizes the given qualifier.
-
#restrict(user_qualified) ⇒ Object
Restricts the given categories.
- #restrict_to(*qualifiers) ⇒ Object
Constructor Details
#initialize(categories) ⇒ QualifierMapper
Returns a new instance of QualifierMapper.
11 12 13 14 |
# File 'lib/picky/qualifier_mapper.rb', line 11 def initialize categories @mapping = Hash.new categories.each { |category| add category } end |
Instance Attribute Details
#mapping ⇒ Object (readonly)
Returns the value of attribute mapping.
7 8 9 |
# File 'lib/picky/qualifier_mapper.rb', line 7 def mapping @mapping end |
Instance Method Details
#add(category) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/picky/qualifier_mapper.rb', line 18 def add category category.qualifiers.each do |qualifier| sym_qualifier = qualifier.intern Picky.logger.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 |
#map(qualifier) ⇒ Object
Normalizes the given qualifier.
Returns nil if it is not allowed, the normalized qualifier if it is.
30 31 32 33 34 |
# File 'lib/picky/qualifier_mapper.rb', line 30 def map qualifier return nil if qualifier.empty? mapping[qualifier.intern] end |
#restrict(user_qualified) ⇒ Object
Restricts the given categories.
38 39 40 41 42 43 44 |
# File 'lib/picky/qualifier_mapper.rb', line 38 def restrict user_qualified if @restricted user_qualified ? @restricted & user_qualified : @restricted else user_qualified end end |
#restrict_to(*qualifiers) ⇒ Object
45 46 47 |
# File 'lib/picky/qualifier_mapper.rb', line 45 def restrict_to *qualifiers @restricted = qualifiers.map { |qualifier| map qualifier }.compact end |