Class: Julewire::Core::CLI::Transcode

Inherits:
Object
  • Object
show all
Includes:
LineHelpers
Defined in:
lib/julewire/core/cli/transcode.rb

Constant Summary collapse

DEFAULT_MAX_VALUE_BYTES =
Serialization::TextEncoder::DEFAULT_MAX_VALUE_BYTES
FLAGS =
{
  "--color" => [:color, true],
  "--no-color" => [:color, false],
  "--plain" => %i[theme plain],
  "--punk" => %i[theme punk],
  "--skip-invalid" => %i[invalid skip],
  "--raw-invalid" => %i[invalid raw]
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(argv:, stdin:, stdout:) ⇒ Transcode

Returns a new instance of Transcode.



19
20
21
22
23
# File 'lib/julewire/core/cli/transcode.rb', line 19

def initialize(argv:, stdin:, stdout:)
  @argv = argv
  @stdin = stdin
  @stdout = stdout
end

Instance Method Details

#callObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/julewire/core/cli/transcode.rb', line 25

def call
  options = transcode_options
  encoder = encoder_for(options)
  each_entry(options.fetch(:path)) do |line_number, line|
    write_encoded_record_line(
      line,
      line_number,
      input_format: options.fetch(:from),
      invalid: options.fetch(:invalid),
      encoder: encoder
    )
  end
  0
end