freight_kit 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -2
  3. data/README.md +1 -2
  4. data/Rakefile +6 -0
  5. data/VERSION +1 -1
  6. data/configuration/locations/amazon_warehouses.yml +3330 -0
  7. data/freight_kit.gemspec +13 -13
  8. data/lib/freight_kit/address_normalizer.rb +26 -0
  9. data/lib/freight_kit/amazon_warehouse.rb +33 -0
  10. data/lib/freight_kit/api_clients/soap_client.rb +7 -9
  11. data/lib/freight_kit/carrier.rb +250 -303
  12. data/lib/freight_kit/carriers/a1_express.rb +25 -0
  13. data/lib/freight_kit/carriers/a_duie_pyle.rb +30 -0
  14. data/lib/freight_kit/carriers/aaa_cooper.rb +11 -0
  15. data/lib/freight_kit/carriers/aaa_expedited_services.rb +10 -0
  16. data/lib/freight_kit/carriers/ab_brothers_usa_inc.rb +12 -0
  17. data/lib/freight_kit/carriers/aberdeen_express_inc.rb +28 -0
  18. data/lib/freight_kit/carriers/abf_freight_system.rb +492 -0
  19. data/lib/freight_kit/carriers/access_transport.rb +10 -0
  20. data/lib/freight_kit/carriers/action_express.rb +10 -0
  21. data/lib/freight_kit/carriers/adams_and_companies.rb +10 -0
  22. data/lib/freight_kit/carriers/advance_distribution.rb +28 -0
  23. data/lib/freight_kit/carriers/alcon_transport.rb +10 -0
  24. data/lib/freight_kit/carriers/all_freight.rb +10 -0
  25. data/lib/freight_kit/carriers/alliance_transportation_group.rb +10 -0
  26. data/lib/freight_kit/carriers/allstate_transport.rb +10 -0
  27. data/lib/freight_kit/carriers/aloha_freight_forwarders.rb +35 -0
  28. data/lib/freight_kit/carriers/amado_trucking.rb +35 -0
  29. data/lib/freight_kit/carriers/american_fast_freight.rb +28 -0
  30. data/lib/freight_kit/carriers/amigos_service_transportation.rb +10 -0
  31. data/lib/freight_kit/carriers/anderson_towing_and_transport.rb +10 -0
  32. data/lib/freight_kit/carriers/apex_transporting.rb +10 -0
  33. data/lib/freight_kit/carriers/archer_cargo.rb +35 -0
  34. data/lib/freight_kit/carriers/armstrong_transport_group.rb +10 -0
  35. data/lib/freight_kit/carriers/autobahn_logistics.rb +10 -0
  36. data/lib/freight_kit/carriers/averitt_express.rb +30 -0
  37. data/lib/freight_kit/carriers/ba_transportation.rb +10 -0
  38. data/lib/freight_kit/carriers/balkin_express.rb +10 -0
  39. data/lib/freight_kit/carriers/bay_area_express.rb +10 -0
  40. data/lib/freight_kit/carriers/bc_freightways.rb +11 -0
  41. data/lib/freight_kit/carriers/benjamin_best_freight_inc.rb +37 -0
  42. data/lib/freight_kit/carriers/bennett_trucking.rb +10 -0
  43. data/lib/freight_kit/carriers/best_overnite_express.rb +78 -0
  44. data/lib/freight_kit/carriers/best_trucking.rb +10 -0
  45. data/lib/freight_kit/carriers/bestway_transport.rb +10 -0
  46. data/lib/freight_kit/carriers/bryan_systems.rb +10 -0
  47. data/lib/freight_kit/carriers/c_and_w_express.rb +10 -0
  48. data/lib/freight_kit/carriers/campbell_trucking.rb +10 -0
  49. data/lib/freight_kit/carriers/carde_transportation.rb +10 -0
  50. data/lib/freight_kit/carriers/cardinal_logistics.rb +28 -0
  51. data/lib/freight_kit/carriers/cdc_transport.rb +10 -0
  52. data/lib/freight_kit/carriers/cdo_express_diversified.rb +10 -0
  53. data/lib/freight_kit/carriers/cedar_supply_trucking.rb +10 -0
  54. data/lib/freight_kit/carriers/central_freight_lines.rb +12 -0
  55. data/lib/freight_kit/carriers/central_transport.rb +12 -0
  56. data/lib/freight_kit/carriers/chicago_suburban_express.rb +28 -0
  57. data/lib/freight_kit/carriers/city_logistics.rb +11 -0
  58. data/lib/freight_kit/carriers/clear_lane_freight_systems.rb +483 -0
  59. data/lib/freight_kit/carriers/cleopatra_trucking.rb +10 -0
  60. data/lib/freight_kit/carriers/clifford_transportation.rb +10 -0
  61. data/lib/freight_kit/carriers/cms_domestic.rb +25 -0
  62. data/lib/freight_kit/carriers/cnd_logistics.rb +10 -0
  63. data/lib/freight_kit/carriers/coast_to_coast_transport.rb +27 -0
  64. data/lib/freight_kit/carriers/countrywide_carriers.rb +10 -0
  65. data/lib/freight_kit/carriers/cpl_express.rb +35 -0
  66. data/lib/freight_kit/carriers/crosby_trucking_service.rb +29 -0
  67. data/lib/freight_kit/carriers/cross_country_freight_solutions.rb +419 -0
  68. data/lib/freight_kit/carriers/crowley.rb +10 -0
  69. data/lib/freight_kit/carriers/csa_transportation.rb +40 -0
  70. data/lib/freight_kit/carriers/csx_transportation.rb +40 -0
  71. data/lib/freight_kit/carriers/custom_global_logistics.rb +14 -0
  72. data/lib/freight_kit/carriers/d_and_a_transport.rb +10 -0
  73. data/lib/freight_kit/carriers/dak_transport.rb +10 -0
  74. data/lib/freight_kit/carriers/dash_courier_and_logistics_north_carolina.rb +10 -0
  75. data/lib/freight_kit/carriers/daylight_transport.rb +29 -0
  76. data/lib/freight_kit/carriers/dayton_freight_lines.rb +30 -0
  77. data/lib/freight_kit/carriers/dbr_logistics.rb +10 -0
  78. data/lib/freight_kit/carriers/deep_south_freight.rb +27 -0
  79. data/lib/freight_kit/carriers/delta_express.rb +10 -0
  80. data/lib/freight_kit/carriers/delta_transport.rb +10 -0
  81. data/lib/freight_kit/carriers/delta_trucking_logistics.rb +10 -0
  82. data/lib/freight_kit/carriers/demco_express.rb +10 -0
  83. data/lib/freight_kit/carriers/dependable_global_express.rb +10 -0
  84. data/lib/freight_kit/carriers/dependable_hawaiian_express.rb +24 -0
  85. data/lib/freight_kit/carriers/dependable_highway_express.rb +585 -0
  86. data/lib/freight_kit/carriers/desert_coastal_transport.rb +10 -0
  87. data/lib/freight_kit/carriers/dhl.rb +11 -0
  88. data/lib/freight_kit/carriers/diamond_line_delivery.rb +174 -0
  89. data/lib/freight_kit/carriers/ding_tai_trucking.rb +10 -0
  90. data/lib/freight_kit/carriers/diversified_transfer_and_storage.rb +29 -0
  91. data/lib/freight_kit/carriers/dohrn_transfer_company.rb +30 -0
  92. data/lib/freight_kit/carriers/dot_line_transportation.rb +29 -0
  93. data/lib/freight_kit/carriers/drt_transportation.rb +13 -0
  94. data/lib/freight_kit/carriers/dugan_truck_line.rb +29 -0
  95. data/lib/freight_kit/carriers/dupont.rb +10 -0
  96. data/lib/freight_kit/carriers/e_transport_carriers.rb +29 -0
  97. data/lib/freight_kit/carriers/echo_global_logistics.rb +13 -0
  98. data/lib/freight_kit/carriers/ecklund_logistics.rb +10 -0
  99. data/lib/freight_kit/carriers/el_emplumado_transport.rb +10 -0
  100. data/lib/freight_kit/carriers/elite_carriers.rb +28 -0
  101. data/lib/freight_kit/carriers/emerald_express.rb +10 -0
  102. data/lib/freight_kit/carriers/era_transport.rb +10 -0
  103. data/lib/freight_kit/carriers/estes_express_lines.rb +25 -0
  104. data/lib/freight_kit/carriers/euro_kam.rb +28 -0
  105. data/lib/freight_kit/carriers/ew_riverside_trucking.rb +10 -0
  106. data/lib/freight_kit/carriers/express_2000_inc.rb +12 -0
  107. data/lib/freight_kit/carriers/express_services_international.rb +10 -0
  108. data/lib/freight_kit/carriers/f_and_a_express.rb +27 -0
  109. data/lib/freight_kit/carriers/fairmont_logistics.rb +13 -0
  110. data/lib/freight_kit/carriers/fargo_cargo.rb +10 -0
  111. data/lib/freight_kit/carriers/fast_freight_transportation.rb +10 -0
  112. data/lib/freight_kit/carriers/fast_load_transport.rb +10 -0
  113. data/lib/freight_kit/carriers/fed_ex_express.rb +30 -0
  114. data/lib/freight_kit/carriers/fed_ex_ground.rb +24 -0
  115. data/lib/freight_kit/carriers/fed_ex_ltl_economy.rb +11 -0
  116. data/lib/freight_kit/carriers/fed_ex_ltl_priority.rb +11 -0
  117. data/lib/freight_kit/carriers/first_trucking_express.rb +10 -0
  118. data/lib/freight_kit/carriers/flash_trucking.rb +10 -0
  119. data/lib/freight_kit/carriers/fort_transportation_and_service_company_inc.rb +37 -0
  120. data/lib/freight_kit/carriers/forward_air.rb +789 -0
  121. data/lib/freight_kit/carriers/frahtex.rb +10 -0
  122. data/lib/freight_kit/carriers/frozen_food_express.rb +10 -0
  123. data/lib/freight_kit/carriers/gholia_bros_trucking.rb +36 -0
  124. data/lib/freight_kit/carriers/global_cargo.rb +10 -0
  125. data/lib/freight_kit/carriers/global_logistics_and_transportation.rb +10 -0
  126. data/lib/freight_kit/carriers/gls_freight.rb +32 -0
  127. data/lib/freight_kit/carriers/go_trucking_services.rb +10 -0
  128. data/lib/freight_kit/carriers/gold_eagle_transportation.rb +11 -0
  129. data/lib/freight_kit/carriers/golden_drop_trucking.rb +10 -0
  130. data/lib/freight_kit/carriers/gonzalez_transportation.rb +10 -0
  131. data/lib/freight_kit/carriers/gps_transport.rb +10 -0
  132. data/lib/freight_kit/carriers/greene_enterprise.rb +10 -0
  133. data/lib/freight_kit/carriers/gsa_international.rb +10 -0
  134. data/lib/freight_kit/carriers/gsp_express.rb +24 -0
  135. data/lib/freight_kit/carriers/gsv_transportation.rb +10 -0
  136. data/lib/freight_kit/carriers/gta_transportation.rb +10 -0
  137. data/lib/freight_kit/carriers/guam_freight_services.rb +10 -0
  138. data/lib/freight_kit/carriers/harrah_transportation.rb +23 -0
  139. data/lib/freight_kit/carriers/her_trucking.rb +10 -0
  140. data/lib/freight_kit/carriers/hercules_freight.rb +20 -0
  141. data/lib/freight_kit/carriers/highlander_xpress.rb +36 -0
  142. data/lib/freight_kit/carriers/hn_transport.rb +10 -0
  143. data/lib/freight_kit/carriers/honolulu_freight_service.rb +10 -0
  144. data/lib/freight_kit/carriers/hot_line_freight_system_inc.rb +12 -0
  145. data/lib/freight_kit/carriers/hotshot_freight_of_texas.rb +13 -0
  146. data/lib/freight_kit/carriers/houser_transport.rb +27 -0
  147. data/lib/freight_kit/carriers/infiniti_freight_logistics.rb +28 -0
  148. data/lib/freight_kit/carriers/infinity_trucking.rb +10 -0
  149. data/lib/freight_kit/carriers/interstate_tma.rb +10 -0
  150. data/lib/freight_kit/carriers/intrade_industries.rb +10 -0
  151. data/lib/freight_kit/carriers/jasper_trucking.rb +28 -0
  152. data/lib/freight_kit/carriers/jb_hunt.rb +11 -0
  153. data/lib/freight_kit/carriers/jfj_transportation.rb +8 -8
  154. data/lib/freight_kit/carriers/jkb_express.rb +10 -0
  155. data/lib/freight_kit/carriers/jlm_transport.rb +10 -0
  156. data/lib/freight_kit/carriers/johansson_transport.rb +10 -0
  157. data/lib/freight_kit/carriers/jones_express.rb +10 -0
  158. data/lib/freight_kit/carriers/jp_logistics.rb +41 -0
  159. data/lib/freight_kit/carriers/just_in_time_cargo.rb +29 -0
  160. data/lib/freight_kit/carriers/kengkok_times.rb +10 -0
  161. data/lib/freight_kit/carriers/kings_express.rb +10 -0
  162. data/lib/freight_kit/carriers/klc_transportation.rb +10 -0
  163. data/lib/freight_kit/carriers/km_trucking.rb +10 -0
  164. data/lib/freight_kit/carriers/kma_logistics.rb +10 -0
  165. data/lib/freight_kit/carriers/krc_logistics.rb +10 -0
  166. data/lib/freight_kit/carriers/ktx.rb +10 -0
  167. data/lib/freight_kit/carriers/landstar.rb +25 -0
  168. data/lib/freight_kit/carriers/lanter_distributing_llc.rb +30 -0
  169. data/lib/freight_kit/carriers/ld_trucking.rb +10 -0
  170. data/lib/freight_kit/carriers/legacy_logistics_solutions.rb +10 -0
  171. data/lib/freight_kit/carriers/leonards_express.rb +10 -0
  172. data/lib/freight_kit/carriers/liberty_linehaul_west.rb +28 -0
  173. data/lib/freight_kit/carriers/liberty_transport.rb +10 -0
  174. data/lib/freight_kit/carriers/lightning_express.rb +10 -0
  175. data/lib/freight_kit/carriers/lj_express.rb +24 -0
  176. data/lib/freight_kit/carriers/lkp_enterprises.rb +10 -0
  177. data/lib/freight_kit/carriers/ltl_pros.rb +28 -0
  178. data/lib/freight_kit/carriers/m_and_m_and_sons.rb +10 -0
  179. data/lib/freight_kit/carriers/mag_lines_transport.rb +10 -0
  180. data/lib/freight_kit/carriers/magic_messenger.rb +24 -0
  181. data/lib/freight_kit/carriers/majors_transit.rb +10 -0
  182. data/lib/freight_kit/carriers/map_global_logistics.rb +10 -0
  183. data/lib/freight_kit/carriers/matths_trucking.rb +11 -0
  184. data/lib/freight_kit/carriers/mav_canadian_transport.rb +13 -0
  185. data/lib/freight_kit/carriers/mc_systems.rb +35 -0
  186. data/lib/freight_kit/carriers/mega_fleet.rb +10 -0
  187. data/lib/freight_kit/carriers/mega_trans_group.rb +28 -0
  188. data/lib/freight_kit/carriers/meta_express.rb +10 -0
  189. data/lib/freight_kit/carriers/mia_transportation.rb +10 -0
  190. data/lib/freight_kit/carriers/midwest_motor_express.rb +14 -0
  191. data/lib/freight_kit/carriers/midwest_transport_and_trucking.rb +10 -0
  192. data/lib/freight_kit/carriers/mikade_delivery_service.rb +10 -0
  193. data/lib/freight_kit/carriers/mohoff_freight_lines.rb +23 -0
  194. data/lib/freight_kit/carriers/montata_travelers_express.rb +10 -0
  195. data/lib/freight_kit/carriers/morgan_van_lines.rb +29 -0
  196. data/lib/freight_kit/carriers/moto_transportation.rb +24 -0
  197. data/lib/freight_kit/carriers/mountain_valley_express.rb +197 -0
  198. data/lib/freight_kit/carriers/ms_freight.rb +27 -0
  199. data/lib/freight_kit/carriers/mvg_transport.rb +10 -0
  200. data/lib/freight_kit/carriers/n_and_m_transfer_co_inc.rb +29 -0
  201. data/lib/freight_kit/carriers/nabot_transport_solutions.rb +10 -0
  202. data/lib/freight_kit/carriers/national_freight_xpress.rb +10 -0
  203. data/lib/freight_kit/carriers/navigation_group.rb +10 -0
  204. data/lib/freight_kit/carriers/nelson_trucking.rb +10 -0
  205. data/lib/freight_kit/carriers/network_1_transportation.rb +10 -0
  206. data/lib/freight_kit/carriers/new_century_transport.rb +28 -0
  207. data/lib/freight_kit/carriers/new_penn_motor_express.rb +11 -0
  208. data/lib/freight_kit/carriers/nieves_transportation.rb +10 -0
  209. data/lib/freight_kit/carriers/nolan_transportation_group.rb +26 -0
  210. data/lib/freight_kit/carriers/northland_trucking.rb +10 -0
  211. data/lib/freight_kit/carriers/northwest_carrier_logistics.rb +27 -0
  212. data/lib/freight_kit/carriers/nt_usa.rb +10 -0
  213. data/lib/freight_kit/carriers/nu_line_transportation.rb +10 -0
  214. data/lib/freight_kit/carriers/numark_transportation.rb +80 -0
  215. data/lib/freight_kit/carriers/nvk_transport.rb +10 -0
  216. data/lib/freight_kit/carriers/ny_transport.rb +10 -0
  217. data/lib/freight_kit/carriers/oak_harbor.rb +28 -0
  218. data/lib/freight_kit/carriers/oakline_transportation.rb +10 -0
  219. data/lib/freight_kit/carriers/old_dominion_freight_line.rb +30 -0
  220. data/lib/freight_kit/carriers/on_trac.rb +573 -0
  221. data/lib/freight_kit/carriers/one_hundred_one_transport.rb +10 -0
  222. data/lib/freight_kit/carriers/one_way_delivery.rb +10 -0
  223. data/lib/freight_kit/carriers/oracle_transportation_solutions.rb +10 -0
  224. data/lib/freight_kit/carriers/orange_courier.rb +27 -0
  225. data/lib/freight_kit/carriers/ortas_trucking.rb +10 -0
  226. data/lib/freight_kit/carriers/pac_trux_transportation.rb +10 -0
  227. data/lib/freight_kit/carriers/pacer.rb +10 -0
  228. data/lib/freight_kit/carriers/pacific_logistics.rb +10 -0
  229. data/lib/freight_kit/carriers/pacific_states_truck_lines.rb +10 -0
  230. data/lib/freight_kit/carriers/paradise_distributing.rb +10 -0
  231. data/lib/freight_kit/carriers/paramount_freight_systems.rb +10 -0
  232. data/lib/freight_kit/carriers/peninsula_truck_lines.rb +222 -0
  233. data/lib/freight_kit/carriers/pg_transport.rb +10 -0
  234. data/lib/freight_kit/carriers/pgs_360.rb +10 -0
  235. data/lib/freight_kit/carriers/pilot_freight_services.rb +10 -0
  236. data/lib/freight_kit/carriers/pious_trans.rb +27 -0
  237. data/lib/freight_kit/carriers/pitt_ohio_express.rb +30 -0
  238. data/lib/freight_kit/carriers/pki_logistics.rb +12 -0
  239. data/lib/freight_kit/carriers/plana_transportation.rb +28 -0
  240. data/lib/freight_kit/carriers/prestige.rb +10 -0
  241. data/lib/freight_kit/carriers/pro_trans_solutions.rb +28 -0
  242. data/lib/freight_kit/carriers/puma_logistics.rb +10 -0
  243. data/lib/freight_kit/carriers/pwc_international.rb +10 -0
  244. data/lib/freight_kit/carriers/quality_logistics.rb +10 -0
  245. data/lib/freight_kit/carriers/queen_star_trucking.rb +27 -0
  246. data/lib/freight_kit/carriers/r_and_l_carriers.rb +11 -0
  247. data/lib/freight_kit/carriers/rac_transport.rb +10 -0
  248. data/lib/freight_kit/carriers/re_logistics.rb +23 -0
  249. data/lib/freight_kit/carriers/reddaway.rb +11 -0
  250. data/lib/freight_kit/carriers/reefer_van_network.rb +13 -0
  251. data/lib/freight_kit/carriers/refrigerated_trucking_and_ltl_transportation_services.rb +10 -0
  252. data/lib/freight_kit/carriers/ridgeline_express.rb +10 -0
  253. data/lib/freight_kit/carriers/rist_transport.rb +29 -0
  254. data/lib/freight_kit/carriers/river_city_transport.rb +10 -0
  255. data/lib/freight_kit/carriers/roadrunner_transportation_services.rb +675 -0
  256. data/lib/freight_kit/carriers/roadtex.rb +13 -0
  257. data/lib/freight_kit/carriers/ronald_transport_services.rb +10 -0
  258. data/lib/freight_kit/carriers/rose_trucking.rb +24 -0
  259. data/lib/freight_kit/carriers/rp_and_j_transport.rb +24 -0
  260. data/lib/freight_kit/carriers/rpm_transportation.rb +11 -0
  261. data/lib/freight_kit/carriers/rude_transportation.rb +30 -0
  262. data/lib/freight_kit/carriers/s_and_s_logistics.rb +10 -0
  263. data/lib/freight_kit/carriers/saia.rb +470 -361
  264. data/lib/freight_kit/carriers/sb_transportation.rb +27 -0
  265. data/lib/freight_kit/carriers/schneider_national.rb +29 -0
  266. data/lib/freight_kit/carriers/schwarz_trucking.rb +10 -0
  267. data/lib/freight_kit/carriers/sewell_motor_express.rb +29 -0
  268. data/lib/freight_kit/carriers/shawnee_trucking.rb +28 -0
  269. data/lib/freight_kit/carriers/shi_logistics.rb +10 -0
  270. data/lib/freight_kit/carriers/sinbad_transport.rb +10 -0
  271. data/lib/freight_kit/carriers/skyway.rb +10 -0
  272. data/lib/freight_kit/carriers/smith_cargo_transportation_services.rb +23 -0
  273. data/lib/freight_kit/carriers/sna_transportation.rb +10 -0
  274. data/lib/freight_kit/carriers/solid_group.rb +10 -0
  275. data/lib/freight_kit/carriers/solution_carrier_express.rb +10 -0
  276. data/lib/freight_kit/carriers/southeastern_freight_lines.rb +450 -0
  277. data/lib/freight_kit/carriers/southwestern_motor_transport.rb +30 -0
  278. data/lib/freight_kit/carriers/span_alaska.rb +10 -0
  279. data/lib/freight_kit/carriers/specialize_transportation.rb +27 -0
  280. data/lib/freight_kit/carriers/ssi_refrigerated_express.rb +10 -0
  281. data/lib/freight_kit/carriers/standard_forwarding_llc.rb +28 -0
  282. data/lib/freight_kit/carriers/star_american_enterprise.rb +10 -0
  283. data/lib/freight_kit/carriers/sterling_transportation.rb +10 -0
  284. data/lib/freight_kit/carriers/stg.rb +163 -0
  285. data/lib/freight_kit/carriers/supervan_service.rb +10 -0
  286. data/lib/freight_kit/carriers/sutton_transport_inc.rb +12 -0
  287. data/lib/freight_kit/carriers/swift_transportation.rb +28 -0
  288. data/lib/freight_kit/carriers/t_force_worldwide.rb +617 -0
  289. data/lib/freight_kit/carriers/tax_airfreight_inc.rb +35 -0
  290. data/lib/freight_kit/carriers/tforce_freight_inc.rb +30 -0
  291. data/lib/freight_kit/carriers/the_custom_companies.rb +162 -0
  292. data/lib/freight_kit/carriers/thk_trucking.rb +28 -0
  293. data/lib/freight_kit/carriers/tiger_cool_express.rb +11 -0
  294. data/lib/freight_kit/carriers/tili_logistics.rb +10 -0
  295. data/lib/freight_kit/carriers/tmt_industries.rb +10 -0
  296. data/lib/freight_kit/carriers/top_ten_express.rb +28 -0
  297. data/lib/freight_kit/carriers/total_quality_logistics.rb +338 -0
  298. data/lib/freight_kit/carriers/total_transportation.rb +258 -0
  299. data/lib/freight_kit/carriers/trans_international_trucking.rb +29 -0
  300. data/lib/freight_kit/carriers/treasure_transportation.rb +10 -0
  301. data/lib/freight_kit/carriers/tri_state_services.rb +10 -0
  302. data/lib/freight_kit/carriers/tritex_freighters.rb +10 -0
  303. data/lib/freight_kit/carriers/triways.rb +10 -0
  304. data/lib/freight_kit/carriers/tsi_kansas.rb +29 -0
  305. data/lib/freight_kit/carriers/u_and_r_transportation.rb +23 -0
  306. data/lib/freight_kit/carriers/union_pacific.rb +11 -0
  307. data/lib/freight_kit/carriers/united_freight_logistics.rb +10 -0
  308. data/lib/freight_kit/carriers/unlimited_distance_transportation.rb +10 -0
  309. data/lib/freight_kit/carriers/up_streamline.rb +10 -0
  310. data/lib/freight_kit/carriers/ups_freight.rb +12 -0
  311. data/lib/freight_kit/carriers/us_freightways.rb +10 -0
  312. data/lib/freight_kit/carriers/usa_truck.rb +28 -0
  313. data/lib/freight_kit/carriers/usf_holland.rb +11 -0
  314. data/lib/freight_kit/carriers/valley_cartage.rb +11 -0
  315. data/lib/freight_kit/carriers/vc_transport.rb +10 -0
  316. data/lib/freight_kit/carriers/vision_express.rb +11 -0
  317. data/lib/freight_kit/carriers/vision_logistics_group.rb +10 -0
  318. data/lib/freight_kit/carriers/vmg_transportation_group.rb +10 -0
  319. data/lib/freight_kit/carriers/volpe_express.rb +10 -0
  320. data/lib/freight_kit/carriers/ward_trucking.rb +29 -0
  321. data/lib/freight_kit/carriers/wdwb.rb +10 -0
  322. data/lib/freight_kit/carriers/western_flyer_express.rb +28 -0
  323. data/lib/freight_kit/carriers/western_regional_delivery_service.rb +271 -0
  324. data/lib/freight_kit/carriers/western_specialized_trucking.rb +22 -0
  325. data/lib/freight_kit/carriers/win_distribution.rb +28 -0
  326. data/lib/freight_kit/carriers/wlb_transport.rb +10 -0
  327. data/lib/freight_kit/carriers/x_trux.rb +29 -0
  328. data/lib/freight_kit/carriers/xpo_logistics.rb +427 -0
  329. data/lib/freight_kit/carriers/xpress_global_systems.rb +30 -0
  330. data/lib/freight_kit/carriers/xylo_trucking.rb +10 -0
  331. data/lib/freight_kit/carriers/yrc_freight.rb +24 -0
  332. data/lib/freight_kit/carriers/zentner_transportation.rb +28 -0
  333. data/lib/freight_kit/carriers.rb +331 -34
  334. data/lib/freight_kit/countries.rb +22 -0
  335. data/lib/freight_kit/error.rb +0 -2
  336. data/lib/freight_kit/errors/document_not_found_error.rb +0 -2
  337. data/lib/freight_kit/errors/expired_credentials_error.rb +0 -2
  338. data/lib/freight_kit/errors/http_error.rb +0 -2
  339. data/lib/freight_kit/errors/invalid_credentials_error.rb +0 -2
  340. data/lib/freight_kit/errors/response_error.rb +0 -2
  341. data/lib/freight_kit/errors/shipment_not_found_error.rb +0 -2
  342. data/lib/freight_kit/errors/unserviceable_accessorials_error.rb +2 -4
  343. data/lib/freight_kit/errors/unserviceable_error.rb +0 -2
  344. data/lib/freight_kit/helpers/documentable.rb +0 -2
  345. data/lib/freight_kit/helpers/pickupable.rb +3 -5
  346. data/lib/freight_kit/helpers/rateable.rb +0 -2
  347. data/lib/freight_kit/helpers/trackable.rb +0 -2
  348. data/lib/freight_kit/http_client/cache_store.rb +2 -4
  349. data/lib/freight_kit/http_client/log_device.rb +0 -2
  350. data/lib/freight_kit/http_client/response.rb +0 -2
  351. data/lib/freight_kit/http_client/revalidation.rb +0 -2
  352. data/lib/freight_kit/http_client/safe_retries.rb +0 -2
  353. data/lib/freight_kit/http_client/zstd.rb +2 -4
  354. data/lib/freight_kit/http_client.rb +8 -12
  355. data/lib/freight_kit/model.rb +1 -3
  356. data/lib/freight_kit/models/address.rb +15 -0
  357. data/lib/freight_kit/models/contact.rb +3 -4
  358. data/lib/freight_kit/models/country.rb +20 -0
  359. data/lib/freight_kit/models/credential.rb +14 -16
  360. data/lib/freight_kit/models/date_time.rb +0 -2
  361. data/lib/freight_kit/models/document_response.rb +0 -2
  362. data/lib/freight_kit/models/label.rb +0 -2
  363. data/lib/freight_kit/models/location.rb +10 -25
  364. data/lib/freight_kit/models/pickup_response.rb +0 -2
  365. data/lib/freight_kit/models/price.rb +0 -2
  366. data/lib/freight_kit/models/rate.rb +0 -2
  367. data/lib/freight_kit/models/rate_response.rb +0 -2
  368. data/lib/freight_kit/models/region.rb +19 -0
  369. data/lib/freight_kit/models/response.rb +0 -2
  370. data/lib/freight_kit/models/shipment.rb +4 -6
  371. data/lib/freight_kit/models/shipment_event.rb +0 -2
  372. data/lib/freight_kit/models/terminal.rb +10 -0
  373. data/lib/freight_kit/models/tracking_response.rb +0 -2
  374. data/lib/freight_kit/package.rb +51 -53
  375. data/lib/freight_kit/package_item.rb +14 -14
  376. data/lib/freight_kit/packaging.rb +21 -26
  377. data/lib/freight_kit/platform.rb +0 -32
  378. data/lib/freight_kit/platforms/carrier_logistics.rb +331 -345
  379. data/lib/freight_kit/platforms/next_tms.rb +93 -0
  380. data/lib/freight_kit/platforms/the_great_information_factory.rb +500 -425
  381. data/lib/freight_kit/regions.rb +27 -0
  382. data/lib/freight_kit/shipment_packer.rb +36 -38
  383. data/lib/freight_kit/tariff/overlength_rule.rb +1 -5
  384. data/lib/freight_kit/tariff.rb +0 -2
  385. data/lib/freight_kit.rb +84 -11
  386. metadata +361 -51
  387. data/configuration/carriers/abfs.yml +0 -124
  388. data/configuration/carriers/btvp.yml +0 -84
  389. data/configuration/carriers/ccyq.yml +0 -121
  390. data/configuration/carriers/clni.yml +0 -113
  391. data/configuration/carriers/cnwy.yml +0 -113
  392. data/configuration/carriers/ctbv.yml +0 -117
  393. data/configuration/carriers/dcha.yml +0 -105
  394. data/configuration/carriers/dlds.yml +0 -111
  395. data/configuration/carriers/dphe.yml +0 -130
  396. data/configuration/carriers/drrq.yml +0 -131
  397. data/configuration/carriers/fcsy.yml +0 -102
  398. data/configuration/carriers/fwda.yml +0 -137
  399. data/configuration/carriers/jfj_transportation.yml +0 -2
  400. data/configuration/carriers/mtvl.yml +0 -12
  401. data/configuration/carriers/numk.yml +0 -14
  402. data/configuration/carriers/otcl.yml +0 -124
  403. data/configuration/carriers/pens.yml +0 -22
  404. data/configuration/carriers/rdfs.yml +0 -142
  405. data/configuration/carriers/saia.yml +0 -129
  406. data/configuration/carriers/sefl.yml +0 -115
  407. data/configuration/carriers/totl.yml +0 -111
  408. data/configuration/carriers/tqyl.yml +0 -28
  409. data/configuration/carriers/wrds.yml +0 -20
  410. data/configuration/platforms/carrier_logistics.yml +0 -25
  411. data/configuration/platforms/next.yml +0 -12
  412. data/configuration/platforms/the_great_information_factory.yml +0 -122
  413. data/lib/freight_kit/carriers/abfs.rb +0 -421
  414. data/lib/freight_kit/carriers/btvp.rb +0 -29
  415. data/lib/freight_kit/carriers/ccyq.rb +0 -310
  416. data/lib/freight_kit/carriers/clni.rb +0 -396
  417. data/lib/freight_kit/carriers/cnwy.rb +0 -327
  418. data/lib/freight_kit/carriers/ctbv.rb +0 -53
  419. data/lib/freight_kit/carriers/dcha.rb +0 -76
  420. data/lib/freight_kit/carriers/dlds.rb +0 -49
  421. data/lib/freight_kit/carriers/dphe.rb +0 -472
  422. data/lib/freight_kit/carriers/drrq.rb +0 -580
  423. data/lib/freight_kit/carriers/fcsy.rb +0 -57
  424. data/lib/freight_kit/carriers/fwda.rb +0 -744
  425. data/lib/freight_kit/carriers/mtvl.rb +0 -34
  426. data/lib/freight_kit/carriers/numk.rb +0 -58
  427. data/lib/freight_kit/carriers/otcl.rb +0 -520
  428. data/lib/freight_kit/carriers/pens.rb +0 -204
  429. data/lib/freight_kit/carriers/rdfs.rb +0 -521
  430. data/lib/freight_kit/carriers/sefl.rb +0 -342
  431. data/lib/freight_kit/carriers/totl.rb +0 -172
  432. data/lib/freight_kit/carriers/tqyl.rb +0 -337
  433. data/lib/freight_kit/carriers/wrds.rb +0 -246
  434. data/lib/freight_kit/platforms/next.rb +0 -101
