class Opal::Rewriter
def delete(rewriter)
def delete(rewriter) list.delete(rewriter) end
def disable(except: nil)
def disable(except: nil) old_disabled = @disabled @disabled = except || true yield ensure @disabled = old_disabled end
def disabled?
def disabled? @disabled == true end
def initialize(sexp)
def initialize(sexp) @sexp = sexp end
def list
def list @list ||= [] end
def process
def process return @sexp if self.class.disabled? self.class.list.each do |rewriter_class| next if self.class.rewritter_disabled?(rewriter_class) rewriter = rewriter_class.new @sexp = rewriter.process(@sexp) end @sexp end
def rewritter_disabled?(rewriter)
def rewritter_disabled?(rewriter) return false if @disabled == false @disabled != rewriter end
def use(rewriter)
def use(rewriter) list << rewriter end