class TwitterCldr::Tokenizers::PatternTokenizer
Attributes
data_reader[R]
tokenizer[R]
Public Class Methods
new(data_reader, tokenizer)
click to toggle source
# File lib/twitter_cldr/tokenizers/pattern_tokenizer.rb, line 12 def initialize(data_reader, tokenizer) @data_reader = data_reader @tokenizer = tokenizer end
Public Instance Methods
tokenize(pattern)
click to toggle source
# File lib/twitter_cldr/tokenizers/pattern_tokenizer.rb, line 17 def tokenize(pattern) tokenizer.tokenize(expand(pattern)) end
Private Instance Methods
expand(pattern)
click to toggle source
# File lib/twitter_cldr/tokenizers/pattern_tokenizer.rb, line 23 def expand(pattern) if pattern.is_a?(Symbol) # symbols mean another path was given path = pattern.to_s.split(".").map(&:to_sym) data = data_reader.pattern_at_path(path) next_pattern = data.is_a?(Hash) ? data[:pattern] : data expand_pattern(next_pattern) elsif pattern.is_a?(Hash) pattern.inject({}) do |ret, (key, val)| ret[key] = expand(val) ret end else pattern end end