Class: BlocklyInterpreter::CoreBlocks::ForBlock::DSLMethods::ForBlockBuilder

Inherits:
DSL::BlockBuilder
  • Object
show all
Defined in:
lib/blockly_interpreter/core_blocks/for_block.rb

Instance Attribute Summary

Attributes inherited from DSL::BlockBuilder

#block_type, #comment, #comment_pinned, #fields, #is_shadow, #mutation_attrs, #mutation_child_procs, #statements, #values, #x, #y

Instance Method Summary collapse

Methods inherited from DSL::BlockBuilder

#build_subblock, #comment_to_xml, #field, #field_to_xml, #mutation_attr, #mutation_child, #mutations_to_xml, #set_comment, #set_position!, #shadow!, #statement, #subblock_to_xml, #tag_name, #value

Constructor Details

#initialize(block_type, var_name) ⇒ ForBlockBuilder

Returns a new instance of ForBlockBuilder.



27
28
29
30
31
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 27

def initialize(block_type, var_name)
  super(block_type)
  field :VAR, var_name
  by(1)
end

Instance Method Details

#action(&proc) ⇒ Object



48
49
50
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 48

def action(&proc)
  statement "DO", &proc
end

#by(val = nil, &proc) ⇒ Object



43
44
45
46
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 43

def by(val = nil, &proc)
  proc ||= Proc.new { math_number val }
  @by_proc = proc
end

#from(val = nil, &proc) ⇒ Object



33
34
35
36
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 33

def from(val = nil, &proc)
  proc ||= Proc.new { math_number val }
  value "FROM", &proc
end

#to(val = nil, &proc) ⇒ Object



38
39
40
41
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 38

def to(val = nil, &proc)
  proc ||= Proc.new { math_number val }
  value "TO", &proc
end

#to_xml(node) ⇒ Object



52
53
54
55
# File 'lib/blockly_interpreter/core_blocks/for_block.rb', line 52

def to_xml(node)
  value "BY", &@by_proc
  super
end