Class: Panier::Application::SalesTaxService

Inherits:
Object
  • Object
show all
Defined in:
lib/panier/application/sales_tax_service.rb

Overview

This is an application layer service responsible for handling the use-case of taking a list of items and producing a receipt.

Instance Method Summary collapse

Constructor Details

#initialize(input_reader = nil) ⇒ SalesTaxService

Returns a new instance of SalesTaxService.



11
12
13
# File 'lib/panier/application/sales_tax_service.rb', line 11

def initialize(input_reader = nil)
  @input_reader = input_reader || InputReader.new
end

Instance Method Details

#evaluate_input(input) ⇒ Object

Accepts a list of products and produces a receipt.

Parameters:

  • input (String)

    A list of products in CSV format.

  • A (String)

    receipt in CSV format.



20
21
22
23
24
25
# File 'lib/panier/application/sales_tax_service.rb', line 20

def evaluate_input(input)
  line_items = @input_reader.parse_input(input)
  receipt = Receipt.new(line_items)
  decorator = Panier::Decorators::ReceiptDecorator.new(receipt)
  decorator.to_csv
end