simple_cart 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -7
  3. data/Rakefile +1 -10
  4. data/app/controllers/simple_cart/checkout_controller.rb +2 -2
  5. data/app/models/simple_cart/cart.rb +9 -4
  6. data/app/views/simple_cart/carts/_buy.html.haml +1 -2
  7. data/app/views/simple_cart/checkout/payment.html.haml +1 -1
  8. data/lib/generators/simple_cart/install_generator.rb +19 -0
  9. data/lib/generators/simple_cart/views_generator.rb +12 -0
  10. data/lib/simple_cart.rb +2 -1
  11. data/lib/simple_cart/acts_as_simple_cart.rb +15 -0
  12. data/lib/simple_cart/engine.rb +0 -1
  13. data/lib/simple_cart/version.rb +1 -1
  14. data/spec/controllers/{carts_controller_spec.rb → simple_cart/carts_controller_spec.rb} +0 -1
  15. data/spec/controllers/simple_cart/checkout_controller_spec.rb +206 -0
  16. data/spec/controllers/simple_cart/orders_controller_spec.rb +91 -0
  17. data/spec/dummy/app/models/thing.rb +1 -0
  18. data/spec/dummy/app/views/simple_cart/carts/_buy.html.haml +6 -0
  19. data/spec/dummy/app/views/simple_cart/carts/show.html.haml +64 -0
  20. data/spec/dummy/app/views/simple_cart/checkout/_address.html.haml +21 -0
  21. data/spec/dummy/app/views/simple_cart/checkout/_overview.html.haml +53 -0
  22. data/spec/dummy/app/views/simple_cart/checkout/_progress.html.haml +13 -0
  23. data/spec/dummy/app/views/simple_cart/checkout/_summary.html.haml +14 -0
  24. data/spec/dummy/app/views/simple_cart/checkout/billing.html.haml +35 -0
  25. data/spec/dummy/app/views/simple_cart/checkout/confirm.html.haml +68 -0
  26. data/spec/dummy/app/views/simple_cart/checkout/delivery.html.haml +52 -0
  27. data/spec/dummy/app/views/simple_cart/checkout/payment.html.haml +69 -0
  28. data/spec/dummy/app/views/simple_cart/checkout/shipping.html.haml +34 -0
  29. data/spec/dummy/app/views/simple_cart/orders/index.html.haml +105 -0
  30. data/spec/dummy/app/views/simple_cart/orders/show.html.haml +117 -0
  31. data/spec/dummy/config/routes.rb +1 -1
  32. data/spec/dummy/db/development.sqlite3 +0 -0
  33. data/spec/dummy/db/test.sqlite3 +0 -0
  34. data/spec/dummy/log/development.log +4027 -0
  35. data/spec/dummy/log/test.log +97712 -0
  36. data/spec/dummy/spec/rails_helper.rb +57 -0
  37. data/spec/dummy/spec/spec_helper.rb +92 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0FcPYfgadHFgNn9gK63tPFKK4H2rO_URr3EUuAvjYp0.cache +1 -0
  39. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0dg7p5gOV72Ny6Ny3IKpkgU_8IqvTZHmHOy8n4Xsw2M.cache +1 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0xSsQhDI_wNg72JlfvBHjLv4Me0vFWcjQ1xhk7pisd4.cache +1 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/159JFhfdHp_thKe1wRsdwEteUCPmWAuYIWv5RFKMBlo.cache +1 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1wFFAPFWt-iKxnXTLTwYEd83jWSCK0LU9cTDV2Wjfu8.cache +0 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/27doQdGOX7PfBAEE47N_lakWMKG6mBGe09j-nWAm7z4.cache +0 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2Czere6jw0cSz7pT7ovQ4KP6Lc2mduP3Px1TjETTO1I.cache +0 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2do6_0BJY_m-WISNQO55OL7r8EryK6F5GT875Vmdr_I.cache +0 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2eVKX64lK8KwJimF95vGARhITDI8ts-3JJdUU3gj1tY.cache +1 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4JdgN7EfuotoXyxsvvpW_aG55aua0gXBz7e6JYCxo60.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4UaD8nfLrD1nBKoNVzfk3-uO8TW1Vh_QzBOjJNPJ_8g.cache +1 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4dJ9VizO6nnTjEMG4e6amMeLuDm_0KV4S4Y4gLJGHko.cache +0 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/52wRk3NuutEVedxEd5YZyc57yxugisJTjw7z8MvwLU0.cache +0 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/553ZiZnM1LaMiT4BpPBrFsovmtA4vtM54UJ1Di6wO7c.cache +1 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5JNk129FFNojsMghwhEW89dWvfrz_aP3Wagg6vw-MpE.cache +0 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6-aKszuTNRunG5-OdaDZQes4n5N2dlFZl0mB2J3-hOc.cache +1 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/60OKggXvrz1fZ0Ex_PWiO5LZsEPpnkDvls8B9HKYCRo.cache +3 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6QYppJ-vGlbXWmdNYojVbVFiu5LLTRXsFeB9SBKS7ZU.cache +0 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6VccdRj0fepqPF8jSMe2ybKR1J8HdiNOewoRN3BZTy0.cache +0 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6Wv6jl5BiVaaR2aqwiOwU8x7jM61Z2Vny9_V2Hv5LlU.cache +1 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6jvVqJtCEdkG_UPs5qcz1dFvfpPV0Iy-IesjuTZTIpI.cache +1 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6ppxZcpVzwRyTEua4d9btfhtc_elKSSbfASuwv8mI8U.cache +1 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/77T6xpTdKV9I7w40WNKaTmM97aa-VHvaWMo7fhVWg_E.cache +1 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7Hmk8E3VtiYc0FG2kpeeS6HrHthClevGfGVSp-Wa4YA.cache +1 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7fVX6ugowWcFdFjl-6cg_mVIWZkn24Q8K3TCJwCN-y8.cache +0 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/88QUzbOCBedH8sqg2WSFRU-qN0kDdlSj8Su5vqq6ASI.cache +0 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8DXxFxOs3XK06Mxa2Ob19isXxUDJ28PqKZkHvaWv75Y.cache +0 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8HxGo3Te8bOtmadYIfFbYjik4KZtw_LBEDTmYC7VcXQ.cache +1 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8I9atE6L39Q_9omFaJZ0-vFeV4xysOPZs93168JELvQ.cache +0 -0
  68. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8jH3Rwu59cMqVaRgrEZUNIu9oT_2_JLiJ69qen9-MaA.cache +1 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9IpG4YfpA6l1omnbIXRje0q5lFCxIiDaRwTJATy5b6s.cache +2 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9UKUsNamaoZa3e9qt8Cbl6GE4qT6KkBzMIjmmjqymPU.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9deC_bZts_B1wiNhDTYIa73Lqtvd1fNXKFV7dUvGTnI.cache +0 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A7lfpdskVsNs-fivGho7PGCalmbDbtc4Vx5EmSYgFko.cache +1 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ActDOWSbajJnfMGBKwnDmANleFJUxDecSrg45RkJp6I.cache +1 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Al85QlZMTIFVx8uNfwPnn1FsUk8RMvljZmBQtxT4E2U.cache +0 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B21vGy3Ls1ldep-Xz7OkP0Npg3wwDQAj_md7jre1x6c.cache +1 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BvBz5jnX9Os-394CpQlFUHPOd4ftIJSSF70DWiIH_80.cache +0 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BwRh-YE99DV7hTWKWZJFKpOSqZIX3B8Y5ThzlDKYS6s.cache +1 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/C2mZ2drUiVMlZGEy154D3ggaKbu88sMVWZEWI1DcZKY.cache +2 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/C5Xl0bgiTKnYcysKQucSHv4f9nC3kpn-iB3kBOhWo-A.cache +1 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cf3olB5bXJrBdGWoyhZD8eFuXWPaLtBEwBTLWQ99VIg.cache +0 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ClhULyYJqmCEpax2xwneLE3XlcHbM_og3nR19y2h5h8.cache +2 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DSOLSc6A5RVSmvM415eEWAWG_AgOvZcLZOXQjsXyWQA.cache +0 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DbsiS9HoG5w2-Rmjo2Hu_3C4Nk1KppbqKwU_z7llEZQ.cache +0 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DoG68m50DoV3kgn1vR6xyXYeoH-MB6ybg4f66G2oIMY.cache +1 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DvJSPJyLLP6k8NeTNuTYbSzc8VgOSzR8upe9q5MWbkI.cache +1 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DxtO-lrFqTip-QyvxhYv7s3KvJPhTJSfIdHt0VIwyrs.cache +0 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EGe2TaC_TKY5fjfs_3HOnHqSNS9k6WJfA1OB6cVWiUI.cache +1 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FgKC9us43PbrHYAiLZ__S-kGGy6EVvbwYtMMuo5JIRk.cache +0 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/G1u_i1slQKOM1k_YCtBSx9TiYboEHoJ79ycS8MJQlRI.cache +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gc-AsCjiq3nVDfX8tPYCuZshMJ_WrA0Vd3mx7wXHN5k.cache +0 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ghh84oB0RGBtAS_4-kThje9nc1W-y41Mvz5NEG7rQRA.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HMBW-ITK3KFQ3UgES5Pn8DJ39kF3JsDs7ddwBeCwWYk.cache +0 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HSoyFwmngYiRfL63cWe_Es6VIDES_lGxINmJCRfcsZU.cache +0 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HufrcmJ0KHflG7-KRm6EAR5g0K4FkH3P8Ud7Y6JX8ic.cache +0 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/I4dLQ-srO9IdywOz3Z_i8pRV7QXEMqLl1F90cd2rSlg.cache +1 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/I6Oq-RgyVljdlYv12gHvl892h3tBNvu94D-nxtw8Gpo.cache +0 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IRJHT7e-lxidIGcFuffgiDTMQ48dxBmwn3PsF9tE1yU.cache +0 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J2YySW2Sxol7U2snkQJGZUzJ0xZiBRQPlfjuTokB9PQ.cache +0 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J8kpR2tHAmZfVEWNzPNGDkkdJ67YziGXrsExDH37LP4.cache +1 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JO9sST24rwIGbAobkQBEiX57pm89e8yOR-p0AojiWVE.cache +1 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JZsdqpPuhZUMRn9NNZOFt8G732JKPZYKfScHapgwa4Y.cache +1 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ju6cEU7JJvSuX74lGKF-PrurWhsq1JzQNNbaZq_GPww.cache +1 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K1Pm-Lb5Yo5sJOy3OZq7ydyreN1z5foaAaTL4V5jq54.cache +1 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K5TLbb83mthCDcHqUxsw1-KOCjurz2IOUz2OaH0UKE4.cache +1 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KHSjx56ObyOzcy3X9_eHjPVt0ziJZkp_W6_QSXSafD0.cache +1 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KXD3GZ_7roadNSuv9bzVFY5rm66FRL_vYUpRFqFFpeA.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KXa8sq1TIqZ0OwRj7yswNaicPeh7wSXbwgdjb_qEteU.cache +0 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KaAKYXUyYoCxczl3wqmVcaDG5yCmMSIe6FOExd05V6o.cache +0 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KdOWD9jQq7dNL-vge4-NJRBK9bUWHo-5nYnzcCx2mmk.cache +0 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kl_FO2rhb9hUGWQbT3Qh9RYBscEzY97yUrj7JGhlo2I.cache +3 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/L33lPPj2uVFqqkS3vVIflzKgJ2oSCUz_nFvFtVv3UJg.cache +0 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LRiYZZ1PWTYQlhncLmfuyIZdiM1pL8HIzJz9_rAlfTk.cache +1 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LUTVQqelOCK7OiooeWo6muRrw2UkRAnt6iVt-rQUxVg.cache +0 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LUa0T242XccAbc16vt7CQPcn8fe5uuzsJttxTYei9Ro.cache +3 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LlmXxORiI5shbl7RZ6XgmLoIm6SALto-tFhI-gUQfag.cache +1 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LtZHoZ79qnv91QeHfmqsCajzZUD6lpH4xZZsGmgirxA.cache +0 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LuZkT6shqLOUMoPGsyuZG3JfCINpdkDrxAgejRdrbKg.cache +0 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MOUWowPMAsedrv19x8tcF3tnX3MmPskbzJ46ri0jWD8.cache +1 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MacQy3xktf9oEct-E7lJvgf2eWpW3JZ5ydxNdUFKWbE.cache +1 -0
  120. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MqQJ1BGUyGNW6X7ikl3zf8Jo-g8ped3YGRKwydmw_NQ.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/N4NjOSCa6YJpo0ZTmlLuAHKtAYNGsTTkLpMmmbcFvPI.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NIrYu-ybQ93OYZkS29-DRtRTHOi69NBttITYYDIt8qM.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NdHV2_WbxTlIY928ydLeOndno4ng2wGXgOIdwRH4C3o.cache +1 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/O1oq3VBWIXCRZOcEODKVsPQh9JhbxpGL8kxdoUNA2Xk.cache +1 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/O2JIfIPAbNU_AyrIu3ITeqlnbl-vWyXf-t1EMSJmOsg.cache +0 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OBerTNSTXzIbX0mxMxa5-rNM4Ac4UE4kqG7MKCzBCW8.cache +1 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ORnJ_m3WdZwfH2bWBatZYBvNAwCJVkkVnM2LFSXez_k.cache +1 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Odi8eG0T-hacLQdjMsClrOIJKeHyY_i7igUyfhzhYQI.cache +1 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P7bTZBQIN0DUvh7TBnru8TPAvlVb9lhvL7dgFP1uHfU.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PBEpQ017z0XtT-PsIAJgUhljqbaQgpZE1nVEBJd12MY.cache +0 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q59IhZoGUcaZFUtCZB20KJFkmSdkl2_gA1V5L7yJGfk.cache +1 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QINpVmB_ZIDA8lOKtpjtWXenmF-iXN7quP3wTUzsN-U.cache +0 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QWbWHsxurDlFdxuxXJdG_GvDcg7agUeoDRzv8R8zbHQ.cache +1 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RR0v7bXnkw_DAIqKQUStbF0O5ytMAK_7OZp-5hCVzm0.cache +0 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Rj42BFwHvQpHPnt1iAOPi89OYrjqGtGG_4wceo2BBJU.cache +0 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SLDGZ9eYf8c8WiF5yyCfRoNFoLHRSXWrARuMCblGqtk.cache +0 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SULF3NQxB6qO8JJnI5rRyD6rei-J60aW4rraimqf6hk.cache +0 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TJhYo1hoREPI5GIy024MsD1WDV-KFzAQ-9qxDBPyNVI.cache +0 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TWgbWSCl7nRMKksNZWx2gERqMzVoc8vH4GTWuAu0154.cache +0 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TbRETg3JdW9nRXuEyzoW7fZn2Gs22HedMxdluZ3Pk-o.cache +0 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TqoiNVS_JI8-efr0qvvDlXUCnSigB1iZGltIJprRQ8c.cache +0 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TzlFnGHSbzTW25btAhrvA2pw5ihmGbN09P3Rrhu5mIQ.cache +0 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U4CxtV5X10FdgYubaBda5c8_s2q6zlZB6kavI6otXB8.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U7EN8_xFBne9oZCIkCgLEiKMjwtHvKIRczjokWdFLCY.cache +0 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UHMAwy27koeiLUhw5UYw8HVhK5HtgF7ePqguvCyrsEA.cache +0 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/US8iBwx5NDKUDlUSUQgeto6oyF3OraYtysS7f7KE5t8.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UbPESDvcrSQKrcCQxpkYhPmAynBLWdbcNBIpk18kMCg.cache +0 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UeY4IPP6X3MGYFy722I41ZTbl-iaYL8IWgSiojNWXGA.cache +0 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UxsyM4_qLbZJmH4OH1lZBfY4pUvXgiut2oKUFUCRaMo.cache +0 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WVf3YD9mocylpbI8QR2n9V6j3Dru7LpfzqQgHhe6swA.cache +1 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W_oE5NUcqzBLMP6yl6RuhR_a-FTgjBG8SOAKP7E_L8o.cache +0 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WbHKwnC6PqtSmH3GzgZxNoEZ9guk2ovTMX0TqrSXlno.cache +1 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WbhukjTJe2y7m7NIPtqnTU5fjqTJBiKy3LnqJAo2ZiM.cache +1 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WjJNxRO53_FsR3YzbsWpP6ZaOlqMcZh8uB9A1arbXy4.cache +0 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wxwqx9HQEeTIByaDG6SofLH78EyRKP1RWMRa75Vojmk.cache +0 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X-CgAk4J5uL3mAEfDhZN2HOe_nMblAiMQhbY63tDC2g.cache +0 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X1EP5y_ZQxqgpQdYFO40WrNWrp8zlKOiQH62WfX_k9o.cache +1 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XTS3kY6cfnC-jQP99MzE045LRqQc20dGPmSJ-rwKcaQ.cache +0 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Y3iGVPSMAEadLpqj1Fr_Rh65TEdx7NQ31BUL_mkvHGQ.cache +1 -0
  161. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Y7LIPjdg4ZNJJmw9l9e0xDQCGkvxNjfoE-Vju2PgwK8.cache +0 -0
  162. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YGTNO43Also85pe9ZS76Q1adI9YK6kjdLZkdfUIEMh4.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YQIUs0lUtsQcjUrYLQmPgw-F6Wpn8ZOcHP-gcG8rIX4.cache +0 -0
  164. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ybv2APOiKjgjEHSpzZs2mJH_JEeNr7OCQ955fCdOLsk.cache +0 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z95Nkl-1ZNwDFnlxX6wOAIui1B9kHfH0Kg6beVDsoIc.cache +0 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZDXgFaKLUP-qzD5lSx9fNPWhC3p58KhciyGB7TykNJ8.cache +0 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZGq7MOKMLzCiR1Z4oo33rzFPzmxaOyYWdTsYOmAjKlM.cache +1 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZYoVi3M2mzdwCsjS4hzVtP9ZNBWCnBJrXXf-5Hhm14s.cache +0 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ze4_lzHgd8DPMa09CZ9kktymXe5QX_iBXCItee1lQGY.cache +1 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zipyyq6itMyZhc6YUAQX1ctdhwcYD2Hmm5BMm7uP53A.cache +0 -0
  171. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_nD_mnkybh4QS7c3pxosM2Jv4bhzKHv4zPZy2NfwJik.cache +0 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a-QY9no1r9wESk0XVZMU9-j4ILaT0dYl4wZXDp81u-Y.cache +0 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a3rqfUDI5k3tIDAdRc821L2zpk1g6WrmfBvtBlVnEgI.cache +1 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a5QEJSZhYBkNk1C52Trj85jUyIJcgFE8YFbg6XumdTw.cache +0 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aMJWLCvS9eTggheJfpJ6gUdxsKsYMbflLx1_MJ24ZKw.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/adVVa38KCDY87GzjXpzoGgPvNxJbpqXQP4qyVKorPd4.cache +2 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bJNhvxxAZ5DVoCVfFAfma0Q3igFNdO018d9XPXGh63o.cache +0 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bUQP6ANjTKNXYQDMNz3PWpFWTF5SivR6uyYkW8BP_Gw.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bbwkzDKpUKATPq1GRFiMPj2G42FE46ZCNfZAgLqLMRQ.cache +0 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bmZk6kPconCKMdMNPY6ge5xlYPM-NQIZXYf5tVDlkXw.cache +0 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bvqtvdW959hJYsCSqdsI9Y724kgtSkW1sosYSN62nVo.cache +0 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cHt0mH_R8BuiIH1cEUjYkjqVjhH8RPhZeXs0zb3_4_c.cache +1 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d9L2wE9I51-s1p7CTgQWputeuJCIKyRvhpm3fR07VNc.cache +0 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dfrvxDyfk67Os53_mjIn3hlOfRxqLKK6Ka-CaxTooe4.cache +1 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dqOO06mYDk0wRgPf1Ziyi32XryK_a018r7Ik0uit02Y.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dvfOC1uAjTmhh2f0HAzarTv5_pS4yc3KaLR75Fit-qM.cache +0 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eaQa3YKQ2tB-oxeXJEOnoDd1G_AxpmbUDA7M8ePerD8.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/emtU-J87p8RjW3dlyMesXKApGbGgOas7wH_lnbWKHs0.cache +1 -0
  189. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/etla6RgCcLhinP2_LK4J-fcNd7zL6Zsv3TuaU4Dp3nM.cache +0 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f0Jm47tmsqZA-EQsCGB7qZ4pCA8PcViRHwRfkn4SCi4.cache +0 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fGHWXX_znE2IeH4OVEwaT-hnI07M7LQwb4wWeTMJRro.cache +1 -0
  192. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fQ3tndxY5LM8i4kyzpKDrFfL_DjRNCfkuAAGs8FrJzU.cache +0 -0
  193. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fhCnloZi1iA-7V3BC8RI6xXWInPaaahS29iDlaPl5AA.cache +0 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gNL-C_p_NsiDm86EYnStDdHnb_J0gwJDgsm6p-x4bPw.cache +0 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gZp3uXMHuYQC4hzCr7bQfetKNdJAtbQmg3so2KpW1Dw.cache +0 -0
  196. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gfj0cNpszRV54KNOJl36bresYupjtNETPwU2DetRc9k.cache +0 -0
  197. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hP-NOEvXiOPZorwh3pqVCBL8vKPuRlIDwTHqyprLVoc.cache +0 -0
  198. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hhaE1adQGmXVNIJKHKVZbaIPBXTUhK6SFO714rCx5ko.cache +1 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hm6-kyB9LxlX-CzWtwTNomSbSEMuwwoVr_3foQ75GmI.cache +0 -0
  201. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i8xvGmXJllRh_504HEHUD1D23PNMOSApRFN6VxaAGeo.cache +0 -0
  202. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i9gVzGFdYf8tBYY5zLGbiPPXDvRZtvx_1mtjyYAzGFk.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iDT6fOlRmL7PP4VJ4SpONzU8ZkY8gg9feff2z_2j7mQ.cache +1 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iNYpWOT4gj3gjeaEngMxlmKOX2jQ5kyS1WMsZhjJAtk.cache +1 -0
  205. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j6D8EPFTb0SpSLvYHCYROUOEDZqM5WlinRPlGPtN_Xw.cache +1 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/k4KOaVr9wMGHtsRVXYsTedjUrT_W3sueQj87SiLmgW8.cache +0 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kAOU5FCvxF0g8ScWFZnLfuVMXcwQJkM2k75kf3kbpFo.cache +0 -0
  208. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kz_ifS6iuSrtVYG78G7QIv7rEL4CKPAkG_mtnZcQWIk.cache +1 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lFy-5JQVp3qiNKqL1UVqYkv2JKCV6ltXcPDtdKG7V54.cache +0 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lK1OKrUN4Aa4ULF5iC8LIO9b_8pD6VtM7QmFoR_Hyq4.cache +0 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lL53cm_saG1cEdc_0TGdAq7tkJ9bY9yXRBIUsR7D8UI.cache +1 -0
  212. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lLcLuHAD8NB0iohQeabHp4dk298iIqeePqXVeuK_3H0.cache +0 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lQjsQ32aYeM4nY8qVi9YPKXqj_2L6xaoKIeIkFS3jWY.cache +0 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lWCdGefGeej2lRA8Gd08bV33SOp8tbEfqqz3Khl78oM.cache +1 -0
  215. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ll6Sc5xrZqzzpgpCPJyeTCs8IODJcalFH8XZZZPfkAY.cache +1 -0
  216. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m1e6jwxRs_JtIZbbRBAxGQj3ds0Xxa5vKED1JPBKbg8.cache +0 -0
  217. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mdQzbY0SX_-f0tvLBNm7fWC40lqQuyho7zhUJ7ckA-A.cache +1 -0
  218. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nC355jeTqAEoFFK-TABMGHdsHx74SjeE7DBq8xM4Dhk.cache +1 -0
  219. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nC49DzQcJoB-xvh15KbC4AUQA_GA7ivrufj1E3mU3zg.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/o5HX-kg2EODqzNhkW_ZAahHuB4yVPP8L5uOFVH8IW-U.cache +1 -0
  221. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oLDYrqmRAjrPRuhGdX6H1JQeHNOmLTow4Eel5UwH9-4.cache +1 -0
  222. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oiZfRfZUr3qevC6e8k4q1_Y1KeLkrQnabK8XvtQUEdM.cache +0 -0
  223. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oia1xdTfARSP0QPx-08rdbJgtwgivmbJPpE9ZIWHRWI.cache +0 -0
  224. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pDCtCFl3JoTIR1MlLiDOzshquvlPpsMw1yjJ8LUwZoc.cache +0 -0
  225. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
  226. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p_H61N5uq7AtqCDaaabvjftQdFUpRFgVngUUQoWgonM.cache +0 -0
  227. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pbJWIv8m4Zpz2Vdg_dct0jTcXyyF5C_0qCFMnrfzQhs.cache +0 -0
  228. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q1eWeFH4Ko50zNfNpD0AHOigO-Dl-IY62iz59wxjyB0.cache +0 -0
  229. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r-umRmbhYnDarxdLHW5j9Ya_kstiUKaW_wRSCCEnWXc.cache +1 -0
  230. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r9c5JJA88ftlHtJsLKcFJZPZGR3GqsygNyRCMfV1wHs.cache +0 -0
  231. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rHVh31TC4HKKMY-bqx5PCfr3jxc5lwdEripG-OobWMU.cache +1 -0
  232. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rJI5GE_7XaOoa6Tf7NYEISqT7721LVG7poLUF_31-vk.cache +1 -0
  233. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rKZwg5I56SY7UzS6nJb-HhGNojSbnd4thzevRVqjrM4.cache +0 -0
  234. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rrhf-39OhBdaZAyMckqVYYpeo5wOlz7ZF1A5dXTzHyk.cache +1 -0
  235. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/s5WdYMy1zZQyLQ3jgMjyG2nX1lO6T0H6WjDHiIZud-4.cache +0 -0
  236. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sFtUj5nkFtxTPes_76ayDdPoRK5PrNc-85cy8VpguKo.cache +0 -0
  237. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sie-V3ITyZKtkQXFDHqsuBj63wj-vj3KqyZEZnXrDDs.cache +0 -0
  238. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sly1iOCf3l3QeGAfR54WjZQENHSgvySjx1bqYJufS9U.cache +1 -0
  239. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ssAxKsbsLWPM72bir14WKuhev6AdNBDMeaKwAfBLVbM.cache +0 -0
  240. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tahxNHp-Nubl9PZYv54PoDWwOWBafDdePsdGWgRvxRs.cache +0 -0
  241. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u2dcdVvrMTVSZ5YM7_utAYZmJdnupBvRHQiNz_VxVNU.cache +0 -0
  242. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/upCRdLKCQ_LMJvznkBqZv3BLnc61IeBeuz1uCClUiXk.cache +0 -0
  243. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vA0eFV_bRhR8l7WhyElPZZM7novqeS1hs7KLtwEisB0.cache +0 -0
  244. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vjPguchHWdt-YK2EYQ9QRKlqa50p-qstw6XHWFpi-TQ.cache +1 -0
  245. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vnEp_XTpvwYSWfGJSwbHT-Ga4Y8-E4XFowfSeG3PHlc.cache +1 -0
  246. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w23Vh5f9T1XBR0iY2GvglM6ZnVU3s-UfqM7KRvPhE-k.cache +1 -0
  247. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w8soQF6_YAg_K7mm0Yt3JPY111kY76FabdY8vbI7AeI.cache +0 -0
  248. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wc53Zkd85TBeGzckO-CbTd5O2OAJYikiGFKHX4BAglo.cache +2 -0
  249. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wgvcchilGiqf57VaXODqv2ciHGo3kkyL5ntttb4AYRM.cache +1 -0
  250. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wshkkfg_d4VBJnagVOHTQN1ta0hl5JOCCvr8KVcH7rU.cache +0 -0
  251. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wvSMeOG_o73wgdwwrFF7A1-9jU014gjXk-eMKAcLGrk.cache +1 -0
  252. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xPmaTlc5nbaEOxlZXH3InaKfo1PNX9VW0_scNelg7zI.cache +0 -0
  253. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xYFdXkHU4uyzJp5yO_cL8KnYI0FbOjBznbzUSoZW_Jo.cache +2 -0
  254. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zE9RWNhH3MoYHJkGpFhH69ThF5w97GamQ6V_d1hZRyk.cache +1 -0
  255. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zJhGRCzO2SKJ9xpszxe1bgNXQ3jKOM-Sp_VQ-FcKw08.cache +0 -0
  256. data/spec/dummy/tmp/capybara/capybara-201603221359263765142952.html +102 -0
  257. data/spec/dummy/tmp/capybara/capybara-201603221400062416605027.html +102 -0
  258. data/spec/dummy/tmp/capybara/capybara-201603221401176508690898.html +102 -0
  259. data/spec/dummy/tmp/pids/server.pid +1 -1
  260. data/spec/factories/simple_cart/credit_cards.rb +11 -0
  261. data/spec/factories/simple_cart/deliveries.rb +6 -0
  262. data/spec/features/simple_cart/cart_feature_spec.rb +47 -0
  263. data/spec/features/simple_cart/checkout/1.0_billing_address_feature_spec.rb +54 -0
  264. data/spec/features/simple_cart/checkout/1.5_shipping_address_feature_spec.rb +43 -0
  265. data/spec/features/simple_cart/checkout/2_delivery_feature_spec.rb +45 -0
  266. data/spec/features/simple_cart/checkout/3_payment_feature_spec.rb +46 -0
  267. data/spec/features/simple_cart/checkout/4_confirmation_feature_spec.rb +36 -0
  268. data/spec/rails_helper.rb +0 -1
  269. metadata +467 -25
  270. data/db/migrate/20160314183842_create_simple_cart_asdas.rb +0 -10
  271. data/spec/dummy/db/migrate/20160314184432_create_simple_cart_order_item.simple_cart.rb +0 -17
  272. data/spec/dummy/db/migrate/20160314184433_create_simple_cart_order.simple_cart.rb +0 -13
  273. data/spec/dummy/db/migrate/20160314184434_create_simple_cart_address.simple_cart.rb +0 -20
  274. data/spec/dummy/db/migrate/20160314184435_create_simple_cart_delivery.simple_cart.rb +0 -12
  275. data/spec/dummy/db/migrate/20160314184436_create_simple_cart_credit_card.simple_cart.rb +0 -18
  276. data/spec/dummy/db/migrate/20160314184437_create_simple_cart_asdas.simple_cart.rb +0 -11
  277. data/spec/dummy/db/migrate/20160314184745_create_things.rb +0 -11
  278. data/spec/dummy/db/migrate/20160314195958_create_kks.rb +0 -11
  279. data/spec/features/checkout/1.0_billing_address_feature_spec.rb +0 -52
  280. data/spec/integration/navigation_test.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 667e8f74d3686ff61c680e9fb301007a6aec1fe0
