module LabClient::Docs

Shared Methods

Public Class Methods

docs() click to toggle source
# File lib/labclient/docs.rb, line 13
def self.docs
  @docs
end
json() click to toggle source
# File lib/labclient/docs.rb, line 9
def self.json
  @docs.to_json
end

Public Instance Methods

demo(value) click to toggle source
# File lib/labclient/docs.rb, line 56
def demo(value)
  @result[:demo_url] = "https://asciinema.org/a/#{value}.js"
  @result[:demo] = "<script id='asciicast-#{value}' src='#{@result[:demo_url]}' data-autoplay='true' data-loop='true' async></script>"
end
desc(value) click to toggle source
# File lib/labclient/docs.rb, line 52
def desc(value)
  @result[:desc] = value
end
doc(subgroup) { || ... } click to toggle source
# File lib/labclient/docs.rb, line 99
def doc(subgroup)
  @result = {}
  yield

  # Turn Class name into friendly name. Split multiple words
  @group = group_name

  # Docs Navigation Helper
  navigation(subgroup)

  # @result[:name] = name
  Docs.docs[@group] ||= {}
  Docs.docs[@group][subgroup] ||= []
  Docs.docs[@group][subgroup].push @result
end
example(value) click to toggle source
# File lib/labclient/docs.rb, line 61
def example(value)
  @result[:example] = value
end
group_name() click to toggle source

Allow for Custom Group Name Overrides Ruby warning of uninitialized variables

# File lib/labclient/docs.rb, line 76
def group_name
  if defined? @group_name
    @group_name
  else
    name.split('::', 2).last.split(/(?=[A-Z])/).join(' ')
  end
end
help(&block) click to toggle source

Klass Helper

# File lib/labclient/docs.rb, line 29
def help(&block)
  # require 'active_support/inflector'
  @group_name ||= group_name.pluralize
  doc 'Reference' do
    block.call
  end
end
markdown(value) click to toggle source
# File lib/labclient/docs.rb, line 47
def markdown(value)
  require 'kramdown' unless defined? Kramdown
  @result[:markdown] = Kramdown::Document.new(value).to_html
end
navigation(subgroup) click to toggle source

Helper to Make navigation rendered out once rather than evaluated on Ember

option(name, text) click to toggle source
# File lib/labclient/docs.rb, line 69
def option(name, text)
  @result[:options] ||= []
  @result[:options].push(name: name, text: text)
end
result(value) click to toggle source
# File lib/labclient/docs.rb, line 65
def result(value)
  @result[:result] = value
end
subtitle(value) click to toggle source
# File lib/labclient/docs.rb, line 43
def subtitle(value)
  @result[:subtitle] = value
end
title(value) click to toggle source

DSL Helpers

# File lib/labclient/docs.rb, line 39
def title(value)
  @result[:title] = value
end