Class: EasyAdmin::Layouts::Builders::TabsBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_admin/layouts/builders/base_layout_builder.rb

Overview

Specialized builder for tabs

Instance Method Summary collapse

Constructor Details

#initialize(parent_builder, tabs_node) ⇒ TabsBuilder

Returns a new instance of TabsBuilder.



224
225
226
227
# File 'lib/easy_admin/layouts/builders/base_layout_builder.rb', line 224

def initialize(parent_builder, tabs_node)
  @parent_builder = parent_builder
  @tabs_node = tabs_node
end

Instance Method Details

#tab(name, **attributes, &block) ⇒ Object



229
230
231
232
233
234
235
236
237
238
239
240
241
# File 'lib/easy_admin/layouts/builders/base_layout_builder.rb', line 229

def tab(name, **attributes, &block)
  tab_node = Nodes::Tab.new(name, attributes)
  @tabs_node.add_child(tab_node)
  
  if block_given?
    # Push tab as current container and execute block in parent builder context
    @parent_builder.current_container_stack.push(tab_node)
    @parent_builder.instance_exec(&block)
    @parent_builder.current_container_stack.pop
  end
  
  tab_node
end