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