You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
devdocs/lib/docs/core/manifest.rb

46 lines
797 B

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 do |doc|
json = doc.as_json
json[:mtime] = doc_mtime(doc)
json[:db_size] = doc_db_size(doc)
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
def doc_db_size(doc)
@store.size(doc.db_path)
end
end
end