Module: Dry

Extended by:
Dry
Included in:
Dry
Defined in:
lib/dry-file.rb,
lib/dry/file.rb,
lib/dry/file/version.rb

Defined Under Namespace

Modules: File

Instance Method Summary collapse

Instance Method Details

#run(max_chars, file) ⇒ Object

Usage

dry 40 test/data/sqli.txt

Params

max_chars: minimum number of different characters to keep a line file: input file



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dry-file.rb', line 14

def run(max_chars, file)
  max_chars = max_chars.to_i
  previous_line = ''
  file_out = Tempfile.new(File.basename(file))
  File.open(file).each_line do |l|
    if (previous_line.size - l.size).abs > max_chars || previous_line.chars.each_with_index.filter_map{|c,i| previous_line[i] != l[i]}.size > max_chars
      file_out.write l
      previous_line = l
    end
  end
  file_out.close
  FileUtils.mv(file_out.path, "dry-#{file}")
end