class TutorialListItem
Attributes
path[R]
product[RW]
Public Class Methods
new(path)
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 5 def initialize(path) @path = path end
Public Instance Methods
as_json()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 82 def as_json { root: root, path: path, filename: filename, external_link: external_link, first_step: first_step, languages: languages, title: title, description: description, products: products, subtitle: subtitle, is_file?: is_file?, is_task?: is_task?, product: product, } end
available_languages()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 72 def available_languages languages.map do |language| OpenStruct.new( language: language, label: Nexmo::Markdown::CodeLanguage.find(language).label, url: external_link || "/#{products.join}/tutorials/#{filename}/#{first_step}/#{language}" ) end end
description()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 40 def description tutorial.metadata.description end
external_link()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 32 def external_link tutorial.metadata.external_link end
filename()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 28 def filename File.basename(@path, '.yml') end
first_step()
click to toggle source
rubocop:enable Naming/PredicateName
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 58 def first_step return if tutorial.metadata.external_link tutorial.first_step end
is_file?()
click to toggle source
rubocop:disable Naming/PredicateName
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 49 def is_file? true end
is_task?()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 53 def is_task? true end
languages()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 20 def languages @languages ||= tutorial.available_code_languages.map(&:downcase) end
product_url()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 64 def product_url "/#{I18n.locale}/#{products.join}/tutorials" end
products()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 44 def products # rubocop:disable Rails/Delegate tutorial.products end
root()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 24 def root "#{Rails.configuration.docs_base_path}/config/tutorials" end
subtitle()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 13 def subtitle products .map { |product| Product.normalize_title(product) } .sort .to_sentence end
title()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 36 def title tutorial.metadata.title end
tutorial()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 9 def tutorial @tutorial ||= Tutorial.load(File.basename(@path, '.yml'), nil) end
url()
click to toggle source
# File lib/nexmo_developer/app/presenters/tutorial_list_item.rb, line 68 def url external_link || "/#{I18n.locale}/#{products.join}/tutorials/#{filename}/#{first_step}" end