Module: Libis::Workflow::Base::FileItem
Overview
Constant Summary
Constants included
from Status
Status::STATUS
Instance Method Summary
collapse
Methods included from WorkItem
#add_item, #each, #get_items, #get_parent, #get_root, #get_run, #namepath, #names, #save, #save!, #size, #to_filename, #to_s
Methods included from Logging
#<=, #add_log, #log_message
Methods included from Status
#check_status, #compare_status, #status, #status=, #status_label
Instance Method Details
#checksum(checksum_type) ⇒ Object
52
53
54
|
# File 'lib/libis/workflow/base/file_item.rb', line 52
def checksum(checksum_type)
self.properties[('checksum_' + checksum_type.to_s.downcase).to_sym]
end
|
#filelist ⇒ Object
23
24
25
|
# File 'lib/libis/workflow/base/file_item.rb', line 23
def filelist
(self.parent.filelist rescue Array.new).push(filename).compact
end
|
#filename ⇒ Object
15
16
17
|
# File 'lib/libis/workflow/base/file_item.rb', line 15
def filename
File.basename(self.properties[:filename]) || self.properties[:link]
end
|
#filename=(name) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/libis/workflow/base/file_item.rb', line 35
def filename=(name)
begin
stats = ::File.stat name
self.properties[:size] = stats.size
self.properties[:access_time] = stats.atime
self.properties[:modification_time] = stats.mtime
self.properties[:creation_time] = stats.ctime
self.properties[:mode] = stats.mode
self.properties[:uid] = stats.uid
self.properties[:gid] = stats.gid
set_checksum(:MD5, ::Digest::MD5.hexdigest(File.read(name))) if File.file?(name)
rescue
end
self.properties[:filename] = name
end
|
#filepath ⇒ Object
27
28
29
|
# File 'lib/libis/workflow/base/file_item.rb', line 27
def filepath
self.filelist.join('/')
end
|
#fullpath ⇒ Object
31
32
33
|
# File 'lib/libis/workflow/base/file_item.rb', line 31
def fullpath
self.properties[:filename]
end
|
#link ⇒ Object
60
61
62
|
# File 'lib/libis/workflow/base/file_item.rb', line 60
def link
self.properties[:link]
end
|
#link=(name) ⇒ Object
64
65
66
|
# File 'lib/libis/workflow/base/file_item.rb', line 64
def link=(name)
self.properties[:link] = name
end
|
#name ⇒ Object
19
20
21
|
# File 'lib/libis/workflow/base/file_item.rb', line 19
def name
self.properties[:name] || self.filename
end
|
#safe_name ⇒ Object
74
75
76
|
# File 'lib/libis/workflow/base/file_item.rb', line 74
def safe_name
self.name.to_s.gsub(/[^\w.-]/) { |s| '%%%02x' % s.ord }
end
|
#set_checksum(checksum_type, value) ⇒ Object
56
57
58
|
# File 'lib/libis/workflow/base/file_item.rb', line 56
def set_checksum(checksum_type, value)
self.properties[('checksum_' + checksum_type.to_s.downcase).to_sym] = value
end
|
#set_info(info) ⇒ Object
68
69
70
71
72
|
# File 'lib/libis/workflow/base/file_item.rb', line 68
def set_info(info)
info.each do |k, v|
self.properties[k] = v
end
end
|