Module: DatadogBackup::LocalFilesystem
- Included in:
- Resources
- Defined in:
- lib/datadog_backup/local_filesystem.rb
Overview
Instance Method Summary collapse
- #all_file_ids ⇒ Object
- #all_file_ids_for_selected_resources ⇒ Object
- #all_files ⇒ Object
- #class_from_id(id) ⇒ Object
- #dump(object) ⇒ Object
- #file_type(filepath) ⇒ Object
- #filename(id) ⇒ Object
- #find_file_by_id(id) ⇒ Object
- #load_from_file(string, output_format) ⇒ Object
- #load_from_file_by_id(id) ⇒ Object
- #mydir ⇒ Object
- #purge ⇒ Object
- #write_file(data, filename) ⇒ Object
Instance Method Details
#all_file_ids ⇒ Object
17 18 19 |
# File 'lib/datadog_backup/local_filesystem.rb', line 17 def all_file_ids all_files.map { |file| ::File.basename(file, '.*') } end |
#all_file_ids_for_selected_resources ⇒ Object
21 22 23 24 25 |
# File 'lib/datadog_backup/local_filesystem.rb', line 21 def all_file_ids_for_selected_resources all_file_ids.select do |id| resources.include? class_from_id(id) end end |
#all_files ⇒ Object
13 14 15 |
# File 'lib/datadog_backup/local_filesystem.rb', line 13 def all_files ::Dir.glob(::File.join(backup_dir, '**', '*')).select { |f| ::File.file?(f) } end |
#class_from_id(id) ⇒ Object
27 28 29 30 |
# File 'lib/datadog_backup/local_filesystem.rb', line 27 def class_from_id(id) class_string = ::File.dirname(find_file_by_id(id)).split('/').last.capitalize ::DatadogBackup.const_get(class_string) end |
#dump(object) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/datadog_backup/local_filesystem.rb', line 32 def dump(object) case output_format when :json JSON.pretty_generate(object.deep_sort(array: disable_array_sort ? false : true)) when :yaml YAML.dump(object.deep_sort(array: disable_array_sort ? false : true)) else raise 'invalid output_format specified or not specified' end end |
#file_type(filepath) ⇒ Object
47 48 49 |
# File 'lib/datadog_backup/local_filesystem.rb', line 47 def file_type(filepath) ::File.extname(filepath).strip.downcase[1..].to_sym end |
#filename(id) ⇒ Object
43 44 45 |
# File 'lib/datadog_backup/local_filesystem.rb', line 43 def filename(id) ::File.join(mydir, "#{id}.#{output_format}") end |
#find_file_by_id(id) ⇒ Object
51 52 53 |
# File 'lib/datadog_backup/local_filesystem.rb', line 51 def find_file_by_id(id) ::Dir.glob(::File.join(backup_dir, '**', "#{id}.*")).first end |
#load_from_file(string, output_format) ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/datadog_backup/local_filesystem.rb', line 55 def load_from_file(string, output_format) case output_format when :json JSON.parse(string) when :yaml YAML.safe_load(string) else raise 'invalid output_format specified or not specified' end end |
#load_from_file_by_id(id) ⇒ Object
66 67 68 69 |
# File 'lib/datadog_backup/local_filesystem.rb', line 66 def load_from_file_by_id(id) filepath = find_file_by_id(id) load_from_file(::File.read(filepath), file_type(filepath)) end |
#mydir ⇒ Object
71 72 73 |
# File 'lib/datadog_backup/local_filesystem.rb', line 71 def mydir ::File.join(backup_dir, myclass) end |
#purge ⇒ Object
75 76 77 |
# File 'lib/datadog_backup/local_filesystem.rb', line 75 def purge ::FileUtils.rm(::Dir.glob(File.join(mydir, '*'))) end |
#write_file(data, filename) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/datadog_backup/local_filesystem.rb', line 79 def write_file(data, filename) LOGGER.info "Backing up #{filename}" file = ::File.open(filename, 'w') file.write(data) ensure file.close end |