class Tutorial::Metadata

Attributes

file_loader[R]
name[R]

Public Class Methods

new(name:) click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 6
def initialize(name:)
  @name        = name
  @file_loader = load_file!
end

Public Instance Methods

available_code_languages() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 27
def available_code_languages
  @available_code_languages ||= begin
    Nexmo::Markdown::DocFinder
      .code_languages_for_tutorial(path: path.sub('.yml', '/'))
      .map { |file_path| File.basename(Pathname.new(file_path).basename, '.yml') }
      .sort_by { |l| Nexmo::Markdown::CodeLanguage.find(l).weight }
  end
end
code_language() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 36
def code_language
  @code_language ||= begin
    available_code_languages
      .min_by { |k| Nexmo::Markdown::CodeLanguage.languages.map(&:key).index(k) }
  end
end
default_product() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 43
def default_product
  @default_product ||= products.first
end
description() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 19
def description
  @description ||= yaml['description']
end
load_file!() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 47
def load_file!
  Tutorial::FileLoader.new(
    root: Tutorial.tutorials_path,
    code_language: nil,
    doc_name: @name
  )
end
products() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 11
def products
  @products ||= yaml['products'] || []
end
title() click to toggle source
# File lib/nexmo_developer/app/models/tutorial/metadata.rb, line 15
def title
  @title ||= yaml['title']
end