Class: Taggata::Parser::Tag

Inherits:
Object
  • Object
show all
Defined in:
lib/taggata/parser/tag.rb

Class Method Summary collapse

Class Method Details

.parse(query) ⇒ Hash

Parses give tagging string

Parameters:

  • query

    String tagging string

Returns:

  • (Hash)


8
9
10
11
12
13
14
15
16
# File 'lib/taggata/parser/tag.rb', line 8

def self.parse(query)
  result = { :add => [], :del => [] }
  hash = query.split.reduce(result) do |acc, tag|
    handle_tag(tag, acc)
  end
  dels = hash[:del].empty? ? [] : ::Taggata::Tag.where(:name => hash[:del]).all
  adds = hash[:add].empty? ? [] : find_tags(hash[:add])
  { :add => adds, :del => dels }
end