Class: JsDuck::SearchData

Inherits:
Object
  • Object
show all
Defined in:
lib/jsduck/search_data.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) ⇒ Object

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



9
10
11
12
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
44
# File 'lib/jsduck/search_data.rb', line 9

def create(classes, assets)
  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

    [:members, :statics].each do |group|
      cls[group].each_key do |type|
        cls.members(type, group).each do |m|
          # skip inherited items and constructors
          if m[:owner] == cls.full_name && m[:name] != cls.short_name
            list << member_node(m, cls)
          end
        end
      end
    end
  end

  assets.guides.each_item {|g| list << guide_node(g) }

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

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

  list
end