Class: Metka::GenericParser

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/metka/generic_parser.rb

Overview

Returns a new Metka::TagList using the given tag string.

Example: tag_list = Metka::GenericParser.instance.(“One , Two, Three”) tag_list # [“One”, “Two”, “Three”]

Instance Method Summary collapse

Constructor Details

#initializeGenericParser

Returns a new instance of GenericParser.



15
16
17
18
# File 'lib/metka/generic_parser.rb', line 15

def initialize
  @single_quote_pattern ||= {}
  @double_quote_pattern ||= {}
end

Instance Method Details

#call(value) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/metka/generic_parser.rb', line 20

def call(value)
  TagList.new.tap do |tag_list|
    case value
    when String
      value = value.to_s.dup
      gsub_quote_pattern!(tag_list, value, double_quote_pattern)
      gsub_quote_pattern!(tag_list, value, single_quote_pattern)

      tag_list.merge value.split(Regexp.new(delimiter)).map(&:strip).reject(&:empty?)
    when Enumerable
      tag_list.merge value.reject(&:empty?)
    end
  end
end