Class: LinkedRails::Form
- Inherits:
-
Object
show all
- Includes:
- Model, Model::Cacheable
- 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/url_input.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/file_input_serializer.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
Constant Summary
Model::Collections::COLLECTION_CUSTOMIZABLE_OPTIONS, Model::Collections::COLLECTION_OPTIONS, Model::Collections::COLLECTION_STATIC_OPTIONS
Class Method Summary
collapse
Instance Method Summary
collapse
#cacheable?, #publish_create, #publish_delete, #publish_update
Methods included from Model
#build_child
#root_relative_singular_iri, #singular_iri, #singular_iri?, #singular_iri_opts, #singular_iri_template, #singular_resource?
#preview_includes, #show_includes
#menu, #menu_list, #menus
Methods included from Model::IRI
#anonymous_iri, #anonymous_iri?, #iri, #iri_elements, #iri_opts, #rdf_type, #reload, #route_fragment
#enhanced_with?
#previously_changed_relations
#collection_for, #collection_iri, #collection_options_for, #collection_root_relative_iri, #parent_collections
#action, #action_list, #action_triples, #actions, #collection_actions, #favorite_actions
Class Method Details
21
22
23
|
# File 'app/models/linked_rails/form.rb', line 21
def form_iri
LinkedRails.iri(path: form_iri_path)
end
|
25
26
27
|
# File 'app/models/linked_rails/form.rb', line 25
def form_iri_path
RDF::URI("/forms/#{to_s.sub(/Form$/, '').tableize}")
end
|
29
30
31
|
# File 'app/models/linked_rails/form.rb', line 29
def form_options_iri(attr)
LinkedRails.iri(path: "/enums/#{model_class.to_s.tableize}/#{attr}")
end
|
.inherited(target) ⇒ Object
17
18
19
|
# File 'app/models/linked_rails/form.rb', line 17
def inherited(target)
target.pages = []
end
|
.iri ⇒ Object
33
34
35
|
# File 'app/models/linked_rails/form.rb', line 33
def iri
Vocab.form[:Form]
end
|
.model_class ⇒ Object
37
38
39
40
41
|
# File 'app/models/linked_rails/form.rb', line 37
def model_class
@model_class ||=
name.sub(/Form$/, '').safe_constantize ||
name.deconstantize.classify.sub(/Form$/, '').safe_constantize
end
|
.model_policy ⇒ Object
43
44
45
|
# File 'app/models/linked_rails/form.rb', line 43
def model_policy
@model_policy ||= Pundit::PolicyFinder.new(model_class).policy
end
|
.model_policy! ⇒ Object
47
48
49
|
# File 'app/models/linked_rails/form.rb', line 47
def model_policy!
model_policy || raise("No policy found for #{model_class}")
end
|
.requested_single_resource(params, _user_context) ⇒ Object
51
52
53
|
# File 'app/models/linked_rails/form.rb', line 51
def requested_single_resource(params, _user_context)
find_form_class(params)&.new
end
|
.serializer_attributes ⇒ Object
55
56
57
|
# File 'app/models/linked_rails/form.rb', line 55
def serializer_attributes
@serializer_attributes ||= serializer_class&.attributes_to_serialize || {}
end
|
.serializer_class ⇒ Object
59
60
61
|
# File 'app/models/linked_rails/form.rb', line 59
def serializer_class
@serializer_class ||= RDF::Serializers.serializer_for(model_class)
end
|
.serializer_reflections ⇒ Object
63
64
65
|
# File 'app/models/linked_rails/form.rb', line 63
def serializer_reflections
@serializer_reflections ||= serializer_class&.relationships_to_serialize || {}
end
|
Instance Method Details
#root_relative_iri(**_opts) ⇒ Object
12
13
14
|
# File 'app/models/linked_rails/form.rb', line 12
def root_relative_iri(**_opts)
self.class.form_iri_path
end
|