dry up DSL's flow/stack methods

This commit is contained in:
2019-12-29 11:30:33 -06:00
parent d76da62ee1
commit a267695b1c

View File

@@ -1,27 +1,11 @@
module CyberarmEngine
module DSL
def flow(options = {}, &block)
options[:parent] = @containers.last
options[:theme] = current_theme
_container = Element::Flow.new(options, block)
@containers << _container
_container.build
_container.parent.add(_container)
@containers.pop
return _container
container(CyberarmEngine::Element::Flow, options, &block)
end
def stack(options = {}, &block)
options[:parent] = @containers.last
options[:theme] = current_theme
_container = Element::Stack.new(options, block)
@containers << _container
_container.build
_container.parent.add(_container)
@containers.pop
return _container
container(CyberarmEngine::Element::Stack, options, &block)
end
def label(text, options = {}, &block)
@@ -94,5 +78,19 @@ module CyberarmEngine
private def element_parent
self.is_a?(CyberarmEngine::Element::Container) ? self : @containers.last
end
private def container(klass, options = {}, &block)
options[:parent] = element_parent
options[:theme] = current_theme
_container = klass.new(options, block)
@containers << _container
_container.build
_container.parent.add(_container)
@containers.pop
return _container
end
end
end