class Nexmo::Markdown::UseCase
Attributes
description[RW]
document_path[RW]
external_link[RW]
languages[RW]
products[RW]
root[RW]
title[RW]
Public Class Methods
all()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 49 def self.all files.map do |document_path| document_path = Pathname.new(document_path) document = File.read(document_path) frontmatter = YAML.safe_load(document) new({ title: frontmatter['title'], description: frontmatter['description'], external_link: frontmatter['external_link'], products: frontmatter['products'].split(',').map(&:strip), languages: frontmatter['languages'] || [], document_path: document_path, root: origin.to_s, }) end end
by_language(language, use_cases = [])
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 36 def self.by_language(language, use_cases = []) language = language.downcase use_cases = all if use_cases.empty? use_cases.select do |use_case| use_case.languages.map(&:downcase).include? language end end
by_product(product, use_cases = [])
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 29 def self.by_product(product, use_cases = []) use_cases = all if use_cases.empty? use_cases.select do |use_case| use_case.products.include? product end end
origin()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 45 def self.origin Pathname.new("#{Nexmo::Markdown::Config.docs_base_path}/_use_cases") end
Private Class Methods
files()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 67 def self.files Dir.glob("#{origin}/#{::I18n.default_locale}/**/*.md") end
Public Instance Methods
body()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 7 def body File.read(document_path) end
path()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 15 def path return external_link if external_link "/use-cases/#{relative_path}" end
relative_path()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 11 def relative_path document_path.relative_path_from(self.class.origin).sub(/\w{2}\//, '').to_s.gsub('.md', '') end
subtitle()
click to toggle source
# File lib/nexmo_markdown_renderer/models/use_case.rb, line 21 def subtitle normalized_products = products.map do |product| Product.normalize_title(product) end normalized_products.sort.to_sentence end