Class: TwitterCldr::Transforms::Transforms::TransformRule
- Defined in:
- lib/twitter_cldr/transforms/transforms/transform_rule.rb
Overview
Base class for transforms
Direct Known Subclasses
CasingTransform, NamedTransform, NormalizationTransform, NullTransform
Constant Summary
Constants inherited from Rule
Instance Attribute Summary collapse
-
#backward_form ⇒ Object
readonly
Returns the value of attribute backward_form.
-
#forward_form ⇒ Object
readonly
Returns the value of attribute forward_form.
Class Method Summary collapse
Instance Method Summary collapse
- #backward? ⇒ Boolean
- #forward? ⇒ Boolean
-
#initialize(forward_form, backward_form) ⇒ TransformRule
constructor
A new instance of TransformRule.
- #invert ⇒ Object
- #is_transform_rule? ⇒ Boolean
Methods inherited from Rule
#is_comment?, #is_conversion_rule?, #is_filter_rule?, #is_variable?, regexp_token_string, remove_comment, replace_symbols, #token_string, token_string, #token_value, token_value
Constructor Details
#initialize(forward_form, backward_form) ⇒ TransformRule
Returns a new instance of TransformRule.
62 63 64 65 66 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 62 def initialize(forward_form, backward_form) @forward_form = forward_form @backward_form = backward_form after_initialize end |
Instance Attribute Details
#backward_form ⇒ Object (readonly)
Returns the value of attribute backward_form.
60 61 62 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 60 def backward_form @backward_form end |
#forward_form ⇒ Object (readonly)
Returns the value of attribute forward_form.
60 61 62 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 60 def forward_form @forward_form end |
Class Method Details
.accepts?(rule_text) ⇒ Boolean
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 26 def accepts?(rule_text) rule_text = Rule.remove_comment(rule_text) rule_text = rule_text[2..-2].strip tokens = tokenizer.tokenize(rule_text) forward_form, backward_form = parser.parse(tokens) transforms.any? do |transform| transform.accepts?(forward_form, backward_form) end rescue false end |
.parse(rule_text, symbol_table, index) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 13 def parse(rule_text, symbol_table, index) rule_text = Rule.remove_comment(rule_text) rule_text = rule_text[2..-2].strip tokens = tokenizer.tokenize(rule_text) forward_form, backward_form = parser.parse(tokens) transform_class = transforms.find do |transform| transform.accepts?(forward_form, backward_form) end transform_class.new(forward_form, backward_form) end |
Instance Method Details
#backward? ⇒ Boolean
76 77 78 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 76 def backward? false end |
#forward? ⇒ Boolean
72 73 74 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 72 def forward? !!forward_form end |
#invert ⇒ Object
80 81 82 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 80 def invert self.class.new(backward_form, forward_form) end |
#is_transform_rule? ⇒ Boolean
68 69 70 |
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 68 def is_transform_rule? true end |