class PaperHouse::Dependency

Keeps compilation dependencies

Attributes

path[R]

Public Class Methods

new(name) click to toggle source

Creates an object that tracks depencency information about a rake task specified with the name argument.

@example

Dependency.new('hello')
# File lib/paper_house/dependency.rb, line 16
def initialize(name)
  @name = name
  @path = File.join(Rake.original_dir, ".#{name}.depends")
  @cache = {}
end

Public Instance Methods

read(object_file) click to toggle source

Reads the dependency information of object_file. @return [Array<String>]

# File lib/paper_house/dependency.rb, line 24
def read(object_file)
  db.transaction(true) do |store|
    store[object_file]
  end || []
end
write(object_file, dependent_files) click to toggle source

Saves the dependency information (object_file => dependent_files). @return [void]

# File lib/paper_house/dependency.rb, line 33
def write(object_file, dependent_files)
  db.transaction(false) do |store|
    store[object_file] = dependent_files
  end
end

Private Instance Methods

db() click to toggle source
# File lib/paper_house/dependency.rb, line 41
def db
  @cache[@name] ||= PStore.new(@path)
end