Class: MetadataPresenter::Service
- Inherits:
-
Metadata
- Object
- Metadata
- MetadataPresenter::Service
show all
- Defined in:
- app/models/metadata_presenter/service.rb
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
#confirmation_page ⇒ Object
49
50
51
52
53
|
# File 'app/models/metadata_presenter/service.rb', line 49
def confirmation_page
@confirmation_page ||= pages.find do |page|
page.type == 'page.confirmation'
end
end
|
#find_page_by_url(url) ⇒ Object
28
29
30
|
# File 'app/models/metadata_presenter/service.rb', line 28
def find_page_by_url(url)
all_pages.find { |page| strip_slash(page.url) == strip_slash(url) }
end
|
#find_page_by_uuid(uuid) ⇒ Object
32
33
34
|
# File 'app/models/metadata_presenter/service.rb', line 32
def find_page_by_uuid(uuid)
all_pages.find { |page| page.uuid == uuid }
end
|
#flow_object(uuid) ⇒ Object
8
9
10
11
12
|
# File 'app/models/metadata_presenter/service.rb', line 8
def flow_object(uuid)
MetadataPresenter::Flow.new(metadata.flow[uuid])
rescue StandardError
nil
end
|
55
56
57
|
# File 'app/models/metadata_presenter/service.rb', line 55
def meta
MetadataPresenter::Meta.new(configuration['meta'])
end
|
#next_page(from:) ⇒ Object
36
37
38
39
|
# File 'app/models/metadata_presenter/service.rb', line 36
def next_page(from:)
current_page = find_page_by_url(from)
pages[pages.index(current_page) + 1] if current_page.present?
end
|
#no_back_link?(current_page) ⇒ Boolean
59
60
61
|
# File 'app/models/metadata_presenter/service.rb', line 59
def no_back_link?(current_page)
current_page == start_page || current_page == confirmation_page
end
|
#pages ⇒ Object
2
3
4
5
6
|
# File 'app/models/metadata_presenter/service.rb', line 2
def pages
@pages ||= metadata.pages.map do |page|
MetadataPresenter::Page.new(page, editor: editor?)
end
end
|
#previous_page(current_page:, referrer:) ⇒ Object
41
42
43
44
45
46
47
|
# File 'app/models/metadata_presenter/service.rb', line 41
def previous_page(current_page:, referrer:)
return if current_page.nil? || referrer.nil?
unless no_back_link?(current_page)
flow_page(current_page) || referrer_page(referrer)
end
end
|
#service_slug ⇒ Object
24
25
26
|
# File 'app/models/metadata_presenter/service.rb', line 24
def service_slug
service_name.parameterize
end
|
#standalone_pages ⇒ Object
14
15
16
17
18
|
# File 'app/models/metadata_presenter/service.rb', line 14
def standalone_pages
@standalone_pages ||= metadata.standalone_pages.map do |page|
MetadataPresenter::Page.new(page, editor: editor?)
end
end
|
#start_page ⇒ Object
20
21
22
|
# File 'app/models/metadata_presenter/service.rb', line 20
def start_page
pages.first
end
|