class TwitterCldr::Transforms::Filters::UnicodeFilter

Attributes

charset[R]
direction[R]

Public Class Methods

accepts?(rule_text) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 25
def accepts?(rule_text)
  !!(rule_text =~ /\A::[\s]*\(?[\s]*\[/)
end
new(charset, direction) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 50
def initialize(charset, direction)
  @charset = charset
  @direction = direction
end
parse(rule_text, symbol_table) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 12
def parse(rule_text, symbol_table)
  rule_text = Rule.remove_comment(rule_text).strip
  rule_text = rule_text[2..-2].strip if rule_text.start_with?('::')
  direction = direction_for(rule_text)

  re = TwitterCldr::Shared::UnicodeRegex.compile(
    clean_rule(rule_text, direction)
  )

  # filters are always just a unicode set
  new(re.elements.first.to_set.to_set, direction)
end

Private Class Methods

clean_rule(rule_text, direction) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 39
def clean_rule(rule_text, direction)
  if direction == :backward
    rule_text[1..-2].strip
  else
    rule_text
  end
end
direction_for(rule_text) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 31
def direction_for(rule_text)
  if rule_text.start_with?('(')
    :backward
  else
    :forward
  end
end

Public Instance Methods

backward?() click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 67
def backward?
  direction == :backward
end
forward?() click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 63
def forward?
  direction == :forward
end
matches?(cursor) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 59
def matches?(cursor)
  charset.include?(cursor.text[cursor.position].ord)
end
resolve(symbol_table) click to toggle source
# File lib/twitter_cldr/transforms/filters/unicode_filter.rb, line 55
def resolve(symbol_table)
  self
end