Class: DuoSplitter::Encoders::BaseEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/duo_splitter/encoders/base_encoder.rb

Direct Known Subclasses

AACEncoder, MP3Encoder, WAVEncoder

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context:) ⇒ BaseEncoder

Returns a new instance of BaseEncoder.



18
19
20
21
# File 'lib/duo_splitter/encoders/base_encoder.rb', line 18

def initialize(context:)
  @context = context
  @commands = build_commands
end

Instance Attribute Details

#commandsObject (readonly)

Returns the value of attribute commands.



16
17
18
# File 'lib/duo_splitter/encoders/base_encoder.rb', line 16

def commands
  @commands
end

Class Method Details

.known_encodersObject



7
8
9
# File 'lib/duo_splitter/encoders/base_encoder.rb', line 7

def known_encoders
  @known_encoders ||= {}
end

.register_encoder(encoder_name, encoder_class) ⇒ Object



11
12
13
# File 'lib/duo_splitter/encoders/base_encoder.rb', line 11

def register_encoder(encoder_name, encoder_class)
  known_encoders[encoder_name.to_sym] = encoder_class
end

Instance Method Details

#runObject



23
24
25
26
27
28
29
# File 'lib/duo_splitter/encoders/base_encoder.rb', line 23

def run
  return if @commands.empty?

  @context.output_dir.mkpath

  BatchProcessor.new(message: 'encoding...', show_progress: @context.show_progress).run(@commands)
end