Class: JsDuck::Web::Search

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

Overview

Creates list of all members in all classes that is used by the searching feature in UI.

Instance Method Summary collapse

Instance Method Details

#create(classes, assets, opts) ⇒ Object

Given list of classes and other assets, returns an array of hashes describing the search data.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/jsduck/web/search.rb', line 13

def create(classes, assets, opts)
  list = []

  classes.each do |cls|
    list << class_node(cls)

    cls[:alternateClassNames].each do |name|
      list << alt_node(name, cls)
    end

    cls[:aliases].each_pair do |key, items|
      items.each do |name|
        list << alias_node(key, name, cls)
      end
    end

    # add all local members, but skip constructors
    cls[:members].each do |m|
      list << member_node(m, cls) unless m[:hide] || constructor?(m)
    end
  end

  # Don't include guides data when separate guides search engine is provided
  assets.guides.each_item {|g| list << guide_node(g) } unless opts.search[:url]

  assets.videos.each_item {|v| list << video_node(v) }

  assets.examples.each_item {|e| list << example_node(e) }

  list
end