class Grably::Job::Manifest
Manifest
file with job data. Manifest
keeps information about previous run including passed arguments and output file digests
Constants
- MANIFEST
Manifest
file location relative to jobdir
Attributes
manifest_file[R]
Public Class Methods
new(job_dir)
click to toggle source
# File lib/grably/job/manifest.rb, line 14 def initialize(job_dir) @job_dir = job_dir @data = OpenStruct.new(src: {}, srcs: {}, opt: {}, result: nil, meta: {}) @manifest_file = File.join(job_dir, MANIFEST) end
Public Instance Methods
dump()
click to toggle source
# File lib/grably/job/manifest.rb, line 58 def dump save_obj(manifest_file, @data) end
load()
click to toggle source
# File lib/grably/job/manifest.rb, line 54 def load @data = load_obj(manifest_file) if File.exist?(manifest_file) end
meta()
click to toggle source
# File lib/grably/job/manifest.rb, line 46 def meta @data.meta end
remove()
click to toggle source
# File lib/grably/job/manifest.rb, line 62 def remove FileUtils.rm_f(manifest_file) end
result()
click to toggle source
# File lib/grably/job/manifest.rb, line 50 def result @data.result.first end
result=(products)
click to toggle source
# File lib/grably/job/manifest.rb, line 41 def result=(products) digests = Grably::Digest.digest(*products) @data.result = [products, digests] end
update(name, type, value, update_hook)
click to toggle source
# File lib/grably/job/manifest.rb, line 20 def update(name, type, value, update_hook) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize case type when :src old_value, old_digest = @data.src[name] new_digest = Grably::Digest.digest(value).first when :srcs old_value, old_digest = @data.srcs[name] new_digest = Grably::Digest.digest(*value) when :opt old_value, _old_digest = @data.opt[name] old_digest = nil new_digest = nil else raise ArgumentError, 'Invalid type: ' + type end @data.send(type)[name] = [value, new_digest] update_hook.call(name, type, old_value, old_digest, value, new_digest) [old_value, old_digest] end