Class: Formalist::Form
- Inherits:
-
Object
- Object
- Formalist::Form
- Extended by:
- Dry::Configurable, Definition
- Defined in:
- lib/formalist/form.rb,
lib/formalist/form/result.rb,
lib/formalist/form/definition.rb,
lib/formalist/form/result/attr.rb,
lib/formalist/form/result/many.rb,
lib/formalist/form/result/field.rb,
lib/formalist/form/result/group.rb,
lib/formalist/form/result/section.rb,
lib/formalist/form/definition/attr.rb,
lib/formalist/form/definition/many.rb,
lib/formalist/form/definition/field.rb,
lib/formalist/form/definition/group.rb,
lib/formalist/form/result/component.rb,
lib/formalist/form/validated_result.rb,
lib/formalist/form/definition/section.rb,
lib/formalist/form/definition_context.rb,
lib/formalist/form/definition/component.rb
Defined Under Namespace
Modules: Definition Classes: DefinitionContext, Result, ValidatedResult
Instance Attribute Summary collapse
- #elements ⇒ Object readonly private
- #schema ⇒ Object readonly private
Class Method Summary collapse
Instance Method Summary collapse
- #build(input = {}) ⇒ Object
-
#initialize(schema) ⇒ Form
constructor
A new instance of Form.
- #receive(form_post) ⇒ Object
Methods included from Definition
attr, component, field, group, many, section
Constructor Details
#initialize(schema) ⇒ Form
Returns a new instance of Form.
33 34 35 36 37 38 |
# File 'lib/formalist/form.rb', line 33 def initialize(schema) definition_compiler = DefinitionCompiler.new(self.class.display_adapters) @elements = definition_compiler.call(self.class.elements) @schema = schema end |
Instance Attribute Details
#elements ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
31 32 33 |
# File 'lib/formalist/form.rb', line 31 def elements @elements end |
#schema ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/formalist/form.rb', line 28 def schema @schema end |
Class Method Details
.display_adapters ⇒ Object
18 19 20 |
# File 'lib/formalist/form.rb', line 18 def self.display_adapters config.display_adapters end |
.elements ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
23 24 25 |
# File 'lib/formalist/form.rb', line 23 def self.elements @__elements__ ||= [] end |
Instance Method Details
#build(input = {}) ⇒ Object
40 41 42 |
# File 'lib/formalist/form.rb', line 40 def build(input = {}) Result.new(schema, elements, input) end |
#receive(form_post) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/formalist/form.rb', line 44 def receive(form_post) form_data = Formalist::OutputCompiler.new.call(JSON.parse(form_post)) form_schema = Dry::Validation::Schema::Form.new(schema.class.rules) input = form_schema.(form_data).output build(input) end |