Module: Libis::Workflow::Base::FileItem

Includes:
WorkItem
Included in:
DirItem, FileItem
Defined in:
lib/libis/workflow/base/file_item.rb

Overview

noinspection RubyResolve

Instance Method Summary collapse

Methods included from WorkItem

#add_item, #each, #get_item_list, #get_items, #get_parent, #get_root, #get_run, #label, #label=, #labelpath, #labels, #name=, #namepath, #names, #size, #to_filename, #to_s

Methods included from Logging

#<=, #add_log, #log_message

Methods included from Status

#check_status, #compare_status, #set_status, #status, #status_label, #status_progress, #status_text

Instance Method Details

#checksum(checksum_type) ⇒ Object



51
52
53
# File 'lib/libis/workflow/base/file_item.rb', line 51

def checksum(checksum_type)
  self.properties[('checksum_' + checksum_type.to_s.downcase)]
end

#filelistObject



22
23
24
# File 'lib/libis/workflow/base/file_item.rb', line 22

def filelist
  (self.parent.filelist rescue Array.new).push(filename).compact
end

#filenameObject



14
15
16
# File 'lib/libis/workflow/base/file_item.rb', line 14

def filename
  File.basename(self.properties['filename']) || self.properties['link']
end

#filename=(name) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/libis/workflow/base/file_item.rb', line 34

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, ::Libis::Tools::Checksum.hexdigest(name, :MD5)) if File.file?(name)
  rescue => _e
    # ignored
  end
  self.properties['filename'] = name
end

#filepathObject



26
27
28
# File 'lib/libis/workflow/base/file_item.rb', line 26

def filepath
  self.filelist.join('/')
end

#fullpathObject



30
31
32
# File 'lib/libis/workflow/base/file_item.rb', line 30

def fullpath
  self.properties['filename']
end


59
60
61
# File 'lib/libis/workflow/base/file_item.rb', line 59

def link
  self.properties['link']
end

#link=(name) ⇒ Object



63
64
65
# File 'lib/libis/workflow/base/file_item.rb', line 63

def link=(name)
  self.properties['link'] = name
end

#nameObject



18
19
20
# File 'lib/libis/workflow/base/file_item.rb', line 18

def name
  self.properties['name'] || self.filename
end

#safe_nameObject



73
74
75
# File 'lib/libis/workflow/base/file_item.rb', line 73

def safe_name
  self.name.to_s.gsub(/[^\w.-]/) { |s| '%%%02x' % s.ord }
end

#set_checksum(checksum_type, value) ⇒ Object



55
56
57
# File 'lib/libis/workflow/base/file_item.rb', line 55

def set_checksum(checksum_type, value)
  self.properties[('checksum_' + checksum_type.to_s.downcase)] = value
end

#set_info(info) ⇒ Object



67
68
69
70
71
# File 'lib/libis/workflow/base/file_item.rb', line 67

def set_info(info)
  info.each do |k, v|
    self.properties[k] = v
  end
end