Class: Hasta::FilteredS3File

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/hasta/filtered_s3_file.rb

Overview

An S3File delegate that drops filtered lines

Instance Method Summary collapse

Constructor Details

#initialize(s3_file, filter) ⇒ FilteredS3File

Returns a new instance of FilteredS3File.



9
10
11
12
# File 'lib/hasta/filtered_s3_file.rb', line 9

def initialize(s3_file, filter)
  super(s3_file)
  @filter = filter
end

Instance Method Details

#bodyObject



14
15
16
# File 'lib/hasta/filtered_s3_file.rb', line 14

def body
  each_line.to_a.join
end

#each_lineObject



22
23
24
25
26
27
28
# File 'lib/hasta/filtered_s3_file.rb', line 22

def each_line
  return enum_for(:each_line) unless block_given?

  __getobj__.each_line do |line|
    yield line if filter.include?(line)
  end
end

#fingerprintObject



18
19
20
# File 'lib/hasta/filtered_s3_file.rb', line 18

def fingerprint
  @fingerprint ||= Digest::MD5.hexdigest("#{__getobj__.fingerprint}_#{filter.to_s}")
end