Class: TwitterCldr::Transforms::RuleSet

Inherits:
Object
  • Object
show all
Defined in:
lib/twitter_cldr/transforms/rule_set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filter_rule, inverse_filter_rule, ct_rules, transform_id) ⇒ RuleSet

Returns a new instance of RuleSet.



16
17
18
19
20
21
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 16

def initialize(filter_rule, inverse_filter_rule, ct_rules, transform_id)
  @filter_rule = filter_rule
  @inverse_filter_rule = inverse_filter_rule
  @rules = partition(ct_rules)
  @transform_id = transform_id
end

Instance Attribute Details

#filter_ruleObject (readonly)

Returns the value of attribute filter_rule.



13
14
15
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 13

def filter_rule
  @filter_rule
end

#inverse_filter_ruleObject (readonly)

Returns the value of attribute inverse_filter_rule.



13
14
15
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 13

def inverse_filter_rule
  @inverse_filter_rule
end

#rulesObject (readonly)

Returns the value of attribute rules.



14
15
16
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 14

def rules
  @rules
end

#transform_idObject (readonly)

Returns the value of attribute transform_id.



14
15
16
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 14

def transform_id
  @transform_id
end

Instance Method Details

#clone_with_replacement_filter(replacement_filter) ⇒ Object



23
24
25
26
27
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 23

def clone_with_replacement_filter(replacement_filter)
  self.class.new(
    replacement_filter, nil, rules, transform_id
  )
end

#invertObject



35
36
37
38
39
40
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 35

def invert
  self.class.new(
    inverse_filter_rule, filter_rule,
    rules.reverse.map(&:invert), transform_id
  )
end

#transform(text) ⇒ Object



29
30
31
32
33
# File 'lib/twitter_cldr/transforms/rule_set.rb', line 29

def transform(text)
  cursor = Cursor.new(text.dup)
  rules.each { |rule| rule.apply_to(cursor) }
  cursor.text
end