Class: Cutaneous::Compiler::BlockBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/cutaneous/compiler.rb

Overview

Converts a list of expressions into either a master or child block set.

Instance Method Summary collapse

Constructor Details

#initialize(loader) ⇒ BlockBuilder

Returns a new instance of BlockBuilder.



112
113
114
115
# File 'lib/cutaneous/compiler.rb', line 112

def initialize(loader)
  @loader = loader
  assign_block_set(BlockSet.new)
end

Instance Method Details

#assign_block_set(block_set) ⇒ Object



128
129
130
131
# File 'lib/cutaneous/compiler.rb', line 128

def assign_block_set(block_set)
  @block_set = block_set
  @block_set.loader = @loader
end

#block_endObject



141
142
143
# File 'lib/cutaneous/compiler.rb', line 141

def block_end
  @block_set.block_end
end

#block_start(block_name) ⇒ Object



137
138
139
# File 'lib/cutaneous/compiler.rb', line 137

def block_start(block_name)
  @block_set.block_start(block_name)
end

#block_superObject



145
146
147
# File 'lib/cutaneous/compiler.rb', line 145

def block_super
  push(@block_set.super_block)
end

#build(expressions) ⇒ Object



117
118
119
120
121
122
# File 'lib/cutaneous/compiler.rb', line 117

def build(expressions)
  expressions.each do |expression|
    expression.affect(self)
  end
  @block_set
end

#current_blockObject



133
134
135
# File 'lib/cutaneous/compiler.rb', line 133

def current_block
  @block_set.current_block
end

#extends(parent) ⇒ Object



124
125
126
# File 'lib/cutaneous/compiler.rb', line 124

def extends(parent)
  assign_block_set(ExtendedBlockSet.new(parent))
end

#push(tag) ⇒ Object



149
150
151
# File 'lib/cutaneous/compiler.rb', line 149

def push(tag)
  @block_set.push(tag)
end