Module: Tramway::Utils::Field

Included in:
Tailwinds::Form::Builder
Defined in:
lib/tramway/utils/field.rb

Overview

Provides dynamic field rendering

Instance Method Summary collapse

Instance Method Details

#tramway_field(field_type, attribute) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/tramway/utils/field.rb', line 7

def tramway_field(field_type, attribute, **, &)
  if field_type.is_a?(Hash)
    name = field_name(field_type[:type])
    value = field_type[:value]&.call

    hash = { value:, **field_type.except(:type, :value) }.compact

    public_send(name, attribute, **hash, **, &)
  else
    public_send(field_name(field_type), attribute, **, &)
  end
end