#!/usr/bin/env ruby # frozen_string_literal: true require 'bundler/setup' require "planet_express_express" require "stringio" data = File.read(ARGV[0]) output = StringIO.new PlanetExpressExpress::ShipmentReader.new(PlanetExpressExpress::PRICE_LIST).read_shipments(data) do |shipments| PlanetExpressExpress::Rules.new(PlanetExpressExpress::PRICE_LIST).apply_rules(shipments) PlanetExpressExpress::DiscountBudget.new(PlanetExpressExpress::DISCOUNT_LIMIT).limit_discounts(shipments) PlanetExpressExpress::Formatter.new(output).format(shipments) output.rewind puts output.read output.rewind end