lib/gm/notepad/app.rb in gm-notepad-0.0.11 vs lib/gm/notepad/app.rb in gm-notepad-0.0.12

- old
+ new

@@ -1,22 +1,26 @@ require 'dry-initializer' require 'gm/notepad/container' +require 'gm/notepad/line_renderer' require 'gm/notepad/throughput_text' +require 'gm/notepad/input_processor' module Gm module Notepad # Responsible for recording entries and then dumping them accordingly. class App extend Dry::Initializer - option :renderer, default: -> { Container.resolve(:renderer) } - option :input_processor, default: -> { Container.resolve(:input_processor) } + option :table_registry, default: -> { Container.resolve(:table_registry) }, reader: :private option :report_config, default: -> { Container.resolve(:config).report_config }, reader: :private option :list_tables, default: -> { Container.resolve(:config).list_tables }, reader: :private - def initialize(*args) + def initialize(*args, input_processor: nil, renderer: nil) super + @renderer = renderer || LineRenderer.new(table_registry: table_registry) + @input_processor = input_processor || InputProcessor.new(table_registry: table_registry) open! end + attr_reader :renderer, :input_processor def process(text:) output = input_processor.convert_to_output(input: text) renderer.render(output: output) end