@@ -0,0 +1,15 @@
1
+ module FreightKit
2
+ # Class representing a real, deliverable mailing address.
3
+ #
4
+ # @!attribute id [String, nil] Permanent UUID of a carrier's address. Applications store it, so never change it.
5
+ class Address < Model
6
+ attr_accessor :city, :id, :postal_code, :region_abbreviation, :street, :street2
7
+ attr_reader :country
8
+
9
+ def country=(country)
10
+ raise ArgumentError, 'country must be a FreightKit::Country' unless country.blank? || country.is_a?(Country)
11
+
12
+ @country = country.presence
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Contact is the abstract base class for all contacts.
5
3
  #
@@ -7,11 +5,12 @@ module FreightKit
7
5
  # @!attribute department_name [String] Department name (like "Shipping Dept").
8
6
  # @!attribute email [String] Email.
9
7
  # @!attribute fax [String] E164 formatted fax number.
8
+ # @!attribute id [String, nil] Permanent UUID of a carrier's contact. Applications store it, so never change it.
10
9
  # @!attribute name [String] Name of person.
11
10
  # @!attribute phone [String] E164 formatted phone number.
12
11
  class Contact < Model
13
- attr_accessor :company_name, :department, :email, :fax, :name, :phone
12
+ attr_accessor :company_name, :department, :email, :fax, :id, :name, :phone
14
13
 
