class Chronicle::ETL::FileExtractor

Public Instance Methods

extract() { |data, metadata| ... } click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 6
def extract
  if file?
    extract_file do |data, metadata|
      yield(data, metadata)
    end
  elsif directory?
    extract_from_directory do |data, metadata|
      yield(data, metadata)
    end
  end
end
results_count() click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 18
def results_count
  if file?
    return 1
  else
    search_pattern = File.join(@options[:filename], '**/*.eml')
    Dir.glob(search_pattern).count
  end
end

Private Instance Methods

directory?() click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 43
def directory?
  Pathname.new(@options[:filename]).directory?
end
extract_file() { |read, {filename: options}| ... } click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 38
def extract_file
  file = File.open(@options[:filename])
  yield(file.read, {filename: @options[:filename]})
end
extract_from_directory() { |read, {filename: file}| ... } click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 29
def extract_from_directory
  search_pattern = File.join(@options[:filename], '**/*.eml')
  filenames = Dir.glob(search_pattern)
  filenames.each do |filename|
    file = File.open(filename)
    yield(file.read, {filename: file})
  end
end
file?() click to toggle source
# File lib/chronicle/etl/extractors/file_extractor.rb, line 47
def file?
  Pathname.new(@options[:filename]).file?
end