Class: LinkedRails::Form
- Inherits:
-
Object
show all
- Includes:
- Model
- Defined in:
- app/models/linked_rails/form.rb,
app/models/linked_rails/form/page.rb,
app/models/linked_rails/form/field.rb,
app/models/linked_rails/form/group.rb,
app/models/linked_rails/form/field_factory.rb,
app/models/linked_rails/form/field/date_input.rb,
app/models/linked_rails/form/field/file_input.rb,
app/models/linked_rails/form/field/text_input.rb,
app/models/linked_rails/form/field/color_input.rb,
app/models/linked_rails/form/field/email_input.rb,
app/models/linked_rails/form/field/radio_group.rb,
app/models/linked_rails/form/field/number_input.rb,
app/models/linked_rails/form/field/select_input.rb,
app/models/linked_rails/form/field/slider_input.rb,
app/models/linked_rails/form/field/checkbox_group.rb,
app/models/linked_rails/form/field/checkbox_input.rb,
app/models/linked_rails/form/field/location_input.rb,
app/models/linked_rails/form/field/markdown_input.rb,
app/models/linked_rails/form/field/password_input.rb,
app/models/linked_rails/form/field/resource_field.rb,
app/serializers/linked_rails/form/page_serializer.rb,
app/models/linked_rails/form/field/date_time_input.rb,
app/models/linked_rails/form/field/text_area_input.rb,
app/serializers/linked_rails/form/field_serializer.rb,
app/serializers/linked_rails/form/group_serializer.rb,
app/models/linked_rails/form/field/association_input.rb,
app/models/linked_rails/form/field/postal_range_input.rb,
app/models/linked_rails/form/field/toggle_button_group.rb,
app/serializers/linked_rails/form/field/select_input_serializer.rb,
app/serializers/linked_rails/form/field/resource_field_serializer.rb,
app/serializers/linked_rails/form/field/association_input_serializer.rb
Overview
rubocop:disable Metrics/ClassLength
Defined Under Namespace
Classes: Field, FieldFactory, FieldSerializer, Group, GroupSerializer, Page, PageSerializer
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Model
#build_child, #singular_resource?
#preview_includes, #show_includes
Methods included from Model::Iri
#anonymous_iri, #anonymous_iri?, #iri, #iri_opts, #rdf_type, #reload, #route_fragment
#enhanced_with?
#previous_changes_by_predicate, #previously_changed_relations
#collection_for, #parent_collections
Class Method Details
20
21
22
|
# File 'app/models/linked_rails/form.rb', line 20
def form_iri
LinkedRails.iri(path: form_iri_path)
end
|
24
25
26
|
# File 'app/models/linked_rails/form.rb', line 24
def form_iri_path
RDF::URI("/forms/#{to_s.sub(/Form$/, '').tableize}")
end
|
28
29
30
|
# File 'app/models/linked_rails/form.rb', line 28
def form_options_iri(attr)
LinkedRails.iri(path: "/enums/#{model_class.to_s.tableize}/#{attr}")
end
|
.inherited(target) ⇒ Object
16
17
18
|
# File 'app/models/linked_rails/form.rb', line 16
def inherited(target)
target.pages = []
end
|
.iri ⇒ Object
32
33
34
|
# File 'app/models/linked_rails/form.rb', line 32
def iri
Vocab.form[:Form]
end
|
.model_class ⇒ Object
36
37
38
39
40
|
# File 'app/models/linked_rails/form.rb', line 36
def model_class
@model_class ||=
name.sub(/Form$/, '').safe_constantize ||
name.deconstantize.classify.sub(/Form$/, '').safe_constantize
end
|
.model_policy ⇒ Object
42
43
44
|
# File 'app/models/linked_rails/form.rb', line 42
def model_policy
@model_policy ||= Pundit::PolicyFinder.new(model_class).policy
end
|
.model_policy! ⇒ Object
46
47
48
|
# File 'app/models/linked_rails/form.rb', line 46
def model_policy!
model_policy || raise("No policy found for #{model_class}")
end
|
.preview_includes ⇒ Object
66
67
68
|
# File 'app/models/linked_rails/form.rb', line 66
def preview_includes
[pages: {groups: [fields: [:fail, :pass, shape: [:property, nested_shapes: :property]]]}]
end
|
.requested_single_resource(params, _user_context) ⇒ Object
50
51
52
|
# File 'app/models/linked_rails/form.rb', line 50
def requested_single_resource(params, _user_context)
find_form_class(params)&.new
end
|
.serializer_attributes ⇒ Object
54
55
56
|
# File 'app/models/linked_rails/form.rb', line 54
def serializer_attributes
@serializer_attributes ||= serializer_class&.attributes_to_serialize || {}
end
|
.serializer_class ⇒ Object
58
59
60
|
# File 'app/models/linked_rails/form.rb', line 58
def serializer_class
@serializer_class ||= RDF::Serializers.serializer_for(model_class)
end
|
.serializer_reflections ⇒ Object
62
63
64
|
# File 'app/models/linked_rails/form.rb', line 62
def serializer_reflections
@serializer_reflections ||= serializer_class&.relationships_to_serialize || {}
end
|
Instance Method Details
#root_relative_iri(_opts = {}) ⇒ Object
11
12
13
|
# File 'app/models/linked_rails/form.rb', line 11
def root_relative_iri(_opts = {})
self.class.form_iri_path
end
|