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, base_app_name: nil, render_breadcrumb_json_ld: nil) ⇒ Page

rubocop:disable Metrics/ParameterLists



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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, base_app_name: nil, render_breadcrumb_json_ld: 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
  @base_app_name = base_app_name
  @render_breadcrumb_json_ld = render_breadcrumb_json_ld
end

Instance Attribute Details

#base_app_nameObject (readonly)

Returns the value of attribute base_app_name.



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

def base_app_name
  @base_app_name
end

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

#render_breadcrumb_json_ldObject (readonly)

Returns the value of attribute render_breadcrumb_json_ld.



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

def render_breadcrumb_json_ld
  @render_breadcrumb_json_ld
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



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

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



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

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

#resolved_imageObject



46
47
48
# File 'app/src/page_structured_data/page.rb', line 46

def resolved_image
  image || fallback_image
end

#title_with_hierarchiesObject



25
26
27
28
29
# File 'app/src/page_structured_data/page.rb', line 25

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