Class: TwitterCldr::Transforms::Transforms::TransformRule
- Inherits:
-
Rule
- Object
- Rule
- TwitterCldr::Transforms::Transforms::TransformRule
show all
- Defined in:
- lib/twitter_cldr/transforms/transforms/transform_rule.rb
Overview
Base class for transforms
Constant Summary
Constants inherited
from Rule
Rule::STRING_TYPES
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Rule
#is_comment?, #is_conversion_rule?, #is_conversion_rule_set?, #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.
75
76
77
78
79
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 75
def initialize(forward_form, backward_form)
@forward_form = forward_form
@backward_form = backward_form
after_initialize
end
|
Instance Attribute Details
Returns the value of attribute backward_form.
73
74
75
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 73
def backward_form
@backward_form
end
|
Returns the value of attribute forward_form.
73
74
75
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 73
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
38
39
40
41
42
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 26
def accepts?(rule_text)
rule_text = Rule.(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 Exception => e
if $debug
puts e.message
puts e.backtrace.join("\n")
end
false
end
|
.blank? ⇒ Boolean
48
49
50
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 48
def blank?
false
end
|
.null? ⇒ Boolean
44
45
46
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 44
def null?
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.(rule_text).strip
rule_text = rule_text[2..-2].strip if rule_text.start_with?('::')
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
89
90
91
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 89
def backward?
false
end
|
#forward? ⇒ Boolean
85
86
87
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 85
def forward?
!forward_form.null?
end
|
#invert ⇒ Object
93
94
95
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 93
def invert
self.class.new(backward_form, forward_form)
end
|
81
82
83
|
# File 'lib/twitter_cldr/transforms/transforms/transform_rule.rb', line 81
def is_transform_rule?
true
end
|