4
- data.tar.gz: eca4f915a9bdc4d2ed799b12fadd04f9d0385017
3
+ metadata.gz: c077dcd7475c05441cf80c2e110eb16cbd448e67
4
+ data.tar.gz: 7ea287086d37c383a5f1ee7ac33df4afe5adef9f
5
5
  SHA512:
6
- metadata.gz: 0cdb9eee395fea45613eef68ff4d59c3f6c505a20e89a456d9c448aef7c2aebb8a8283a6bbe31a36685d660a092b667b860dd5e665dd8faf7a6cd4f711612366
7
- data.tar.gz: 2b477cff84e67bdedbf1d8550f33c87498b9ac1d9ab8a29fcab50cb20dfb342bf7bc11896b5f43c9fb9758f074140ce6d3d5eb13c2aa49422429f03c2bee94c6
6
+ metadata.gz: 5b8ba6afe81a8bfced0bdec02e51cc49fe36170c1d206254bbc95a42718be32e14ac26101d9525e57e6dc2849e80314fbecfecdde85147d10518d12130d9ba1e
7
+ data.tar.gz: a52d65f59679bf1ee0efd275048e0ce4c7a669b62fe103dfcb3719c06ad586620118125054a9a821e1c2c48904d4fa20238adf6fa853d6bf8f5fe172adb254fd
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/leksster/SimpleCart-engine.svg?branch=master)](https://travis-ci.org/leksster/SimpleCart-engine)
2
+
1
3
  ## SimpleCart
2
4
 
3
5
  ### Installation:
@@ -8,29 +10,38 @@ gem 'simple_cart'
8
10
 
9
11
  ### Usage:
10
12
 
11
- Create or update your model with fields:
13
+ ##### Your model should contain fields:
12
14
  - name (sting)
13
15
  - price (decimal)
14
16
  - qty (integer)
17
+ ```html
18
+ <%= add_to_cart(object) %>
19
+ ```
15
20
 
16
- Add to your route.rb file
21
+ ##### After you install SimpleCart and add it to your Gemfile, you need to run the generator:
17
22
  ```ruby
18
- mount SimpleCart::Engine => "/simple_cart"
23
+ rails generate simple_cart:install
19
24
  ```
20
- Run SimpleCart migrations
25
+
26
+ ##### Run migrations task
21
27
  ```ruby
22
- rake simple_cart:install:migrations
23
28
  rake db:migrate
24
29
  ```
25
- You can manage delivery companies in the database using rake tasks. You need to create one in order to use checkout procedure properly.
30
+
31
+ ##### You can manage delivery services in the database using rake tasks. You need to create one in order to use checkout procedure properly.
26
32
  ```ruby
27
33
  rake simple_cart:create_delivery [NAME] [COSTS]
28
34
  rake simple_cart:delete_delivery [NAME]
29
35
  rake simple_cart:delete_all
30
36
  ```
31
37
 
32
- Use view helper method to add 'buy' button with required object:
38
+ ##### Use view helper method to add 'buy' button with required object:
33
39
  ```html
34
40
  <%= add_to_cart(object) %>
35
41
  ```
42
+
43
+ ##### If you want to customize views
44
+ ```ruby
45
+ rake simple_cart:views
46
+ ```
36
47
  :trollface:
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
18
  load 'rails/tasks/engine.rake'
19
19
 
20
20
 
@@ -24,14 +24,5 @@ load 'rails/tasks/statistics.rake'
24
24
 
25
25
  Bundler::GemHelper.install_tasks
26
26
 
27
- require 'rake/testtask'
28
-
29
- Rake::TestTask.new(:test) do |t|
30
- t.libs << 'lib'
31
- t.libs << 'test'
32
- t.pattern = 'test/**/*_test.rb'
33
- t.verbose = false
34
- end
35
-
36
27
 
37
28
  task default: :test
@@ -31,7 +31,7 @@ module SimpleCart
31
31
  when :shipping
32
32
  @order.update(order_params)
33
33
  when :delivery
34
- @order.delivery = Delivery.find(params[:order][:delivery_id])
34
+ @order.delivery = SimpleCart::Delivery.find(params[:order][:delivery_id])
35
35
  when :payment
36
36
  @order.update(order_params)
37
37
  end
@@ -41,7 +41,7 @@ module SimpleCart
41
41
  private
42
42
 
43
43
  def set_order
44
- @order = Order.find(params[:order_id])
44
+ @order = SimpleCart::Order.find(params[:order_id])
45
45
  end
46
46
 
47
47
  def order_params
@@ -11,8 +11,8 @@ module SimpleCart
11
11
  def subtotal
12
12
  subtotal = 0
13
13
  unless @session.nil?
14
- @session.each do |k, v|
15
- subtotal += k.split('_')[0].constantize.find(k.split('_')[1]).price * v
14
+ @session.each do |klass_with_id, qty|
15
+ subtotal += find_in_model(klass_with_id).price * qty
16
16
  end
17
17
  subtotal -= @discount unless @discount.nil?
18
18
  subtotal
@@ -22,8 +22,8 @@ module SimpleCart
22
22
  def items
23
23
  unless @session.nil?
24
24
  arr = []
25
- @session.each do |k, v|
26
- arr << k.split('_')[0].constantize.find(k.split('_')[1])
25
+ @session.each do |klass_with_id, qty|
26
+ arr << find_in_model(klass_with_id)
27
27
  end
28
28
  arr
29
29
  end
@@ -70,5 +70,10 @@ module SimpleCart
70
70
  coupon = SimpleCart.coupon_class.find_by(code: code)
71
71
  self.subtotal * (coupon.discount / 100.0) unless coupon.nil?
72
72
  end
73
+
74
+ private
75
+ def find_in_model(klass_with_id)
76
+ klass_with_id.split('_')[0].constantize.find(klass_with_id.split('_')[1])
77
+ end
73
78
  end
74
79
  end
@@ -1,7 +1,6 @@
1
- = form_for item, :url => simple_cart.add_to_cart_path(item), :html => {:class => 'form-inline one-line text-center'}, method: :post do |f|
1
+ = form_for item, :url => simple_cart.add_to_cart_path(item, klass: item.class), :html => {:class => 'form-inline one-line text-center'}, method: :post do |f|
2
2
  %h2
3
3
  = number_to_currency(item.price)
4
4
  .form-group.integer.required.one-line
5
5
  = number_field_tag :qty, '1', class: 'form-control one-line', value: '1', min: '1', max: '99'
6
- = hidden_field_tag(:klass, :item, :value => item.class)
7
6
  = f.submit 'Add to cart', class: 'btn btn-default btn btn-primary'
@@ -64,6 +64,6 @@
64
64
  .col-md-4.col-sm-4.text-center
65
65
  %h2
66
66
  Order Summary
67
- / = render 'summary'
67
+ = render 'summary'
68
68
 
69
69
 
@@ -0,0 +1,19 @@
1
+ require 'rails/generators'
2
+
3
+ module SimpleCart
4
+ class InstallGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ def test
8
+ puts 'hi'
9
+ end
10
+
11
+ def copy_migration
12
+ rake 'simple_cart:install:migrations'
13
+ end
14
+
15
+ def init_routes
16
+ route 'mount SimpleCart::Engine, at: "/shop"'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails/generators'
2
+
3
+ module SimpleCart
4
+ class ViewsGenerator < Rails::Generators::Base
5
+ source_root File.expand_path("../../../../app/views/simple_cart", __FILE__)
6
+ def copy_views
7
+ directory 'carts', 'app/views/simple_cart/carts'
8
+ directory 'checkout', 'app/views/simple_cart/checkout'
9
+ directory 'orders', 'app/views/simple_cart/orders'
10
+ end
11
+ end
12
+ end
data/lib/simple_cart.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  require "simple_cart/engine"
2
+ require "simple_cart/acts_as_simple_cart"
2
3
 
3
4
  module SimpleCart
4
5
  mattr_accessor :coupon_class
5
-
6
+
6
7
  def self.coupon_class
7
8
  @@coupon_class.constantize
8
9
  end
@@ -0,0 +1,15 @@
1
+ module SimpleCart
2
+ module ActsAsSimpleCart
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def acts_as_product
7
+ class_eval do
8
+ has_many :order_items, class_name: 'SimpleCart::OrderItem', as: :itemable
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ ActiveRecord::Base.include(SimpleCart::ActsAsSimpleCart)
@@ -6,7 +6,6 @@ require 'aasm'
6
6
  require 'jquery-rails'
7
7
  require 'turbolinks'
8
8
 
9
-
10
9
  module SimpleCart
11
10
  class Engine < ::Rails::Engine
12
11
  config.before_initialize do
@@ -1,3 +1,3 @@
1
1
  module SimpleCart
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -120,6 +120,5 @@ module SimpleCart
120
120
  expect(assigns(:order)).not_to be_nil
121
121
  end
122
122
  end
123
-
124
123
  end
125
124
  end
@@ -0,0 +1,206 @@
1
+ require 'byebug'
2
+ module SimpleCart
3
+ RSpec.describe CheckoutController, type: :controller do
4
+ let(:order) do
5
+ FactoryGirl.create( :order,
6
+ order_items: [FactoryGirl.create(:order_item)],
7
+ billing_address: billing_address,
8
+ shipping_address: shipping_address,
9
+ delivery: FactoryGirl.create(:delivery),
10
+ credit_card: FactoryGirl.create(:credit_card) )
11
+ end
12
+
13
+ let(:shipping_address) { FactoryGirl.create(:shipping_address) }
14
+ let(:billing_address) { FactoryGirl.create(:billing_address) }
15
+ let(:credit_card) { FactoryGirl.create(:credit_card) }
16
+ let(:order_in_queue) { FactoryGirl.create(:order, :aasm_state => 'in_queue') }
17
+ let(:steps) { [:billing, :shipping, :delivery, :payment, :confirm] }
18
+
19
+ routes { SimpleCart::Engine.routes }
20
+
21
+ describe "GET #show" do
22
+
23
+ before(:each) do
24
+ allow(SimpleCart::Order).to receive(:find).and_return(order)
25
+ end
26
+
27
+ shared_examples "receives build_or_find methods" do
28
+ it "#build_or_find_billing_address" do
29
+ expect(order).to receive(:build_or_find_billing_address)
30
+ get(:show, step_params)
31
+ end
32
+
33
+ it "#build_or_find_shipping_address" do
34
+ expect(order).to receive(:build_or_find_shipping_address)
35
+ get(:show, step_params)
36
+ end
37
+
38
+ it "#build_or_find_credit_card" do
39
+ expect(order).to receive(:build_or_find_credit_card)
40
+ get(:show, step_params)
41
+ end
42
+
43
+ it "assignes @order" do
44
+ get :show, step_params
45
+ expect(assigns(:order)).to be_a(SimpleCart::Order)
46
+ end
47
+ end
48
+
49
+ context "Steps" do
50
+
51
+ it_behaves_like "receives build_or_find methods" do
52
+ [:billing, :shipping, :delivery, :payment, :confirm].each do |step|
53
+ let(:step_params) {{ :order_id => order.id, :id => step }}
54
+ end
55
+ end
56
+
57
+ context "http success" do
58
+ it "returns http success on every step" do
59
+ steps.each do |step|
60
+ get :show, { :order_id => order.id, :id => step }
61
+ expect(response).to have_http_status(:success)
62
+ end
63
+ end
64
+ end
65
+
66
+ context "render the page" do
67
+ it "renders specific view for the current step" do
68
+ steps.each do |step|
69
+ get :show, { :order_id => order.id, :id => step }
70
+ expect(response).to render_template step
71
+ end
72
+ end
73
+ end
74
+
75
+ context "redirects" do
76
+ it "redirects to previous step if current is not valid" do
77
+ steps = [:delivery, :payment, :confirm]
78
+ steps.each_with_index do |step, index|
79
+ order = FactoryGirl.create(:order)
80
+ allow(Order).to receive(:find).and_return(order)
81
+ get :show, { :order_id => order.id, :id => step }
82
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => [:billing, :delivery, :payment][index])
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+
89
+ describe "PUT #update" do
90
+
91
+ before(:each) do
92
+ allow(SimpleCart::Order).to receive(:find).and_return(order)
93
+ allow(order).to receive(:update).and_return(true)
94
+ allow(order).to receive(:build_shipping_address).and_return(shipping_address)
95
+ allow(order).to receive(:billing_address).and_return(billing_address)
96
+ end
97
+
98
+ context ":billing step" do
99
+ let(:step_params) do
100
+ {
101
+ :order_id => order.id,
102
+ :id => :billing,
103
+ :order => { :billing_address_attributes => FactoryGirl.attributes_for(:billing_address) },
104
+ :shipping => checked
105
+ }
106
+ end
107
+
108
+ before do
109
+ allow(order).to receive(:update).and_return(true)
110
+ put :update, step_params
111
+ end
112
+
113
+ after { put :update, step_params }
114
+
115
+ context "without billing address checkbox checked" do
116
+ let(:checked) { nil }
117
+
118
+ it "#update order" do
119
+ expect(order).to receive(:update).with(step_params[:order].with_indifferent_access)
120
+ end
121
+
122
+ it "redirects to :shipping" do
123
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => :shipping)
124
+ end
125
+ end
126
+
127
+ context "with billing address checkbox checked" do
128
+ let(:checked) { true }
129
+
130
+ it "#update order" do
131
+ expect(order).to receive(:update).with(step_params[:order])
132
+ end
133
+
134
+ it "#build_shipping_address" do
135
+ expect(order).to receive(:build_shipping_address)
136
+
137
+ end
138
+
139
+ it "redirects to :delivery" do
140
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => :delivery)
141
+ end
142
+ end
143
+ end
144
+
145
+ context ":shipping step" do
146
+ let(:step_params) do
147
+ {
148
+ :order_id => order.id, :id => :shipping,
149
+ :order => { :shipping_address_attributes => FactoryGirl.attributes_for(:shipping_address) }
150
+ }
151
+ end
152
+
153
+ before { put :update, step_params }
154
+
155
+ it "#update order" do
156
+ expect(order).to receive(:update).with(step_params[:order].with_indifferent_access)
157
+ put :update, step_params
158
+ end
159
+
160
+ it "redirects to :delivery" do
161
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => :delivery)
162
+ end
163
+ end
164
+
165
+ context ":delivery step" do
166
+ let(:step_params) do
167
+ {
168
+ :order_id => order.id,
169
+ :id => :delivery,
170
+ :order => { :delivery_id => FactoryGirl.create(:delivery).id }
171
+ }
172
+ end
173
+
174
+ before { put :update, step_params }
175
+
176
+ it "sets delivery for order" do
177
+ expect(order.delivery).not_to be_nil
178
+ end
179
+
180
+ it "redirects to :payment" do
181
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => :payment)
182
+ end
183
+ end
184
+
185
+ context ":payment step" do
186
+ let(:step_params) do
187
+ {
188
+ :order_id => order.id,
189
+ :id => :payment,
190
+ :order => { :credit_card_attributes => FactoryGirl.attributes_for(:credit_card) }
191
+ }
192
+ end
193
+
194
+ it "#update order" do
195
+ expect(order).to receive(:update).with(step_params[:order].with_indifferent_access)
196
+ put :update, step_params
197
+ end
198
+
199
+ it "redirects to :confirm" do
200
+ put :update, step_params
201
+ expect(response).to redirect_to order_checkout_path(:order_id => order.id, :id => :confirm)
202
+ end
203
+ end
204
+ end
205
+ end
206
+ end