Sha256: 9af00672256c99bee630b4d87f72b115b92acda5e171ecf75bc5bad65af84730
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
module Picky class Categories each_forward :load, :analyze, :to => :categories # 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. # def possible_combinations 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 tokens = similar_tokens_for token inject_possible_for tokens end # Returns all possible similar tokens for the given token. # def similar_tokens_for token categories.inject([]) do |result, category| result + token.similar_tokens_for(category) end end # # def inject_possible_for tokens 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). # def possible_for token, preselected_categories = nil (preselected_categories || possible_categories(token)).inject([]) do |combinations, category| combination = category.combination_for token combination ? combinations << combination : combinations end end # This returns the possible categories for this token. # If the user has already preselected a category for this token, # like "artist:moby", if not just return all for the given token, # since all are possible. # # Note: Once I thought this was called too often. But it is not (18.01.2011). # def possible_categories token token.predefined_categories(qualifier_mapper) || categories end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
picky-4.16.0 | lib/picky/categories_indexed.rb |