Class: BlocklyInterpreter::CoreBlocks::IfBlock::DSLMethods::IfBlockBuilder
Instance Attribute Summary collapse
#block_type, #comment, #comment_pinned, #fields, #is_shadow, #mutation_attrs, #mutation_child_procs, #statements, #values, #x, #y
Instance Method Summary
collapse
#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
Returns a new instance of IfBlockBuilder.
70
71
72
73
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 70
def initialize(block_type)
super
@predicate_number = 0
end
|
Instance Attribute Details
#predicate_number ⇒ Object
Returns the value of attribute predicate_number.
68
69
70
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 68
def predicate_number
@predicate_number
end
|
Instance Method Details
#action(&proc) ⇒ Object
79
80
81
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 79
def action(&proc)
statement "DO#{predicate_number}", &proc
end
|
#else_action(&proc) ⇒ Object
88
89
90
91
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 88
def else_action(&proc)
mutation_attr "else", 1
statement "ELSE", &proc
end
|
#elsif_clause(&proc) ⇒ Object
83
84
85
86
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 83
def elsif_clause(&proc)
@predicate_number += 1
instance_exec(&proc)
end
|
#predicate(&proc) ⇒ Object
75
76
77
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 75
def predicate(&proc)
value "IF#{predicate_number}", &proc
end
|
#to_xml(node) ⇒ Object
93
94
95
96
|
# File 'lib/blockly_interpreter/core_blocks/if_block.rb', line 93
def to_xml(node)
mutation_attr("elseif", @predicate_number) if @predicate_number > 0
super
end
|