kibitan/masking

View on GitHub
lib/masking.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'masking/cli'
require 'masking/config'
require 'masking/sql_dump_line'

module Masking
  class << self
    def run
      Main.new.run
    end
  end

  class Main
    def initialize(input: $stdin, output: $stdout, line_processor: SQLDumpLine)
      @input  = input.set_encoding(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
      @output = output.set_encoding(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
      @line_processor = line_processor
    end

    def run
      input.each_line do |line|
        output.print line_processor.new(line).mask
      end
    end

    private

    attr_reader :input, :output, :line_processor
  end
end