Class: Backup::Syncer::Cloud::LocalFile

Inherits:
Object
  • Object
show all
Defined in:
lib/backup/syncer/cloud/local_file.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ LocalFile

If path contains invalid UTF-8, it will be sanitized and the LocalFile object will be flagged as invalid. This is done so @file.path may be logged.



75
76
77
# File 'lib/backup/syncer/cloud/local_file.rb', line 75

def initialize(path)
  @path = sanitize(path)
end

Instance Attribute Details

#md5Object

Returns the value of attribute md5.



9
10
11
# File 'lib/backup/syncer/cloud/local_file.rb', line 9

def md5
  @md5
end

#pathObject (readonly)

Returns the value of attribute path.



8
9
10
# File 'lib/backup/syncer/cloud/local_file.rb', line 8

def path
  @path
end

Class Method Details

.find(dir, excludes = []) ⇒ Object

Returns a Hash of LocalFile objects for each file within dir, except those matching any of the excludes. Hash keys are the file’s path relative to dir.



16
17
18
19
20
21
22
23
# File 'lib/backup/syncer/cloud/local_file.rb', line 16

def find(dir, excludes = [])
  dir = File.expand_path(dir)
  hash = {}
  find_md5(dir, excludes).each do |file|
    hash[file.path.sub(dir + '/', '')] = file
  end
  hash
end

.new(*args) ⇒ Object

Return a new LocalFile object if it’s valid. Otherwise, log a warning and return nil.



27
28
29
30
31
32
33
34
35
# File 'lib/backup/syncer/cloud/local_file.rb', line 27

def new(*args)
  file = super
  if file.invalid?
    Logger.warn("\s\s[skipping] #{ file.path }\n" +
                "\s\sPath Contains Invalid UTF-8 byte sequences")
    file = nil
  end
  file
end

Instance Method Details

#invalid?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/backup/syncer/cloud/local_file.rb', line 79

def invalid?
  !!@invalid
end