class Avo::HTML::Builder
def assign_property(property = :data, payload = nil, &block)
def assign_property(property = :data, payload = nil, &block) value = Avo::ExecutionContext.new(target: block || payload, record: record).handle send(:"#{property}_stack=", value) end
def build
def build self end
def capture_block(property = nil, &block)
def capture_block(property = nil, &block) send(:"#{property}_stack=", self.class.parse_block(record: record, resource: resource, &block).build) end
def classes(payload = nil, &block)
def classes(payload = nil, &block) assign_property :classes, payload, &block end
def content(&block)
def content(&block) capture_block :content, &block end
def current_user
def current_user Avo::Current.user end
def data(payload = nil, &block)
def data(payload = nil, &block) assign_property :data, payload, &block end
def dig_stack(*names)
def dig_stack(*names) value = get_stack names.shift if value.is_a? self.class value.dig_stack(*names) else value end end
def edit(&block)
def edit(&block) capture_block :edit, &block end
def get_stack(name = nil)
def get_stack(name = nil) # We don't have an edit component for new so we should use edit name = :edit if name == :new send :"#{name}_stack" end
def index(&block)
def index(&block) capture_block :index, &block end
def initialize(record: nil, resource: nil)
def initialize(record: nil, resource: nil) @wrapper_stack = {} @data_stack = {} @style_stack = "" @classes_stack = "" @show_stack = {} @edit_stack = {} @index_stack = {} @input_stack = {} @label_stack = {} @content_stack = {} @record = record @resource = resource end
def input(&block)
def input(&block) capture_block :input, &block end
def label(&block)
def label(&block) capture_block :label, &block end
def parse_block(record: nil, resource: nil, &block)
def parse_block(record: nil, resource: nil, &block) Docile.dsl_eval(Avo::HTML::Builder.new(record: record, resource: resource), &block).build end
def show(&block)
def show(&block) capture_block :show, &block end
def style(payload = nil, &block)
def style(payload = nil, &block) assign_property :style, payload, &block end
def wrapper(&block)
def wrapper(&block) capture_block :wrapper, &block end