Class: Opal::Rewriter

Inherits:
Object
  • Object
show all
Defined in:
opal/lib/opal/rewriter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sexp) ⇒ Rewriter

Returns a new instance of Rewriter.


56
57
58
# File 'opal/lib/opal/rewriter.rb', line 56

def initialize(sexp)
  @sexp = sexp
end

Class Method Details

.delete(rewriter) ⇒ Object


27
28
29
# File 'opal/lib/opal/rewriter.rb', line 27

def delete(rewriter)
  list.delete(rewriter)
end

.disableObject


31
32
33
34
35
36
# File 'opal/lib/opal/rewriter.rb', line 31

def disable
  @disabled = true
  yield
ensure
  @disabled = false
end

.disabled?Boolean

Returns:

  • (Boolean)

38
39
40
# File 'opal/lib/opal/rewriter.rb', line 38

def disabled?
  @disabled if defined?(@disabled)
end

.listObject


19
20
21
# File 'opal/lib/opal/rewriter.rb', line 19

def list
  @list ||= []
end

.use(rewriter) ⇒ Object


23
24
25
# File 'opal/lib/opal/rewriter.rb', line 23

def use(rewriter)
  list << rewriter
end

Instance Method Details

#processObject


60
61
62
63
64
65
66
67
68
69
# File 'opal/lib/opal/rewriter.rb', line 60

def process
  return @sexp if self.class.disabled?

  self.class.list.each do |rewriter_class|
    rewriter = rewriter_class.new
    @sexp = rewriter.process(@sexp)
  end

  @sexp
end