Class: Journeybook::PageResolver

Inherits:
Object
  • Object
show all
Defined in:
app/services/journeybook/page_resolver.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host:, path:, locale: nil) ⇒ PageResolver

Returns a new instance of PageResolver.



7
8
9
10
11
# File 'app/services/journeybook/page_resolver.rb', line 7

def initialize(host:, path:, locale: nil)
  @host = host
  @path = path
  @locale = locale
end

Class Method Details

.from_request(request, path: nil, locale: nil) ⇒ Object



3
4
5
# File 'app/services/journeybook/page_resolver.rb', line 3

def self.from_request(request, path: nil, locale: nil)
  new(host: request.host, path: path, locale: locale)
end

Instance Method Details

#callObject



13
14
15
16
17
18
19
20
# File 'app/services/journeybook/page_resolver.rb', line 13

def call
  matched_site = site
  return unless matched_site

  pages = matched_site.pages.published.by_path(matched_site.relative_path_for(normalized_path))
  pages = pages.where(locale: @locale) if @locale.present?
  pages.first
end

#siteObject



22
23
24
# File 'app/services/journeybook/page_resolver.rb', line 22

def site
  @site ||= find_site
end