Class: PageStructuredData::Page

Inherits:
Object
  • Object
show all
Defined in:
app/src/page_structured_data/page.rb

Overview

Basic page metadata for any page

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(title:, description: nil, image: nil, extra_title: '', breadcrumb: nil, page_type: nil, page_types: nil, canonical_url: nil, fallback_image: nil) ⇒ Page

rubocop:disable Metrics/ParameterLists



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/src/page_structured_data/page.rb', line 9

def initialize(title:, description: nil, image: nil, # rubocop:disable Metrics/ParameterLists
               extra_title: '', breadcrumb: nil, page_type: nil, page_types: nil, canonical_url: nil,
               fallback_image: nil)
  @title = title
  @description = description
  @image = image
  @extra_title = extra_title
  @breadcrumb = breadcrumb
  @page_type = page_type
  @page_types = page_types
  @canonical_url = canonical_url
  @fallback_image = fallback_image
end

Instance Attribute Details

Returns the value of attribute breadcrumb.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def breadcrumb
  @breadcrumb
end

#canonical_urlObject (readonly)

Returns the value of attribute canonical_url.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def canonical_url
  @canonical_url
end

#descriptionObject (readonly)

Returns the value of attribute description.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def description
  @description
end

#extra_titleObject (readonly)

Returns the value of attribute extra_title.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def extra_title
  @extra_title
end

#fallback_imageObject (readonly)

Returns the value of attribute fallback_image.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def fallback_image
  @fallback_image
end

#imageObject (readonly)

Returns the value of attribute image.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def image
  @image
end

#page_typeObject (readonly)

Returns the value of attribute page_type.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def page_type
  @page_type
end

#page_typesObject (readonly)

Returns the value of attribute page_types.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def page_types
  @page_types
end

#titleObject (readonly)

Returns the value of attribute title.



6
7
8
# File 'app/src/page_structured_data/page.rb', line 6

def title
  @title
end

Instance Method Details

#json_ldsObject



37
38
39
40
41
42
# File 'app/src/page_structured_data/page.rb', line 37

def json_lds
  output = []
  output << breadcrumb_json_ld if (breadcrumb_json_ld = self.breadcrumb_json_ld).present?
  resolved_page_types.each { |resolved_page_type| output << resolved_page_type.json_ld }
  output.join
end

#page_titleObject



29
30
31
32
33
34
35
# File 'app/src/page_structured_data/page.rb', line 29

def page_title
  result = title_with_hierarchies.join(separator)
  if base_app_name.present?
    result += separator + base_app_name
  end
  result
end

#resolved_imageObject



44
45
46
# File 'app/src/page_structured_data/page.rb', line 44

def resolved_image
  image || fallback_image
end

#title_with_hierarchiesObject



23
24
25
26
27
# File 'app/src/page_structured_data/page.rb', line 23

def title_with_hierarchies
  current_page = extra_title.present? ? [title, extra_title] : [title]
  current_page += breadcrumb.titles.reverse if breadcrumb.present?
  current_page
end