15
- alias_method :company, :company_name
14
+ alias company company_name
16
15
  end
17
16
  end
@@ -0,0 +1,20 @@
1
+ module FreightKit
2
+ class Country
3
+ attr_reader :iso31661_alpha2, :iso31661_alpha3, :name, :un_code
4
+
5
+ def initialize(iso31661_alpha2:, iso31661_alpha3:, name:, un_code: nil)
6
+ @iso31661_alpha2 = iso31661_alpha2
7
+ @iso31661_alpha3 = iso31661_alpha3
8
+ @name = name
9
+ @un_code = un_code
10
+ end
11
+
12
+ def ==(other) = other.is_a?(Country) && other.id == id
13
+ alias eql? ==
14
+
15
+ def hash = [self.class, id].hash
16
+ def id = iso31661_alpha2
17
+ def inspect = "#<#{self.class.name} #{iso31661_alpha2}>"
18
+ def regions = FreightKit::Regions.all.select { |region| region.country == self }
19
+ end
20
+ end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Class representing credentials.
5
3
  #
@@ -70,7 +68,7 @@ module FreightKit
70
68
  end
71
69
  end
72
70
 
73
- hash.each do |k, _v|
71
+ hash.each_key do |k|
74
72
  next if k == :type
75
73
 
76
74
  singleton_class.class_eval { attr_accessor(k.to_s) } unless singleton_class.respond_to?(k)
