Class: RubyNext::Language::Rewriters::Text

Inherits:
Abstract
  • Object
show all
Defined in:
lib/ruby-next/language/rewriters/text.rb

Direct Known Subclasses

MethodReference

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

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_parserObject



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

Returns:

  • (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