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

Instance Method Details

#call(value) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/metka/generic_parser.rb', line 15

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 joined_delimiter).map(&:strip).reject(&:empty?)
    when Enumerable
      tag_list.merge value.reject(&:empty?)
    end
  end
end