class Avo::Resources::Items::TabGroup::Builder
def build
def build @group.items_holder = @items_holder @group end
def field(field_name, **args, &block)
def field(field_name, **args, &block) parsed = Avo::Dsl::FieldParser.new(id: field_name, order_index: @items_index, **args, &block).parse field_instance = parsed.instance name = field_instance.name tab = Avo::Resources::Items::Tab.new name: name if field_instance.has_own_panel? tab.items_holder.add_item parsed.instance else # If the field is not in a panel, create one and add it panel = Avo::Resources::Items::Panel.new name: name panel.items_holder.add_item parsed.instance # Add that panel to the items_holder tab.items_holder.add_item panel end @items_holder.tabs tab end
def initialize(style: nil)
def initialize(style: nil) @group = Avo::Resources::Items::TabGroup.new(style: style) @items_holder = Avo::Resources::Items::Holder.new end
def parse_block(**args, &block)
def parse_block(**args, &block) Docile.dsl_eval(new(**args), &block).build end