Module: FileProvider

Included in:
BaseDatafier, CSVifier
Defined in:
lib/datafy/FileProvider.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#file_nameObject (readonly)

Returns the value of attribute file_name.



47
48
49
# File 'lib/datafy/FileProvider.rb', line 47

def file_name
  @file_name
end

Class Method Details

.backupFile(fileName) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
# File 'lib/datafy/FileProvider.rb', line 88

def self.backupFile fileName
    status = nil
    if File.file?(fileName)
        backupName = getBackupFileName fileName
        FileUtils.cp(fileName,backupName)
        status = { status: :backedUp, name: backupName }
    else
        status = { status: :originalFileNotFound }
    end
    return status
end

.dataDirObject



15
16
17
# File 'lib/datafy/FileProvider.rb', line 15

def self.dataDir
    @data_dir ||= getDataDir
end

.dataDir=(dir) ⇒ Object



39
40
41
# File 'lib/datafy/FileProvider.rb', line 39

def self.dataDir= dir
    @data_dir = dir
end

.getBackupFileName(fileName) ⇒ Object



104
105
106
107
# File 'lib/datafy/FileProvider.rb', line 104

def self.getBackupFileName fileName
    fqname = getDataFileName fileName
    "#{fileName}.#{DateTime.now}"
end

.getDataDirObject



19
20
21
# File 'lib/datafy/FileProvider.rb', line 19

def self.getDataDir
    getDir 'data'
end

.getDataFileName(fileName) ⇒ Object



49
50
51
52
53
# File 'lib/datafy/FileProvider.rb', line 49

def self.getDataFileName fileName
    normFileName = fileName.split('/').last
    file_name = "#{dataDir}/#{normFileName}"
    return file_name
end

.getDir(dir = 'data') ⇒ Object



31
32
33
34
35
36
37
# File 'lib/datafy/FileProvider.rb', line 31

def self.getDir dir='data'
    dir_name =  "#{localDir}/#{dir}".gsub(/[\/]+/,'/')
    unless Dir.exists?(dir_name)
        Dir.mkdir(dir_name)
    end
    return dir_name
end

.getLogDirObject



27
28
29
# File 'lib/datafy/FileProvider.rb', line 27

def self.getLogDir
    getDir 'logs'
end

.localDirObject



7
8
9
# File 'lib/datafy/FileProvider.rb', line 7

def self.localDir
    @local_dir ||= Dir.pwd
end

.localDir=(dir) ⇒ Object



11
12
13
# File 'lib/datafy/FileProvider.rb', line 11

def self.localDir= dir
    @local_dir = dir
end

.logDirObject



23
24
25
# File 'lib/datafy/FileProvider.rb', line 23

def self.logDir
    @log_dir ||= getLogDir
end

.logDir=(dir) ⇒ Object



43
44
45
# File 'lib/datafy/FileProvider.rb', line 43

def self.logDir= dir
    @log_dir = dir
end

Instance Method Details

#backupFile(fileName) ⇒ Object



100
101
102
# File 'lib/datafy/FileProvider.rb', line 100

def backupFile fileName
    self.class.backupFile fileName
end

#dataTextFile(fileName, mode = 'a') ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/datafy/FileProvider.rb', line 55

def dataTextFile fileName, mode='a'
    fqname = getDataFileName(fileName)
    file = nil
    begin
        file = File.open(fqname,mode)
    rescue => e
        puts "FileProvider.dataTextFile(#{fileName}) problem: #{e.message}"
        file = nil
    end
    # return HarvesterFile.new fileName, fqname, file
    return file
end

#openLogFile(fileName = "#{self.class.to_s}_log.txt") ⇒ Object



68
69
70
71
# File 'lib/datafy/FileProvider.rb', line 68

def openLogFile fileName="#{self.class.to_s}_log.txt"
    fqname = getDataFileName(fileName)
    @logFile = File.open(fqname, 'a+')
end

#removeFile(fileName) ⇒ Object

def openLogFile



73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/datafy/FileProvider.rb', line 73

def removeFile fileName
    fqname = getDataFileName(fileName)
    status = ''
    if File.file?(fqname)
        # puts 'Data file already exists'
        backupFile(fqname)
        # puts "removing data file: '#{fileName}' -> '#{fqname}'"
        result = system "rm '#{fqname}'"
        status = result.is_a?(TrueClass) ? 'Success' : 'Failue'
    else
        status = 'File not found'
    end
    return status
end