Class: RubyNext::Language::Rewriters::Text
- Inherits:
-
Abstract
- Object
- Parser::TreeRewriter
- Abstract
- RubyNext::Language::Rewriters::Text
- Defined in:
- lib/ruby-next/language/rewriters/text.rb
Direct Known Subclasses
Defined Under Namespace
Classes: Normalizer, PacoParser
Constant Summary
Constants inherited from Abstract
Abstract::MIN_SUPPORTED_VERSION, Abstract::NAME, Abstract::SYNTAX_PROBE
Class Method Summary collapse
Instance Method Summary collapse
-
#rewrite(source) ⇒ Object
Rewrite source code by ignoring string literals and comments.
- #safe_rewrite(source) ⇒ Object
Methods inherited from Abstract
ast?, #initialize, transform, unsupported_syntax?, unsupported_version?
Constructor Details
This class inherits a constructor from RubyNext::Language::Rewriters::Abstract
Class Method Details
.paco_parser ⇒ Object
98 99 100 101 102 |
# File 'lib/ruby-next/language/rewriters/text.rb', line 98 def paco_parser return @paco_parser if @paco_parser superclass.paco_parser if superclass.respond_to?(:paco_parser) end |
.parser(&block) ⇒ Object
94 95 96 |
# File 'lib/ruby-next/language/rewriters/text.rb', line 94 def parser(&block) @paco_parser = Class.new(PacoParser, &block) end |
.text? ⇒ Boolean
104 105 106 |
# File 'lib/ruby-next/language/rewriters/text.rb', line 104 def text? true end |
Instance Method Details
#rewrite(source) ⇒ Object
Rewrite source code by ignoring string literals and comments
110 111 112 113 114 115 116 |
# File 'lib/ruby-next/language/rewriters/text.rb', line 110 def rewrite(source) Normalizer.new.normalizing(source) do |normalized| safe_rewrite(normalized).tap do |rewritten| context.track!(self) if rewritten != normalized end end end |
#safe_rewrite(source) ⇒ Object
118 119 120 |
# File 'lib/ruby-next/language/rewriters/text.rb', line 118 def safe_rewrite(source) source end |