Method: RDoc::Generator::JsonIndex#generate

Defined in:
lib/rdoc/generator/json_index.rb

#generateObject

Writes the JSON index to disk



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/rdoc/generator/json_index.rb', line 131

def generate
  debug_msg "Generating JSON index"

  debug_msg "  writing search index to %s" % SEARCH_INDEX_FILE
  data = build_index

  return if @options.dry_run

  out_dir = @base_dir + @options.op_dir
  index_file = out_dir + SEARCH_INDEX_FILE

  FileUtils.mkdir_p index_file.dirname, :verbose => $DEBUG_RDOC

  index_file.open 'w', 0644 do |io|
    io.set_encoding Encoding::UTF_8
    io.write 'var search_data = '

    JSON.dump data, io, 0
  end
  unless ENV['SOURCE_DATE_EPOCH'].nil?
    index_file.utime index_file.atime, Time.at(ENV['SOURCE_DATE_EPOCH'].to_i).gmtime
  end

  Dir.chdir @template_dir do
    Dir['**/*.js'].each do |source|
      dest = File.join out_dir, source

      FileUtils.install source, dest, :mode => 0644, :preserve => true, :verbose => $DEBUG_RDOC
    end
  end
end