module Boleite::GUI::Container::Contracts

Defined in:

boleite/gui/container.cr

Constant Summary

CLASS_DATA = ClassData(Boleite::GUI::Container).new
CONTRACTED_METHODS = ["[](args)", "min_size()", "acc_allocation()", "initialize()", "add(child)", "remove(child)", "find(name)", "num_widgets()", "clear()", "each_widget()", "min_size=(min_size)", "reset_acc_allocation()", "update_acc_allocation()", "reset_body_allocation()", "update_body_allocation()", "on_state_change()", "pass_input_to_children(event : InputEvent)"] of _
CONTRACTS = {:next_def => [{:requires, "(style == (:vertical)) || (style == (:horizontal))", do (style == (:vertical)) || (style == (:horizontal)) end}], def add(child) @children << child child.parent = self end => [{:requires, "child.parent.nil?", do child.parent.nil? end}, {:ensures, "@children.count(child == 1)", do @children.count(child == 1) end}], def remove(child) child = @children.delete(child) if child child.parent = nil end state_change.emit child end => [{:requires, "child.parent == self", do child.parent == self end}, {:ensures, "(@children.includes?(child)) == false", do (@children.includes?(child)) == false end}, {:ensures, "child.parent != self", do child.parent != self end}]} of _ => _
IGNORED_METHODS = ["finalize", "contract_pre_add", "contract_post_add", "contract_requires_add", "contract_ensures_add", "contract_pre_remove", "contract_post_remove", "contract_requires_remove", "contract_ensures_remove"] of _
INVARIANTS = [] of _

Class Method Summary

Macro Summary

Class Method Detail

def self.on_assert_fail(condition, type) #

[View source]
def self.on_contract_fail(contract, condition, type, method) #

[View source]

Macro Detail

macro add_contract(stage, str, &test) #

[View source]
macro add_invariant(str, &test) #

[View source]
macro ignore_method(method) #

[View source]