Class: Super::Form::SchemaTypes
- Inherits:
-
Object
- Object
- Super::Form::SchemaTypes
- Defined in:
- lib/super/form/schema_types.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
- #_destroy(**extras) ⇒ Object
- #direct(method_name, *args, super_builder: true, **kwargs) ⇒ Object
- #has_many(reader, **extras) ⇒ Object
- #has_one(reader, **extras) ⇒ Object (also: #belongs_to)
-
#initialize(fields:) ⇒ SchemaTypes
constructor
A new instance of SchemaTypes.
- #partial(partial_path, **extras) ⇒ Object
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 |
Class Method Details
.define_schema_type_for(method_name) ⇒ Object
144 145 146 147 148 149 150 |
# File 'lib/super/form/schema_types.rb', line 144 def self.define_schema_type_for(method_name) class_eval(<<~RUBY) def #{method_name}(*args, **kwargs) Direct.new(super_builder: true, method_name: :#{method_name}!, args: args, kwargs: kwargs) end RUBY end |
Instance Method Details
#_destroy(**extras) ⇒ Object
136 137 138 139 140 141 142 |
# File 'lib/super/form/schema_types.rb', line 136 def _destroy(**extras) Generic.new( partial_path: "form_field__destroy", extras: extras, nested: {} ) 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
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/super/form/schema_types.rb', line 108 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
121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/super/form/schema_types.rb', line 121 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 |