@@ -99,19 +97,19 @@ module FreightKit
99
97
  url = url.to_s
100
98
 
101
99
  @watir_args = [
102
- browser,
103
- {
104
- options: {
105
- prefs: {
106
- download: {
107
- directory_upgrade: true,
108
- prompt_for_download: false
109
- }
110
- }
111
- },
112
- url:
113
- },
114
- ]
100
+ browser,
101
+ {
102
+ options: {
103
+ prefs: {
104
+ download: {
105
+ directory_upgrade: true,
106
+ prompt_for_download: false
107
+ }
108
+ }
109
+ },
110
+ url:
111
+ }
112
+ ]
115
113
  end
116
114
  end
117
115
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Represent dates and times in varous formats.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Represents the response to calls:
5
3
  # - {FreightKit::Carrier#bol}
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Class representing a shipping option with estimated price.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Class representing a location.
5
3
  #
@@ -57,38 +55,27 @@ module FreightKit
57
55
  attr_reader :contact, :country, :lat, :lng, :type
58
56
 
59
57
  def contact=(contact)
60
- return @contact = nil if contact.blank?
61
-
62
- raise ArgumentError, 'contact must be a Contact' unless contact.is_a?(FreightKit::Contact)
58
+ raise ArgumentError, 'contact must be a Contact' unless contact.blank? || contact.is_a?(FreightKit::Contact)
63
59
 
