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
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Model
#build_child, #singular_resource?
#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
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
LinkedRails.collection_paginated_view_class.new(opts)
when :infinite
LinkedRails.collection_infinite_view_class.new(opts)
else
raise ActionController::BadRequest, "'#{type}' is not a valid collection type"
end
end
|
.policy_class ⇒ Object
95
96
97
|
# File 'app/models/linked_rails/collection/view.rb', line 95
def policy_class
LinkedRails::Collection::ViewPolicy
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
|