Class: MetadataPresenter::TraversedPages
- Inherits:
-
Object
- Object
- MetadataPresenter::TraversedPages
- Defined in:
- app/models/metadata_presenter/traversed_pages.rb
Instance Attribute Summary collapse
-
#current_page ⇒ Object
readonly
Returns the value of attribute current_page.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
-
#user_data ⇒ Object
readonly
Returns the value of attribute user_data.
Instance Method Summary collapse
- #all ⇒ Object
-
#initialize(service, user_data, current_page = nil) ⇒ TraversedPages
constructor
A new instance of TraversedPages.
- #latest_pages ⇒ Object
Constructor Details
#initialize(service, user_data, current_page = nil) ⇒ TraversedPages
Returns a new instance of TraversedPages.
5 6 7 8 9 10 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 5 def initialize(service, user_data, current_page = nil) @service = service @user_data = user_data @pages = [service.start_page] @current_page = current_page || service.pages[-1] end |
Instance Attribute Details
#current_page ⇒ Object (readonly)
Returns the value of attribute current_page.
3 4 5 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 3 def current_page @current_page end |
#service ⇒ Object (readonly)
Returns the value of attribute service.
3 4 5 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 3 def service @service end |
#user_data ⇒ Object (readonly)
Returns the value of attribute user_data.
3 4 5 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 3 def user_data @user_data end |
Instance Method Details
#all ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 14 def all page_uuid = service.start_page.uuid service.flow.size.times do break if page_uuid == current_page.uuid flow_object = service.flow_object(page_uuid) if flow_object.branch? page = EvaluateConditionals.new( service: service, flow: flow_object, user_data: user_data ).page page_uuid = page.uuid else page_uuid = flow_object.default_next page = service.find_page_by_uuid(page_uuid) end @pages.push(page) if page && page.uuid != current_page.uuid end @pages end |
#latest_pages ⇒ Object
40 41 42 43 44 |
# File 'app/models/metadata_presenter/traversed_pages.rb', line 40 def latest_pages index = service.pages.index(current_page).to_i - 1 service.pages[0..index] end |