64
- @contact = contact
60
+ @contact = contact.presence
65
61
  end
66
62
 
67
63
  def country=(country)
68
- return country = nil if country.blank?
69
-
70
- if country.is_a?(ActiveUtils::Country)
71
- @country = country
72
- return country
73
- end
64
+ raise ArgumentError, 'country must be an ActiveUtils::Country' unless country.blank? || country.is_a?(ActiveUtils::Country)
74
65
 
75
- raise ArgumentError, 'country must be an ActiveUtils::Country'
66
+ @country = country.presence
76
67
  end
77
68
 
78
69
  def lat=(num)
79
- return @lat = nil if num.blank?
70
+ raise ArgumentError, 'lat must be a BigNum' unless num.blank? || num.is_a?(BigNum)
80
71
 
81
- return @lat = num if num.is_a?(BigNum)
82
-
83
- raise ArgumentError, 'lat must be a BigNum'
72
+ @lat = num.presence
84
73
  end
85
74
 
86
75
  def lng=(num)
87
- return @lng = nil if num.blank?
88
-
89
- return @lng = num if num.is_a?(BigNum)
76
+ raise ArgumentError, 'lng must be a BigNum' unless num.blank? || num.is_a?(BigNum)
90
77
 
91
- raise ArgumentError, 'lng must be a BigNum'
78
+ @lng = num.presence
92
79
  end
