class Panier::Application::SalesTaxService

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

Public Class Methods

new(input_reader = nil) click to toggle source
# File lib/panier/application/sales_tax_service.rb, line 11
def initialize(input_reader = nil)
  @input_reader = input_reader || InputReader.new
end

Public Instance Methods

evaluate_input(input) click to toggle source

Accepts a list of products and produces a receipt.

@param [String] input A list of products in CSV format. @param [String] A receipt in CSV format.

# 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