From a267695b1cfb3c16b9a694f7761a8ebbbfade547 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sun, 29 Dec 2019 11:30:33 -0600 Subject: [PATCH] dry up DSL's flow/stack methods --- lib/cyberarm_engine/ui/dsl.rb | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/cyberarm_engine/ui/dsl.rb b/lib/cyberarm_engine/ui/dsl.rb index 2503eaf..81a9e5c 100644 --- a/lib/cyberarm_engine/ui/dsl.rb +++ b/lib/cyberarm_engine/ui/dsl.rb @@ -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 \ No newline at end of file