Class: Plutonium::Definition::FormLayout::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/plutonium/definition/form_layout.rb

Overview

Collects section/ungrouped calls from a form_layout block in order.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



93
94
95
96
# File 'lib/plutonium/definition/form_layout.rb', line 93

def initialize
  @sections = []
  @ungrouped_seen = false
end

Instance Attribute Details

#sectionsObject (readonly)

Returns the value of attribute sections.



91
92
93
# File 'lib/plutonium/definition/form_layout.rb', line 91

def sections
  @sections
end

Instance Method Details

#section(key, *fields, **options) ⇒ Object



98
99
100
101
102
103
104
105
# File 'lib/plutonium/definition/form_layout.rb', line 98

def section(key, *fields, **options)
  if key == UNGROUPED_KEY
    raise ArgumentError,
      "`section :#{UNGROUPED_KEY}` is reserved — use the `ungrouped` macro"
  end
  validate_columns!(options)
  @sections << Section.new(key:, fields: fields.freeze, options: options.freeze)
end

#ungrouped(**options) ⇒ Object

Raises:

  • (ArgumentError)


107
108
109
110
111
112
# File 'lib/plutonium/definition/form_layout.rb', line 107

def ungrouped(**options)
  raise ArgumentError, "`ungrouped` may only be declared once" if @ungrouped_seen
  @ungrouped_seen = true
  validate_columns!(options)
  @sections << Section.new(key: UNGROUPED_KEY, fields: [].freeze, options: options.freeze)
end