Class: Super::Form::SchemaTypes

Inherits:
Object
  • Object
show all
Defined in:
lib/super/form/schema_types.rb

Defined Under Namespace

Classes: Direct, Generic

Instance Method Summary collapse

Constructor Details

#initialize(fields:) ⇒ SchemaTypes

Returns a new instance of SchemaTypes.



96
97
98
# File 'lib/super/form/schema_types.rb', line 96

def initialize(fields:)
  @fields = fields
end

Instance Method Details

#_destroy(**extras) ⇒ Object



172
173
174
175
176
177
178
# File 'lib/super/form/schema_types.rb', line 172

def _destroy(**extras)
  Generic.new(
    partial_path: "form_field__destroy",
    extras: extras,
    nested: {}
  )
end

#check_box(*args, **kwargs) ⇒ Object



120
121
122
# File 'lib/super/form/schema_types.rb', line 120

def check_box(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :check_box!, args: args, kwargs: kwargs)
end

#date_flatpickr(*args, **kwargs) ⇒ Object



124
125
126
# File 'lib/super/form/schema_types.rb', line 124

def date_flatpickr(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :date_flatpickr!, args: args, kwargs: kwargs)
end

#datetime_flatpickr(*args, **kwargs) ⇒ Object



128
129
130
# File 'lib/super/form/schema_types.rb', line 128

def datetime_flatpickr(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :datetime_flatpickr!, args: args, kwargs: kwargs)
end

#direct(method_name, *args, super_builder: true, **kwargs) ⇒ Object



104
105
106
# File 'lib/super/form/schema_types.rb', line 104

def direct(method_name, *args, super_builder: true, **kwargs)
  Direct.new(super_builder: super_builder, method_name: method_name, args: args, kwargs: kwargs)
end

#has_many(reader, **extras) ⇒ Object



144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/super/form/schema_types.rb', line 144

def has_many(reader, **extras)
  subfields = Schema::Fields.new
  @fields.nested do
    yield subfields
  end

  Generic.new(
    partial_path: "form_has_many",
    extras: extras.merge(reader: reader),
    nested: subfields.to_h
  )
end

#has_one(reader, **extras) ⇒ Object Also known as: belongs_to



157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/super/form/schema_types.rb', line 157

def has_one(reader, **extras)
  subfields = Schema::Fields.new
  @fields.nested do
    yield subfields
  end

  Generic.new(
    partial_path: "form_has_one",
    extras: extras.merge(reader: reader),
    nested: subfields.to_h
  )
end

#hidden_field(*args, **kwargs) ⇒ Object



132
133
134
# File 'lib/super/form/schema_types.rb', line 132

def hidden_field(*args, **kwargs)
  Direct.new(super_builder: false, method_name: :hidden_field, args: args, kwargs: kwargs)
end

#partial(partial_path, **extras) ⇒ Object



100
101
102
# File 'lib/super/form/schema_types.rb', line 100

def partial(partial_path, **extras)
  Generic.new(partial_path: partial_path, extras: extras, nested: {})
end

#password_field(*args, **kwargs) ⇒ Object



136
137
138
# File 'lib/super/form/schema_types.rb', line 136

def password_field(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :password_field!, args: args, kwargs: kwargs)
end

#rich_text_area(*args, **kwargs) ⇒ Object



116
117
118
# File 'lib/super/form/schema_types.rb', line 116

def rich_text_area(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :rich_text_area!, args: args, kwargs: kwargs)
end

#select(*args, **kwargs) ⇒ Object



108
109
110
# File 'lib/super/form/schema_types.rb', line 108

def select(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :select!, args: args, kwargs: kwargs)
end

#text_field(*args, **kwargs) ⇒ Object



112
113
114
# File 'lib/super/form/schema_types.rb', line 112

def text_field(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :text_field!, args: args, kwargs: kwargs)
end

#time_flatpickr(*args, **kwargs) ⇒ Object



140
141
142
# File 'lib/super/form/schema_types.rb', line 140

def time_flatpickr(*args, **kwargs)
  Direct.new(super_builder: true, method_name: :time_flatpickr!, args: args, kwargs: kwargs)
end