93
80
 
94
81
  def time_zone
@@ -98,11 +85,9 @@ module FreightKit
98
85
  end
99
86
 
100
87
  def type=(value)
101
- return @type = nil if value.blank?
102
-
103
- raise ArgumentError, "type must be one of :#{TYPES.join(", :")}" if TYPES.exclude?(value)
88
+ raise ArgumentError, "type must be one of :#{TYPES.join(', :')}" unless value.blank? || TYPES.include?(value)
104
89
 
105
- @type = value
90
+ @type = value.presence
106
91
  end
107
92
  end
108
93
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # The `PickupResponse` object is returned by the {FreightKit::Carrier#create_pickup}
5
3
  # call. The most important method is {#pickup_number}, which will return the pickup reference
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Class representing a price.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Class representing a shipping option with estimated price.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # The `RateResponse` object is returned by the {FreightKit::Carrier#find_rates}
5
3
  # call. The most important method is {#rates}, which will return a list of possible
@@ -0,0 +1,19 @@
1
+ module FreightKit
2
+ class Region
3
+ attr_reader :abbreviation, :country, :iso31662, :name
4
+
5
+ def initialize(abbreviation:, country:, iso31662:, name:)
6
+ @abbreviation = abbreviation
7
+ @country = country
8
+ @iso31662 = iso31662
9
+ @name = name
10
+ end
11
+
12
+ def ==(other) = other.is_a?(Region) && other.id == id
13
+ alias eql? ==
14
+
15
+ def hash = [self.class, id].hash
16
+ def id = iso31662
17
+ def inspect = "#<#{self.class.name} #{iso31662}>"
18
+ end
19
+ end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Basic Response class for requests against a carrier's API.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Shipment is the abstract base class for all rate requests.
5
3
  #
