class Parsefiles::Folders

Constants

VALID_TYPES

Attributes

files[RW]
folder[RW]

Public Class Methods

new(folder,options={}) click to toggle source
# File lib/parsefiles/folders.rb, line 13
def initialize(folder,options={})
  @folder = check_location(folder)
  @files = get_files_with_date
  @options = options
end

Public Instance Methods

calc_start_date(days_back) click to toggle source
# File lib/parsefiles/folders.rb, line 56
def calc_start_date(days_back)
  date = Date.today - days_back
  date.strftime('%m-%d-%Y')
end
check_location(folder) click to toggle source
# File lib/parsefiles/folders.rb, line 19
def check_location(folder)
  if folder.match(/.*\.log$|txt$|gz$/i)
    "./#{folder}"
  else
    folder = remove_trailing_slash(folder)
    "#{folder}/*."+VALID_TYPES
  end
end
get_end_date() click to toggle source
# File lib/parsefiles/folders.rb, line 51
def get_end_date
  Folders.validate_date_format(@options["end_date"])
  @options["end_date"] if @options["end_date"]
end
get_files_in_range() click to toggle source
# File lib/parsefiles/folders.rb, line 32
def get_files_in_range
  start_date = get_start_date
  end_date = get_end_date

  result = []
  @files.each_with_index do |file,index|
    result << file[0] if Folders.date_in_range(file[1],start_date,end_date)
  end
  result
end
get_start_date() click to toggle source
# File lib/parsefiles/folders.rb, line 43
def get_start_date
  if @options["days_back"].to_i > 1
    days_back
  else
    start_date
  end
end
remove_trailing_slash(folder) click to toggle source
# File lib/parsefiles/folders.rb, line 28
def remove_trailing_slash(folder)
  folder.gsub(/(.*)\/$/,'\1')
end

Private Instance Methods

days_back() click to toggle source
# File lib/parsefiles/folders.rb, line 63
def days_back
  calc_start_date(@options[:days_back].to_i)
end
get_files_with_date() click to toggle source

Returns an array with file and date in unix time format [‘file.txt’,‘40001245’]

# File lib/parsefiles/folders.rb, line 73
def get_files_with_date
  file_list = Dir.glob(@folder)
  result = []
  file_list.reduce([]) do |file_stats,file|
    file_stats = Array.new
    file_stats << file
    file_stats << Folders.unix_ts(file)
    result << file_stats
  end
end
start_date() click to toggle source
# File lib/parsefiles/folders.rb, line 67
def start_date
  Folders.validate_date_format(@options["start_date"])
  @options["start_date"] if @options["start_date"]
end