Class: LogicalConstruct::Manifest

Inherits:
SatisfiableTask show all
Includes:
ResolutionProtocol, SatisfiableManager
Defined in:
lib/logical-construct/resolving-task.rb

Instance Method Summary collapse

Methods included from ResolutionProtocol

#digest, #file_checksum, #generate_checksum, #web_path

Methods included from SatisfiableManager

#add_satisfiable, #default_configuration, #define

Methods inherited from SatisfiableTask

#criteria, #execute, #prefer_file?, #receive, #receive_file

Instance Method Details

#fulfill(data) ⇒ Object



105
106
107
108
109
110
111
112
113
114
# File 'lib/logical-construct/resolving-task.rb', line 105

def fulfill(data)
  self.manifest = YAML::load(data)
  satisfiables.each do |sat|
    path = sat.target_path
    checksum = manifest[sat.name]
    if invalid_checksum(checksum, path)
      File::rename(path, path + ".invalid")
    end
  end
end

#invalid_checksum(checksum, path) ⇒ Object



95
96
97
98
99
# File 'lib/logical-construct/resolving-task.rb', line 95

def invalid_checksum(checksum, path)
  return false unless File::exists?(path)
  return true if checksum.nil? or checksum.empty?
  return checksum != file_checksum(path)
end

#needed?Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/logical-construct/resolving-task.rb', line 101

def needed?
  manifest.nil?
end