@@ -23,16 +21,16 @@ module FreightKit
23
21
  :pro
24
22
  attr_reader :pickup_at
25
23
 
24
+ def hazmat?
25
+ packages.map(&:hazmat?).any?(true)
26
+ end
27
+
26
28
  def loose?
27
29
  return false if @packages.blank?
28
30
 
29
31
  packages.map(&:packaging).map(&:pallet?).none?(true)
30
32
  end
31
33
 
32
- def hazmat?
33
- packages.map(&:hazmat?).any?(true)
34
- end
35
-
36
34
  def loose_and_palletized?
37
35
  !loose? && !palletized?
38
36
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # `ShipmentEvent` is the abstract base class for all shipment events (usually
5
3
  # attached to `TrackingEresponse`).
@@ -0,0 +1,10 @@
1
+ module FreightKit
2
+ # Class representing a carrier's terminal.
3
+ #
4
+ # @!attribute address [FreightKit::Address] Address.
5
+ # @!attribute id [String] Permanent UUID. Applications store it, so never change it.
6
+ # @!attribute phone [String] E164 formatted phone number.
7
+ class Terminal < Model
8
+ attr_accessor :address, :id, :phone
9
+ end
10
+ end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  # Represents the response to a {FreightKit::Carrier#find_tracking_info} call.
5
3
  #
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit # :nodoc:
4
2
  class Package
5
3
  class << self
@@ -43,7 +41,7 @@ module FreightKit # :nodoc:
43
41
  [
44
42
  dimensions[:height].presence,
45
43
  dimensions[:width].presence,
46
- dimensions[:length].presence,
44
+ dimensions[:length].presence
47
45
  ]
48
46
  else
49
47
  dimensions
@@ -71,7 +69,7 @@ module FreightKit # :nodoc:
71
69
  Measured::Weight,
72
70
  @weight_unit_system,
73
71
  :grams,
74
- :ounces,
72
+ :ounces
75
73
  )
76
74
 
77
75
  @each_weight = attribute_from_metric_or_imperial(
@@ -79,7 +77,7 @@ module FreightKit # :nodoc:
79
77
  Measured::Weight,
80
78
  @weight_unit_system,
81
79
  :grams,
82
- :ounces,
80
+ :ounces
83
81
  )
84
82
 
85
83
  if @dimensions.blank?
@@ -107,6 +105,10 @@ module FreightKit # :nodoc:
107
105
  @packaging = Packaging.new(packaging_type)
108
106
  end
109
107
 
108
+ def calculated_freight_class
109
+ sanitized_freight_class(density_to_freight_class(density))
110
+ end
111
+
110
112
  def cubic_ft(each_or_total)
111
113
  q = case each_or_total
112
114
  when :each then 1
@@ -123,39 +125,31 @@ module FreightKit # :nodoc:
123
125
  format('%0.2f', cubic_ft).to_f
124
126
  end
125
127
 
126
- def density
127
- return unless inches[..2].all?(&:present?) && pounds(:each)
128
-
129
- density = pounds(:each).to_f / cubic_ft(:each)
130
- format('%0.2f', density).to_f
131
- end
132
-
133
- def calculated_freight_class
134
- sanitized_freight_class(density_to_freight_class(density))
128
+ def cylinder?
129
+ @cylinder
135
130
  end
136
131
 
137
132
  def declared_freight_class
138
133
  @declared_freight_class || @options[:declared_freight_class]
139
134
  end
140
135
 
141
- def freight_class
142
- declared_freight_class.presence || calculated_freight_class
143
- end
136
+ def density
137
+ return unless inches[..2].all?(&:present?) && pounds(:each)
144
138
 
145
- def length(unit)
146
- @dimensions[2].convert_to(unit).value.to_f
139
+ density = pounds(:each).to_f / cubic_ft(:each)
140
+ format('%0.2f', density).to_f
147
141
  end
148
142
 
149
- def width(unit)
150
- @dimensions[1].convert_to(unit).value.to_f
143
+ def freight_class
144
+ declared_freight_class.presence || calculated_freight_class
151
145
  end
152
146
 
153
147
  def height(unit)
154
148
  @dimensions[0].convert_to(unit).value.to_f
155
149
  end
156
150
 
157
- def cylinder?
158
- @cylinder
151
+ def length(unit)
152
+ @dimensions[2].convert_to(unit).value.to_f
159
153
  end
160
154
 
161
155
  def oversized?
@@ -166,7 +160,11 @@ module FreightKit # :nodoc:
166
160
  @unpackaged
167
161
  end
168
162
 
169
- alias_method :tube?, :cylinder?
163
+ def width(unit)
164
+ @dimensions[1].convert_to(unit).value.to_f
165
+ end
166
+
167
+ alias tube? cylinder?
170
168
 
171
169
  def gift?
172
170
  @gift
@@ -179,36 +177,36 @@ module FreightKit # :nodoc:
179
177
  def ounces(options = {})
180
178
  weight(options).convert_to(:oz).value.to_f
181
179
  end
182
- alias_method :oz, :ounces
180
+ alias oz ounces
183
181
 
184
182
  def grams(options = {})
185
183
  weight(options).convert_to(:g).value.to_f
186
184
  end
187
- alias_method :g, :grams
185
+ alias g grams
188
186
 
189
187
  def pounds(args)
190
188
  weight(*args).convert_to(:lb).value.to_f
191
189
  end
192
- alias_method :lb, :pounds
193
- alias_method :lbs, :pounds
190
+ alias lb pounds
191
+ alias lbs pounds
194
192
 
195
193
  def kilograms(options = {})
196
194
  weight(options).convert_to(:kg).value.to_f
197
195
  end
198
- alias_method :kg, :kilograms
199
- alias_method :kgs, :kilograms
196
+ alias kg kilograms
197
+ alias kgs kilograms
200
198
 
201
199
  def inches(measurement = nil)
202
200
  @inches ||= @dimensions.map { |m| m.convert_to(:in).value.to_f }
203
201
  measurement.nil? ? @inches : measure(measurement, @inches)
