Class: Nucleon::Util::Disk

Inherits:
Object
  • Object
show all
Defined in:
lib/core/util/disk.rb

Constant Summary collapse

@@separator =

Properties

false
@@description =
''
@@file_lock =
Mutex.new

Class Method Summary collapse

Class Method Details

.delete(file_path) ⇒ Object




63
64
65
66
67
68
69
# File 'lib/core/util/disk.rb', line 63

def self.delete(file_path)
  result = nil
  @@file_lock.synchronize do
    result = ::File.delete(file_path)
  end
  result
end

.exists?(file) ⇒ Boolean


Utilities

Returns:

  • (Boolean)


17
18
19
# File 'lib/core/util/disk.rb', line 17

def self.exists?(file)
  return ::File.exists?(::File.expand_path(file))  
end

.filename(file_name) ⇒ Object




23
24
25
# File 'lib/core/util/disk.rb', line 23

def self.filename(file_name)
  return ( file_name.is_a?(Array) ? file_name.join(::File::SEPARATOR) : file_name.to_s )
end

.log(data, options = {}) ⇒ Object




73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/core/util/disk.rb', line 73

def self.log(data, options = {})
  reset = ( options[:file_name] || options[:mode] )
    
  @@file_lock.synchronize do      
    if file = ::File.open(( options[:file_name] ? options[:file_name] : 'log.txt' ), options[:mode]) 
      file.write("--------------------------------------\n") if @@separator
      file.write("#{@@description}\n") if @@description       
      file.write("#{data}\n")
      file.close
    end
  end
end

.read(file_name, options = {}) ⇒ Object




29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/core/util/disk.rb', line 29

def self.read(file_name, options = {})
  result = nil
  options[:mode] = ( options[:mode] ? options[:mode] : 'r' )
  
  @@file_lock.synchronize do
    begin
      if file = ::File.open(file_name, options[:mode])
        result = file.read
        file.close
      end
    rescue # TODO: Only catch error if file is not found.
    end
  end
  return result
end

.write(file_name, data, options = {}) ⇒ Object




47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/core/util/disk.rb', line 47

def self.write(file_name, data, options = {})
  result = nil
  options[:mode] = ( options[:mode] ? options[:mode] : 'w' )
      
  @@file_lock.synchronize do
    FileUtils.mkdir_p(::File.dirname(file_name))
    if file = ::File.open(file_name, options[:mode])
      result = file.write(data)
      file.close
    end
  end
  return result
end