require 'yajl/json_gem' module Docs class Manifest FILENAME = 'docs.json' def initialize(store, docs) @store = store @docs = docs end def store @store.write FILENAME, to_json end def as_json indexed_docs.map(&:as_json).each do |json| json[:mtime] = doc_mtime(json) end end def to_json JSON.generate(as_json) end private def indexed_docs @docs.select do |doc| @store.exist?(doc.index_path) && @store.exist?(doc.db_path) end end def doc_mtime(doc) [@store.mtime(doc[:index_path]).to_i, @store.mtime(doc[:db_path]).to_i].max end end end