204
202
  end
205
- alias_method :in, :inches
203
+ alias in inches
206
204
 
207
205
  def centimetres(measurement = nil)
208
206
  @centimetres ||= @dimensions.map { |m| m.convert_to(:cm).value.to_f }
209
207
  measurement.nil? ? @centimetres : measure(measurement, @centimetres)
210
208
  end
211
- alias_method :cm, :centimetres
209
+ alias cm centimetres
212
210
 
213
211
  def dim_weight
214
212
  return if inches(:length).blank? || inches(:width).blank? || inches(:height).blank? || pounds(:each).blank?
@@ -240,32 +238,22 @@ module FreightKit # :nodoc:
240
238
  return 60 if density > 30
241
239
 
242
240
  density_table = [
243
- [1, 2, 300],
244
- [2, 4, 250],
245
- [4, 6, 175],
246
- [6, 8, 125],
247
- [8, 10, 100],
248
- [10, 12, 92.5],
249
- [12, 15, 85],
250
- [15, 22.5, 70],
251
- [22.5, 30, 65],
252
- [30, 35, 60],
253
- ]
241
+ [1, 2, 300],
242
+ [2, 4, 250],
243
+ [4, 6, 175],
244
+ [6, 8, 125],
245
+ [8, 10, 100],
246
+ [10, 12, 92.5],
247
+ [12, 15, 85],
248
+ [15, 22.5, 70],
249
+ [22.5, 30, 65],
250
+ [30, 35, 60]
251
+ ]
254
252
  density_table.each do |density_row|
255
253
  return density_row[2] if (density >= density_row[0]) && (density < density_row[1])
256
254
  end
257
255
  end
258
256
 
259
- def sanitized_freight_class(freight_class)
260
- return if freight_class.blank?
261
-
262
- if VALID_FREIGHT_CLASSES.include?(freight_class)
263
- return freight_class.to_i == freight_class ? freight_class.to_i : freight_class
264
- end
265
-
266
- nil
267
- end
268
-
269
257
  def measure(measurement, ary)
270
258
  case measurement
271
259
  when Integer then ary[measurement]
@@ -291,6 +279,16 @@ module FreightKit # :nodoc:
291
279
  end
292
280
  end
293
281
 
282
+ def sanitized_freight_class(freight_class)
283
+ return if freight_class.blank?
284
+
285
+ if VALID_FREIGHT_CLASSES.include?(freight_class)
286
+ return freight_class.to_i == freight_class ? freight_class.to_i : freight_class
287
+ end
288
+
289
+ nil
290
+ end
291
+
294
292
  def weight(which_weight, options = {})
295
293
  weight = case which_weight
296
294
  when :each then @each_weight
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit # :nodoc:
4
2
  class PackageItem
5
3
  attr_reader :sku, :hs_code, :value, :name, :quantity, :options
@@ -12,13 +10,15 @@ module FreightKit # :nodoc:
12
10
  @unit_system = imperial ? :imperial : :metric
13
11
 
14
12
  @weight = grams_or_ounces
15
- @weight = Measured::Weight.new(
16
- grams_or_ounces,
17
- (@unit_system == :imperial ? :oz : :g),
18
- ) unless @weight.is_a?(Measured::Weight)
13
+ unless @weight.is_a?(Measured::Weight)
14
+ @weight = Measured::Weight.new(
15
+ grams_or_ounces,
16
+ (@unit_system == :imperial ? :oz : :g)
17
+ )
18
+ end
19
19
 
20
20
  @value = Package.cents_from(value)
21
- @quantity = quantity > 0 ? quantity : 1
21
+ @quantity = quantity.positive? ? quantity : 1
22
22
 
23
23
  @sku = options[:sku]
24
24
  @hs_code = options[:hs_code]
@@ -38,28 +38,28 @@ module FreightKit # :nodoc:
38
38
  [weight, weight(type: :volumetric)].max
39
39
  end
40
40
  end
41
- alias_method :mass, :weight
41
+ alias mass weight
42
42
 
43
43
  def ounces(options = {})
44
44
  weight(options).convert_to(:oz).value
45
45
  end
46
- alias_method :oz, :ounces
46
+ alias oz ounces
47
47
 
48
48
  def grams(options = {})
49
49
  weight(options).convert_to(:g).value
50
50
  end
51
- alias_method :g, :grams
51
+ alias g grams
52
52
 
53
53
  def pounds(options = {})
54
54
  weight(options).convert_to(:lb).value
55
55
  end
56
- alias_method :lb, :pounds
57
- alias_method :lbs, :pounds
56
+ alias lb pounds
57
+ alias lbs pounds
58
58
 
59
59
  def kilograms(options = {})
60
60
  weight(options).convert_to(:kg).value
61
61
  end
62
- alias_method :kg, :kilograms
63
- alias_method :kgs, :kilograms
62
+ alias kg kilograms
63
+ alias kgs kilograms
64
64
  end
65
65
  end
@@ -1,25 +1,22 @@
1
- # frozen_string_literal: true
2
-
3
1
  module FreightKit
4
2
  class Packaging
5
- VALID_TYPES = %i[
6
- box
7
- bundle
8
- container
9
- crate
10
- cylinder
11
- drum
12
- luggage
13
- pail
14
- pallet
15
- piece
16
- roll
17
- tote
18
- truckload
19
- tote
20
- ].freeze
21
-
22
3
  PALLET_TYPES = %i[crate drum pallet tote].freeze
4
+ VALID_TYPES = %i[
5
+ box
6
+ bundle
7
+ container
8
+ crate
9
+ cylinder
10
+ drum
11
+ luggage
12
+ pail
13
+ pallet
14
+ piece
15
+ roll
16
+ tote
17
+ truckload
18
+ tote
19
+ ].freeze
23
20
 
24
21
  attr_accessor :type
25
22
 
@@ -28,9 +25,7 @@ module FreightKit
28
25
  options.symbolize_keys!
29
26
  @options = options
30
27
 
31
- if VALID_TYPES.exclude?(type)
32
- raise ArgumentError, "Package#new: `type` should be one of #{VALID_TYPES.join(", ")}"
33
- end
28
+ raise ArgumentError, "Package#new: `type` should be one of #{VALID_TYPES.join(', ')}" if VALID_TYPES.exclude?(type)
34
29
 
35
30
  @type = type
36
31
  end
@@ -39,14 +34,14 @@ module FreightKit
39
34
  @box ||= BOX_TYPES.include?(@type)
40
35
  end
41
36
 
42
- def pallet?
43
- @pallet ||= PALLET_TYPES.include?(@type)
44
- end
45
-
46
37
  def box_or_pallet_type
47
38
  return :pallet if pallet?
48
39
 
49
40
  box? ? :box : nil
50
41
  end
42
+
43
+ def pallet?
44
+ @pallet ||= PALLET_TYPES.include?(@type)
45
+ end
51
46
  end
52
47
  end