Sha256: c0b722b68d166dc8a1ff2f84a2d7bcc9e944a612867b1df4170db589eab17966

Contents?: true

Size: 884 Bytes

Versions: 8

Compression:

Stored size: 884 Bytes

Contents

module Picky

  # coding: utf-8
  #
  module Query

    # Collection class for qualifiers.
    #
    class QualifierCategoryMapper # :nodoc:all

      attr_reader :mapping

      #
      #
      def initialize
        @mapping = {}
      end

      #
      #
      def add category
        category.qualifiers.each do |qualifier|
          sym_qualifier = qualifier.to_sym
          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.to_sym]
      end

    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
picky-3.4.3 lib/picky/query/qualifier_category_mapper.rb
picky-3.4.2 lib/picky/query/qualifier_category_mapper.rb
picky-3.4.1 lib/picky/query/qualifier_category_mapper.rb
picky-3.4.0 lib/picky/query/qualifier_category_mapper.rb
picky-3.3.3 lib/picky/query/qualifier_category_mapper.rb
picky-3.3.2 lib/picky/query/qualifier_category_mapper.rb
picky-3.3.1 lib/picky/query/qualifier_category_mapper.rb
picky-3.3.0 lib/picky/query/qualifier_category_mapper.rb