Class: LinkedRails::Collection::View
- Inherits:
-
Object
- Object
- LinkedRails::Collection::View
show all
- Includes:
- ActiveModel::Model, Model
- Defined in:
- app/models/linked_rails/collection/view.rb
Constant Summary
Model::Collections::COLLECTION_CUSTOMIZABLE_OPTIONS, Model::Collections::COLLECTION_OPTIONS, Model::Collections::COLLECTION_STATIC_OPTIONS
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Model
#build_child
#root_relative_singular_iri, #singular_iri, #singular_iri_opts, #singular_iri_template, #singular_resource?
#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?
#previous_changes_by_predicate, #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
Instance Attribute Details
#collection ⇒ Object
Returns the value of attribute collection.
10
11
12
|
# File 'app/models/linked_rails/collection/view.rb', line 10
def collection
@collection
end
|
#filter ⇒ Object
Returns the value of attribute filter.
10
11
12
|
# File 'app/models/linked_rails/collection/view.rb', line 10
def filter
@filter
end
|
Class Method Details
.iri ⇒ Object
77
78
79
|
# File 'app/models/linked_rails/collection/view.rb', line 77
def iri
[super, Vocab.as.CollectionPage]
end
|
.new(**opts) ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'app/models/linked_rails/collection/view.rb', line 81
def new(**opts)
type = opts.delete(:type)&.to_sym
return super if type.nil?
case type
when :paginated
collection_paginated_view_class.new(**opts)
when :infinite
collection_infinite_view_class.new(**opts)
else
raise ActionController::BadRequest, "'#{type}' is not a valid collection type"
end
end
|
Instance Method Details
#id ⇒ Object
15
|
# File 'app/models/linked_rails/collection/view.rb', line 15
alias id iri
|
#member_sequence ⇒ Object
21
22
23
24
25
26
27
28
|
# File 'app/models/linked_rails/collection/view.rb', line 21
def member_sequence
@member_sequence ||= LinkedRails::Sequence.new(
members,
id: members_iri,
parent: self,
scope: false
)
end
|
#members ⇒ Object
30
31
32
|
# File 'app/models/linked_rails/collection/view.rb', line 30
def members
@members ||= raw_members
end
|
#members_iri ⇒ Object
34
35
36
37
38
|
# File 'app/models/linked_rails/collection/view.rb', line 34
def members_iri
uri = iri.dup
uri.fragment = :members
uri
end
|
#page_size ⇒ Object
40
41
42
|
# File 'app/models/linked_rails/collection/view.rb', line 40
def page_size
collection.page_size&.to_i || default_page_size
end
|
#preview_includes ⇒ Object
44
45
46
47
48
|
# File 'app/models/linked_rails/collection/view.rb', line 44
def preview_includes
return {member_sequence: {}} unless association_class.include_in_collection?
{member_sequence: {members: association_class.preview_includes}}
end
|
#root_relative_iri(**opts) ⇒ Object
17
18
19
|
# File 'app/models/linked_rails/collection/view.rb', line 17
def root_relative_iri(**opts)
collection.unfiltered.root_relative_iri(**iri_opts.merge(opts))
end
|
#title ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'app/models/linked_rails/collection/view.rb', line 50
def title
plural = association_class.name.tableize
I18n.t(
"#{plural}.collection.#{filter&.values&.join('.').presence || name}",
count: ->(_opts) { total_count },
default: association_class.plural_label
)
end
|