Module: Jazzy::SearchBuilder

Defined in:
lib/jazzy/search_builder.rb

Class Method Summary collapse

Class Method Details

.build(source_module, output_dir) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/jazzy/search_builder.rb', line 3

def self.build(source_module, output_dir)
  decls = source_module.all_declarations.select do |d|
    d.type && d.name && !d.name.empty?
  end
  index = Hash[decls.map do |d|
    [d.url,
     {
       name: d.name,
       abstract: d.abstract && d.abstract.split(/\n/).map(&:strip).first,
       parent_name: d.parent_in_code && d.parent_in_code.name,
     }.reject { |_, v| v.nil? || v.empty? }]
  end
  ]
  File.open(File.join(output_dir, 'search.json'), 'w') do |f|
    f.write(index.to_json)
  end
end