Class: JsDuck::Categories

Inherits:
Object
  • Object
show all
Defined in:
lib/jsduck/categories.rb

Overview

Reads in categories and outputs them as HTML div

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(categories, doc_formatter, relations = {}) ⇒ Categories

Returns a new instance of Categories.



20
21
22
23
24
# File 'lib/jsduck/categories.rb', line 20

def initialize(categories, doc_formatter, relations={})
  @categories = categories
  @class_name = CategoriesClassName.new(doc_formatter, relations)
  @columns = Columns.new("classes")
end

Class Method Details

.create(filename, doc_formatter, relations) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/jsduck/categories.rb', line 11

def self.create(filename, doc_formatter, relations)
  if filename
    categories = FileCategories.new(filename, relations)
  else
    categories = AutoCategories.new(relations)
  end
  Categories.new(categories.generate, doc_formatter, relations)
end

Instance Method Details

#to_html(style = "") ⇒ Object

Returns HTML listing of classes divided into categories



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/jsduck/categories.rb', line 27

def to_html(style="")
  html = @categories.map do |category|
    [
      "<div class='section'>",
      "<h1>#{category['name']}</h1>",
      render_columns(category['groups']),
      "<div style='clear:both'></div>",
      "</div>",
    ]
  end.flatten.join("\n")

  return <<-EOHTML
    <div id='categories-content' style='#{style}'>
        #{html}
    </div>
  EOHTML
end