class S3DataPacker::FilenameGenerator
Attributes
number[R]
pattern[R]
splitter[R]
Public Class Methods
new(opts={})
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 5 def initialize opts={} @number = opts[:start_at] || 1 @prefix = opts[:prefix] || default_options[:prefix] @suffix = opts[:suffix] || default_options[:suffix] @pattern = opts[:pattern] || default_options[:pattern] @splitter = opts[:splitter] || default_options[:splitter] validate_pattern! end
Public Instance Methods
datestamp()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 18 def datestamp; Time.now.strftime('%Y%m%d'); end
generate!()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 22 def generate! name = pattern.map{ |key| send(key) } name.delete_if { |value| value.nil? || value == '' } name = name.map(&:to_s).join(splitter) @number += 1 name end
prefix()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 19 def prefix; @prefix; end
suffix()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 20 def suffix; @suffix; end
timecode_dec()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 15 def timecode_dec; Time.now.to_f; end
timecode_int()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 14 def timecode_int; Time.now.to_i; end
timestamp()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 17 def timestamp; Time.now.strftime('%Y%m%d%H%M%s'); end
Private Instance Methods
default_options()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 32 def default_options @default_options ||= S3DataPacker.config.filename_generator_defaults end
validate_pattern!()
click to toggle source
# File lib/s3_data_packer/filename_generator.rb, line 36 def validate_pattern! valid = %i[timecode_int timecode_dec number timestamp datestamp prefix suffix] pattern.each do |item| raise ArgumentError, "Invalid pattern key, has to be a symbol" unless Symbol === item raise ArgumentError, "Invalid pattern key #{item}. Allowed: #{valid.join(', ')}" unless valid.include?(item) end end