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