Class: MetadataPresenter::Page
- Inherits:
-
Metadata
show all
- Includes:
- ActiveModel::Validations
- Defined in:
- app/models/metadata_presenter/page.rb
Constant Summary
collapse
- NOT_EDITABLE =
%i[
_uuid
_id
_type
steps
add_component
add_extra_component
].freeze
Instance Attribute Summary
Attributes inherited from Metadata
#metadata
Instance Method Summary
collapse
Methods inherited from Metadata
#==, #editor?, #id, #initialize, #method_missing, #respond_to_missing?, #to_json, #type, #uuid
Instance Method Details
#all_components ⇒ Object
21
22
23
|
# File 'app/models/metadata_presenter/page.rb', line 21
def all_components
[components, ].flatten.compact
end
|
#components ⇒ Object
25
26
27
|
# File 'app/models/metadata_presenter/page.rb', line 25
def components
to_components(metadata.components, collection: :components)
end
|
#components_by_type(type) ⇒ Object
33
34
35
36
37
38
39
|
# File 'app/models/metadata_presenter/page.rb', line 33
def components_by_type(type)
supported_components = page_components(raw_type)[type]
all_components.select do |component|
supported_components.include?(component.type)
end
end
|
#content_components ⇒ Object
53
54
55
|
# File 'app/models/metadata_presenter/page.rb', line 53
def content_components
page_components(raw_type)[:content]
end
|
#editable_attributes ⇒ Object
17
18
19
|
# File 'app/models/metadata_presenter/page.rb', line 17
def editable_attributes
to_h.reject { |k, _| k.in?(NOT_EDITABLE) }
end
|
29
30
31
|
# File 'app/models/metadata_presenter/page.rb', line 29
def
to_components(metadata., collection: :extra_components)
end
|
49
50
51
|
# File 'app/models/metadata_presenter/page.rb', line 49
def input_components
page_components(raw_type)[:input]
end
|
#template ⇒ Object
45
46
47
|
# File 'app/models/metadata_presenter/page.rb', line 45
def template
"metadata_presenter/#{type.gsub('.', '/')}"
end
|
#to_partial_path ⇒ Object
41
42
43
|
# File 'app/models/metadata_presenter/page.rb', line 41
def to_partial_path
type.gsub('.', '/')
end
|
#upload_components ⇒ Object
57
58
59
|
# File 'app/models/metadata_presenter/page.rb', line 57
def upload_components
components.select(&:upload?)
end
|