class Head
Attributes
config[R]
frontmatter[R]
Public Class Methods
new(frontmatter = nil)
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 21 def initialize(frontmatter = nil) @frontmatter = frontmatter after_initialize! validate_files_presence! end
Public Instance Methods
apple_touch_icon()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 70 def apple_touch_icon 'meta/apple-touch-icon.png' end
application_name()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 46 def application_name @application_name ||= config['application-name'] end
description()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 38 def description @description ||= Description.new(config: config, frontmatter: frontmatter).description end
favicon()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 50 def favicon 'meta/favicon.ico' end
favicon_32_squared()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 54 def favicon_32_squared 'meta/favicon-32x32.png' end
google_site_verification()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 42 def google_site_verification @google_site_verification ||= config['google-site-verification'] end
manifest()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 58 def manifest 'meta/manifest.json' end
mstile_144_squared()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 66 def mstile_144_squared 'meta/mstile-144x144.png' end
og_image()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 74 def og_image @og_image ||= "meta/#{config['og-image']}" end
og_image_height()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 82 def og_image_height @og_image_height ||= config['og-image-height'] end
og_image_width()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 78 def og_image_width @og_image_width ||= config['og-image-width'] end
safari_pinned_tab()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 62 def safari_pinned_tab 'meta/safari-pinned-tab.svg' end
title()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 28 def title @title ||= title_from_frontmatter || config.fetch('title') do raise "You must provide a 'title' parameter in header_meta.yml" end end
title_from_frontmatter()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 34 def title_from_frontmatter @frontmatter && (@frontmatter['meta_title'] || @frontmatter['title']) end
Private Instance Methods
after_initialize!()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 88 def after_initialize! config_path = "#{Rails.configuration.docs_base_path}/config/header_meta.yml" raise 'You must provide a config/header_meta.yml file in your documentation path.' unless File.exist?(config_path) @config = YAML.safe_load(File.open(config_path)) end
validate_files_presence!()
click to toggle source
# File lib/nexmo_developer/app/presenters/head.rb, line 95 def validate_files_presence! %i[favicon favicon_32_squared manifest safari_pinned_tab mstile_144_squared apple_touch_icon og_image].each do |file| raise "You must provide a #{send(file).sub('meta/', '')} file inside the public/meta directory" unless File.exist?("#{Rails.configuration.docs_base_path}/public/#{send(file)}") end end