class Nexmo::Markdown::CodeLanguage
Attributes
dependencies[RW]
icon[RW]
key[RW]
label[RW]
languages[W]
lexer[W]
linkable[W]
run_command[RW]
type[RW]
unindent[RW]
version[W]
weight[W]
Public Class Methods
all()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 49 def self.all languages + frameworks + terminal_programs + data end
data()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 45 def self.data where_type('data') end
exists?(key)
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 53 def self.exists?(key) all.detect { |lang| lang.key == key } end
find(key)
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 57 def self.find(key) raise 'Key is missing' unless key code_language = all.detect { |lang| lang.key == key } raise "Language #{key} does not exist." unless code_language code_language end
frameworks()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 37 def self.frameworks where_type('platforms') end
languages()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 33 def self.languages where_type('languages') end
linkable()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 64 def self.linkable all.select(&:linkable?) end
route_constraint()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 68 def self.route_constraint { code_language: Regexp.new(linkable.map(&:key).compact.join('|')) } end
terminal_programs()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 41 def self.terminal_programs where_type('terminal_programs') end
Private Class Methods
config()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 78 def self.config @config ||= YAML.load_file("#{Nexmo::Markdown::Config.docs_base_path}/config/code_languages.yml") end
where_type(type)
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 72 def self.where_type(type) config[type].map do |key, attributes| new(attributes.merge({ key: key, type: type })) end end
Public Instance Methods
languages()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 26 def languages @languages ||= [] @languages.map do |language| self.class.find(language) end end
lexer()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 21 def lexer return Rouge::Lexers::PHP.new({ start_inline: true }) if @lexer == 'php' Rouge::Lexer.find(@lexer) || Rouge::Lexer.find('text') end
linkable?()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 16 def linkable? return true if @linkable.nil? @linkable end
version()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 8 def version @version || nil end
weight()
click to toggle source
# File lib/nexmo_markdown_renderer/models/code_language.rb, line 12 def weight @weight || 999 end