67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/interscript/node/rule/sub.rb', line 67
def reverse
if to == :upcase
xfrom = from.downcase
xto = :downcase
elsif to == :downcase
xfrom = from.upcase
xto = :upcase
else
xto, xfrom = reverse_transfer(from, to)
end
rrun = self.reverse_run.nil? ? nil : !self.reverse_run
if rrun.nil? && !has_assertions? &&
(xfrom == "" ||
(Interscript::Node::Item::String === xfrom && xfrom.data == '') ||
(Interscript::Node::Item::Alias === xfrom && xfrom.name == :none)
)
rrun = true
end
Interscript::Node::Rule::Sub.new(xfrom, xto,
before: before, after: after,
not_before: not_before, not_after: not_after,
reverse_run: rrun,
priority: priority ? -priority : nil
)
end
|