class DumpFile

Class for single DB dump file

Constants

DB_DUMP_EXTENSIONS
DB_DUMP_TIMESTAMP
DB_DUMP_TIMESTAMP_REGEXP
DB_DUMP_TIMESTAMP_REGEXP_MAP

Attributes

db_config[RW]
db_dumps_dir[RW]
format[R]
timestamp[R]
version[R]

Public Class Methods

all() click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 65
def all
        Dir[File.join(db_dumps_dir, '*')]
                .select { |file| file.match?(db_dump_regexp) }
                .map! { |file| new filename: file }
                .sort!
end
db_dump_regexp() click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 49
def db_dump_regexp
        return unless db_config
        return @db_dump_regexp if defined?(@db_dump_regexp)

        regexp_escaped_db_dump_extensions =
                DB_DUMP_EXTENSIONS.values.map do |db_dump_extension|
                        Regexp.escape(db_dump_extension)
                end

        @db_dump_regexp = /^
                #{db_dumps_dir}#{Regexp.escape(File::SEPARATOR)}
                #{db_config[:database]}_#{DB_DUMP_TIMESTAMP_REGEXP}
                (#{regexp_escaped_db_dump_extensions.join('|')})
        $/xo
end
new(filename: nil, format: 'custom') click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 75
def initialize(filename: nil, format: 'custom')
        if filename
                @extension = File.extname(filename)
                @format = DB_DUMP_EXTENSIONS.key(@extension)
                self.version = filename[/#{DB_DUMP_TIMESTAMP_REGEXP}/o]
        else
                @format = format
                @extension = DB_DUMP_EXTENSIONS[@format]
                self.timestamp = Time.now
        end
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 87
def <=>(other)
        timestamp <=> other.timestamp
end
path() click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 99
def path
        File.join self.class.db_dumps_dir, "#{self.class.db_config[:database]}_#{version}#{@extension}"
end
print() click to toggle source
to_s() click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 91
def to_s
        "#{readable_timestamp} #{format}"
end

Private Instance Methods

readable_timestamp() click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 115
def readable_timestamp
        Paint[timestamp.strftime('%F %R'), :cyan]
end
timestamp=(value) click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 110
def timestamp=(value)
        @timestamp = value
        @version = timestamp.strftime(DB_DUMP_TIMESTAMP)
end
version=(value) click to toggle source
# File lib/psql_toys/template/dumps/_dump_file.rb, line 105
def version=(value)
        @version = value
        @timestamp = Time.strptime(version, DB_DUMP_TIMESTAMP)
end