lib/picky/internals/indexed/categories.rb in picky-1.5.2 vs lib/picky/internals/indexed/categories.rb in picky-1.5.3

- old
+ new

@@ -1,16 +1,17 @@ module Internals module Indexed - + class Categories - + attr_reader :categories, :category_hash, :ignore_unassigned_tokens - + each_delegate :load_from_cache, + :analyze, :to => :categories - + # A list of indexed categories. # # Options: # * ignore_unassigned_tokens: Ignore the given token if it cannot be matched to a category. # The default behaviour is that if a token does not match to @@ -24,21 +25,25 @@ # display advertisements on the side for the zipcode. # Nifty! :) # def initialize options = {} clear - + @ignore_unassigned_tokens = options[:ignore_unassigned_tokens] || false end - + + def to_s + categories.indented_to_s + end + # Clears both the array of categories and the hash of categories. # def clear @categories = [] @category_hash = {} end - + # Add the given category to the list of categories. # def << category categories << category # Note: [category] is an optimization, since I need an array @@ -46,11 +51,11 @@ # It's faster to just package it in an array on loading # Picky than doing it over and over with each query. # category_hash[category.name] = [category] end - + # Return all possible combinations for the given token. # # This checks if it needs to also search through similar # tokens, if for example, the token is one with ~. # If yes, it puts together all solutions. @@ -58,11 +63,11 @@ def possible_combinations_for token token.similar? ? similar_possible_for(token) : possible_for(token) end # Gets all similar tokens and puts together the possible combinations # for each found similar token. - # + # def similar_possible_for token # Get as many similar tokens as necessary # tokens = similar_tokens_for token # possible combinations @@ -88,11 +93,11 @@ tokens.inject([]) do |result, token| possible = possible_categories token result + possible_for(token, possible) end end - + # Returns possible Combinations for the token. # # Note: The preselected_categories param is an optimization. # # Note: Returns [] if no categories matched (will produce no result). @@ -120,16 +125,16 @@ end # This returns the array of categories if the user has defined # an existing category. # # Note: Returns nil if the user did not define one - # or if he/she has defined a non-existing one. + # or if he/she has defined a non-existing one. # def user_defined_categories token category_hash[token.user_defined_category_name] end - + end - + end - + end \ No newline at end of file