Sha256: 8760899a609c2d28aac60562327d40d0e55ed4773e53e823d546a1194afb94ce

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

require 'fileutils'

module Docset
  class Base
    attr_reader :path

    def initialize(path)
      @path = path
      FileUtils.mkdir_p(documents_path)
      @db = IndexDB.new(docset_index_db_path)
      @db.init
    end

    def add_content(from, to = '')
      dest_path = File.join(contents_path, to)
      FileUtils.mkdir_p(File.dirname(dest_path))
      FileUtils.cp_r(from, dest_path)
    end

    def add_document(from, to = '')
      dest_path = File.join(documents_path, to)
      FileUtils.mkdir_p(File.dirname(dest_path))
      FileUtils.cp_r(from, dest_path)
    end

    def add_index(name, type, path)
      @db.add_index(name, type, path)
    end

    def add_plist(plist)
      File.write(plist_path, plist.to_s)
    end

    def write_content(to, content)
      dest_path = File.join(contents_path, to)
      FileUtils.mkdir_p(File.dirname(dest_path))
      File.write(dest_path, content)
    end

    def write_document(to, document)
      dest_path = File.join(documents_path, to)
      FileUtils.mkdir_p(File.dirname(dest_path))
      File.write(dest_path, document)
    end

    private

    def contents_path
      File.join(path, 'Contents')
    end

    def docset_index_db_path
      File.join(resources_path, 'docSet.dsidx')
    end

    def documents_path
      File.join(resources_path, 'Documents')
    end

    def plist_path
      File.join(contents_path, 'Info.plist')
    end

    def resources_path
      File.join(contents_path, 'Resources')
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
docset-0.1.0 lib/docset/base.rb