shoppper 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (267) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +22 -0
  5. data/app/assets/config/shopper_manifest.js +2 -0
  6. data/app/assets/javascripts/shopper/application.js +15 -0
  7. data/app/assets/stylesheets/shopper/application.css +15 -0
  8. data/app/commands/shopper/cart_page/add_product.rb +16 -0
  9. data/app/commands/shopper/cart_page/update_cart.rb +21 -0
  10. data/app/commands/shopper/cart_page/update_coupon.rb +51 -0
  11. data/app/commands/shopper/cart_page/update_order_items.rb +31 -0
  12. data/app/commands/shopper/checkout_page/add_checkout_addresses.rb +62 -0
  13. data/app/commands/shopper/checkout_page/add_checkout_delivery.rb +18 -0
  14. data/app/commands/shopper/checkout_page/add_checkout_payment.rb +19 -0
  15. data/app/commands/shopper/checkout_page/place_order.rb +40 -0
  16. data/app/commands/shopper/checkout_page/proceed_checkout.rb +14 -0
  17. data/app/commands/shopper/orders_page/get_orders.rb +34 -0
  18. data/app/controllers/shopper/cart_controller.rb +29 -0
  19. data/app/controllers/shopper/checkout_controller.rb +68 -0
  20. data/app/controllers/shopper/order_item_controller.rb +12 -0
  21. data/app/controllers/shopper/orders_controller.rb +19 -0
  22. data/app/controllers/shopper/shopper_controller.rb +4 -0
  23. data/app/decorators/concerns/shopper/caller_attachable.rb +24 -0
  24. data/app/decorators/concerns/shopper/view_helpers.rb +15 -0
  25. data/app/decorators/shopper/cart_page/coupon_decorator.rb +23 -0
  26. data/app/decorators/shopper/checkout_page/credit_card_decorator.rb +9 -0
  27. data/app/decorators/shopper/checkout_page/delivery_decorator.rb +28 -0
  28. data/app/decorators/shopper/items_table/item_decorator.rb +46 -0
  29. data/app/decorators/shopper/order_details/address_decorator.rb +19 -0
  30. data/app/decorators/shopper/order_details/order_decorator.rb +45 -0
  31. data/app/decorators/shopper/order_summary/order_decorator.rb +38 -0
  32. data/app/decorators/shopper/orders_page/order_decorator.rb +31 -0
  33. data/app/forms/shopper/address_form.rb +32 -0
  34. data/app/forms/shopper/coupon_form.rb +12 -0
  35. data/app/forms/shopper/credit_card_form.rb +36 -0
  36. data/app/helpers/shopper/application_helper.rb +4 -0
  37. data/app/jobs/shopper/application_job.rb +4 -0
  38. data/app/mailers/shopper/checkout_mailer.rb +9 -0
  39. data/app/models/concerns/shopper/order_aasm.rb +35 -0
  40. data/app/models/concerns/shopper/order_arithmetic_helpers.rb +24 -0
  41. data/app/models/concerns/shopper/order_item_arithmetic_helpers.rb +7 -0
  42. data/app/models/concerns/shopper/order_number.rb +13 -0
  43. data/app/models/concerns/shopper/order_product_helpers.rb +15 -0
  44. data/app/models/shopper/address.rb +12 -0
  45. data/app/models/shopper/application_record.rb +5 -0
  46. data/app/models/shopper/billing_address.rb +4 -0
  47. data/app/models/shopper/country.rb +11 -0
  48. data/app/models/shopper/coupon.rb +13 -0
  49. data/app/models/shopper/credit_card.rb +9 -0
  50. data/app/models/shopper/delivery.rb +24 -0
  51. data/app/models/shopper/order.rb +27 -0
  52. data/app/models/shopper/order_item.rb +18 -0
  53. data/app/models/shopper/shipping_address.rb +4 -0
  54. data/app/presenters/shopper/cart_page/cart_presenter.rb +34 -0
  55. data/app/presenters/shopper/checkout_page/address_step_presenter.rb +55 -0
  56. data/app/presenters/shopper/checkout_page/complete_step_presenter.rb +34 -0
  57. data/app/presenters/shopper/checkout_page/confirm_step_presenter.rb +20 -0
  58. data/app/presenters/shopper/checkout_page/delivery_step_presenter.rb +16 -0
  59. data/app/presenters/shopper/checkout_page/payment_step_presenter.rb +16 -0
  60. data/app/presenters/shopper/checkout_page/progress_presenter.rb +37 -0
  61. data/app/presenters/shopper/orders_page/order_presenter.rb +28 -0
  62. data/app/presenters/shopper/orders_page/orders_presenter.rb +17 -0
  63. data/app/services/shopper/checkout_manager.rb +55 -0
  64. data/app/validators/shopper/phone_validator.rb +11 -0
  65. data/app/views/shopper/cart/add_product.js.haml +3 -0
  66. data/app/views/shopper/cart/show.html.haml +22 -0
  67. data/app/views/shopper/checkout/_address_fields.html.haml +7 -0
  68. data/app/views/shopper/checkout/_layout.html.haml +12 -0
  69. data/app/views/shopper/checkout/address.html.haml +37 -0
  70. data/app/views/shopper/checkout/complete.html.haml +17 -0
  71. data/app/views/shopper/checkout/confirm.html.haml +6 -0
  72. data/app/views/shopper/checkout/delivery.html.haml +35 -0
  73. data/app/views/shopper/checkout/payment.html.haml +20 -0
  74. data/app/views/shopper/checkout_mailer/complete.html.haml +5 -0
  75. data/app/views/shopper/order_item/_table.html.haml +4 -0
  76. data/app/views/shopper/order_item/_table_desktop.html.haml +40 -0
  77. data/app/views/shopper/order_item/_table_phone.html.haml +30 -0
  78. data/app/views/shopper/orders/_details.html.haml +21 -0
  79. data/app/views/shopper/orders/_summary.html.haml +27 -0
  80. data/app/views/shopper/orders/index.html.haml +32 -0
  81. data/app/views/shopper/orders/show.html.haml +4 -0
  82. data/config/routes.rb +11 -0
  83. data/db/migrate/20170126000000_create_shopper_countries.rb +11 -0
  84. data/db/migrate/20170127194802_create_shopper_addresses.rb +19 -0
  85. data/db/migrate/20170127194999_create_shopper_deliveries.rb +12 -0
  86. data/db/migrate/20170129160931_create_shopper_orders.rb +14 -0
  87. data/db/migrate/20170129162148_create_shopper_order_items.rb +14 -0
  88. data/db/migrate/20170220181741_create_shopper_coupons.rb +11 -0
  89. data/db/migrate/20170224112113_add_state_to_shopper_orders.rb +5 -0
  90. data/db/migrate/20170224174654_create_shopper_credit_cards.rb +15 -0
  91. data/lib/shopper.rb +18 -0
  92. data/lib/shopper/checkout_wizard.rb +43 -0
  93. data/lib/shopper/configuration.rb +22 -0
  94. data/lib/shopper/current_order.rb +47 -0
  95. data/lib/shopper/engine.rb +21 -0
  96. data/lib/shopper/model_methods.rb +35 -0
  97. data/lib/shopper/version.rb +3 -0
  98. data/lib/tasks/shopper_tasks.rake +4 -0
  99. data/spec/commands/add_product_spec.rb +39 -0
  100. data/spec/controllers/cart_controller_spec.rb +34 -0
  101. data/spec/controllers/order_item_controller_spec.rb +18 -0
  102. data/spec/dummy/Rakefile +6 -0
  103. data/spec/dummy/app/assets/config/manifest.js +5 -0
  104. data/spec/dummy/app/assets/images/fallback/product_default.png +0 -0
  105. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  106. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  107. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  108. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  109. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  110. data/spec/dummy/app/controllers/application_controller.rb +20 -0
  111. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  112. data/spec/dummy/app/jobs/application_job.rb +2 -0
  113. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  114. data/spec/dummy/app/models/ability.rb +7 -0
  115. data/spec/dummy/app/models/application_record.rb +3 -0
  116. data/spec/dummy/app/models/customer.rb +3 -0
  117. data/spec/dummy/app/models/product.rb +21 -0
  118. data/spec/dummy/app/views/layouts/application.html.haml +17 -0
  119. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  120. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  121. data/spec/dummy/app/views/root/index.html +1 -0
  122. data/spec/dummy/bin/bundle +3 -0
  123. data/spec/dummy/bin/rails +4 -0
  124. data/spec/dummy/bin/rake +4 -0
  125. data/spec/dummy/bin/setup +34 -0
  126. data/spec/dummy/bin/update +29 -0
  127. data/spec/dummy/config.ru +5 -0
  128. data/spec/dummy/config/application.rb +21 -0
  129. data/spec/dummy/config/boot.rb +5 -0
  130. data/spec/dummy/config/cable.yml +9 -0
  131. data/spec/dummy/config/database.ci.yml +7 -0
  132. data/spec/dummy/config/database.yml +22 -0
  133. data/spec/dummy/config/environment.rb +5 -0
  134. data/spec/dummy/config/environments/development.rb +54 -0
  135. data/spec/dummy/config/environments/production.rb +86 -0
  136. data/spec/dummy/config/environments/test.rb +42 -0
  137. data/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  138. data/spec/dummy/config/initializers/assets.rb +11 -0
  139. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  140. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  141. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  142. data/spec/dummy/config/initializers/inflections.rb +16 -0
  143. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  144. data/spec/dummy/config/initializers/new_framework_defaults.rb +24 -0
  145. data/spec/dummy/config/initializers/session_store.rb +3 -0
  146. data/spec/dummy/config/initializers/simple_form.rb +169 -0
  147. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  148. data/spec/dummy/config/locales/en.yml +23 -0
  149. data/spec/dummy/config/locales/simple_form.en.yml +31 -0
  150. data/spec/dummy/config/puma.rb +47 -0
  151. data/spec/dummy/config/routes.rb +4 -0
  152. data/spec/dummy/config/secrets.yml +22 -0
  153. data/spec/dummy/config/spring.rb +6 -0
  154. data/spec/dummy/db/migrate/20170405091757_create_products.rb +10 -0
  155. data/spec/dummy/db/migrate/20170405160406_create_customers.rb +11 -0
  156. data/spec/dummy/db/schema.rb +33 -0
  157. data/spec/dummy/lib/templates/erb/scaffold/_form.html.erb +13 -0
  158. data/spec/dummy/log/development.log +378 -0
  159. data/spec/dummy/public/404.html +67 -0
  160. data/spec/dummy/public/422.html +67 -0
  161. data/spec/dummy/public/500.html +66 -0
  162. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  163. data/spec/dummy/public/apple-touch-icon.png +0 -0
  164. data/spec/dummy/public/favicon.ico +0 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-5/-5Q4Ub_11IMVDpGB1eI8cCVFFsUlJ8XHRzneSdfWwvA.cache +0 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-u/-uuoXn7BP51SPd9jCpfonUaE46sb8x-w0b34wwdHt9E.cache +1 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0T/0T0Tt9dfVU3GpS08jbSmEA-3V9YEKDfIoSeIPwG-V5M.cache +2 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0X/0XswbOgGjXmH1fo5xq93jNgHe48bthciRdbD6tnWCvo.cache +3 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1c/1ctUiWcG10n8KMVoiqAlIapKLbW5MDV1opGFwHsx34o.cache +1 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2Z/2ZWFIlXKLDgIwGlnU7FU5aLf_Y1-m4KLYDXG0GdOvcc.cache +0 -0
  171. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2c/2cgrQmg7ldfRivjXyyPNEH2O9Kps6UbeJH-Y9H1GmAs.cache +1 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2l/2ltamKE3DUsifk0Gd4gmMxsgm5yKUZiNdhnSVHq_rVs.cache +0 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/31/312SvTp1rlNjttuCrjMR-sOiWZ8_7XmiagVfUeNAWfU.cache +1 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4G/4GIZLDG2a1lnDZF2QESc0VLN9oHXztGnjE-LhJAssbk.cache +1 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4R/4RE2lQ9Q_Khn7V4lGNDAW4xVGALXbiqnfOx-mXE831Q.cache +2 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6U/6UKVmfPR7t8yUajbBceuWKaXogETyIV6Tbp0Mo8sR8A.cache +2 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6Z/6Zs5ocm3aNgIQhqxQonxR7DfNzImkwFVBFsFSoXJ9nM.cache +1 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6b/6bbfebueG2G5YjKNjtH5pwuc1LEJjKmfpIL4IREIArw.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7n/7ncqaz_mmyCQD_AQHpvMs2GXmVS9ETbTrWhH7RWvuYg.cache +2 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7v/7vrAes6c_ihwe8jMx1yxyRDgWgAmDYBRMlsqqjlOA24.cache +3 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8t/8tcTiIy9nbujTSsrbowd_m1ZDK-XWxe5KBzu4iWULdg.cache +1 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9H/9H8beH0fozTusUWWhP9agRzmmCJigE63QS3yN6USIVY.cache +1 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BX/BXeClZZ7pe07EVX5rjMY_bO_Ec1T114oejXtrS7DYLY.cache +1 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DN/DN6DwzYk58CqQliQANOOcf4LZ9NfwuROLMpG_aIn1iA.cache +0 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EF/EFDkZUV83NReWDmYJPAbH4QssV1WH7dhLAafE0jMdLE.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F4/F4HRhWWKLcUlE_9fUDcNFndpclhItP7pzduMZ0u0zEg.cache +0 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F9/F95lTcrn4OEdV2-8CpWRA7Vo_g8Cyy46-JWOiLmNuZ8.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/G5/G52PYwE_K5U0GKtgEfZMMMxYvZn20YV8JnDsE8miA8U.cache +0 -0
  189. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GY/GYoI8lC94xLeXahTKQmXCYQmEcBTeJVY3rw4Ow29mAk.cache +1 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HI/HIQD3918XDGcbRA7DQnrUx7Ij6_KmqX7A6-Xg8cTgvs.cache +1 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IG/IGBxZd8bfUKXZ0qApnsHIDYrpmlGh4_stvNLwNClo-Q.cache +0 -0
  192. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JZ/JZvskjPGda8b9BWf--ABB7K8u8eZWLEY_IGmIwN-lsM.cache +0 -0
  193. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LZ/LZtqwTyBeV780reoWMqU06rIHTuSggj_moLE9aZl4zc.cache +1 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHuhgGwsUMEUsXy-NMZLnq_3FmpwQ6Hr-x9Pj2Lg6jQ.cache +1 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MW/MWqLf-tbtXiYTRmuVMVRXCVjAEX6LaEZGlVxS74nM-E.cache +0 -0
  196. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OK/OKLY4QbXl_c1lHz1gm6tyYrpRIFU-014RSUQpb9fwyw.cache +1 -0
  197. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ok/OkpxMmj1ovAbbyXiexCJnj0apz54kz8iqahL4c1aXDo.cache +1 -0
  198. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QI/QI3sr401dtpp_Wc_mTpdvAI5bpraLUIIf8Mv2feBvEw.cache +1 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R0/R0TSIcvnfF3-QoBBBWQ32DiJLIR8D676f-SkUhprDK8.cache +0 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RU/RUX4wpSRbADt7-aSjvb97ICl-fCJjPZxe1MNF6pcGOo.cache +1 -0
  201. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/To/To0QY39VWI3mZb6XXZAgOQCJcEj0tv0BJmIiu2oNdbg.cache +1 -0
  202. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W9/W9krhTTy1IFXT5Q_rF4CifVRj4AVwKeE_F6pln8Rcmg.cache +1 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ws/Wsgy75qmOuCK1Vp25X17Py-pML-11GG3F3e-OYOsfGk.cache +4 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yb/YbBCKCjwVLMTjLflIx-p2w001jnZ2kVbDwnbDTh20ps.cache +1 -0
  205. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zi/ZiHXd8AlVOwGmpnKoVXVS3EKEBdo1Ac-Zcp4eiCPnRQ.cache +2 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_C/_CHENopb4h3hRBPr0mRRTtNBvd64WDGI5v5hMC7PYgs.cache +0 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a9/a94GSaPUyrAw0VlSAmwgl4iwDPatPtP7tsesOf07Fuo.cache +1 -0
  208. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bk/bkyxSPKtV8sC84dH7iq0OkFMQzLCJ7DjdUoC6wYHaAA.cache +1 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cE/cEQDNdSRl1tLTsWUUnyDWWXECh-MtIchaMG7PA2kuM8.cache +0 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ch/chgbSC87FkXFMbNWMZJAtU_euvqnCKdUcV4CAjuRZXg.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dG/dGcYyTZ1x7nZldIv9CU9P6FILL3BZ_pHeJUEBXOFDtk.cache +1 -0
  212. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eH/eHNL12KXLctBrvH2X9flxNGA4GRJGoyLwqRrxOWLHss.cache +1 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fm/fmL1Nfucs6nwuozNi61KJ6nEHU8mb3F2SieWSl1sgeY.cache +1 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gg/ggoM7JVi5PFoOTHQGrMmhFwnOSjd_RsNYmV9SpLGNPY.cache +2 -0
  215. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iH/iHBHhxxOEBtpSeS0MFX4NL9vEfZMaQ72PxSXtbLy4pQ.cache +3 -0
  216. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kQ/kQZ9KBvn5nS686f0v-15x3q-XPK9Puu03Od4FRDV_DY.cache +1 -0
  217. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ln/ln7-McEMuq67tYE86JS_5anWVQE-o7kjVzTfmJ-pfYU.cache +0 -0
  218. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n9/n9fyL8DlM6Ze117bMHweLE2x-4YM5aAW8cT3XYw-de8.cache +0 -0
  219. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nM/nMZGQCxEPqJUI3praZMAm-YNu7TdqkdDhx3WG6J1KLY.cache +1 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
  221. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
  222. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/op/opCcAQpH-enBbSXpi0u1AEuA_O2KBuVSFHXlgdw8dNg.cache +1 -0
  223. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qC/qCvelfVAvK45T3Goi7dqiicmsAKQoF9MkLAZtA4LVC0.cache +0 -0
  224. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qI/qIdIIo1-efJi3gqwWbkhmcDlc4qTwuolMYutSBGYrxw.cache +2 -0
  225. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache +2 -0
  226. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qx/qxYROkyCYJzti8DI00LfLhgV7FZgHCmaUnCjB3ayfWM.cache +1 -0
  227. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wd/wdwXC49DcebjF5LPaEs1vqDXCWlq-32hHXfiKvjifno.cache +1 -0
  228. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wg/wgn7xxwAmTkEhfWm8ujbjnId_c4MherEJuyXwkipOIg.cache +1 -0
  229. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +2 -0
  230. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xg/xgrrLe9BN5muIDu9b9ADzAJHJtZFmr-PlDUBSkdJTDM.cache +3 -0
  231. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z7/z79WysQah2YzrP7757RmZSO9M_8yzxDJPheGOhMjyXU.cache +1 -0
  232. data/spec/factories/addresses.rb +14 -0
  233. data/spec/factories/countries.rb +9 -0
  234. data/spec/factories/coupons.rb +10 -0
  235. data/spec/factories/credit_cards.rb +9 -0
  236. data/spec/factories/customer.rb +12 -0
  237. data/spec/factories/deliveries.rb +8 -0
  238. data/spec/factories/order_items.rb +7 -0
  239. data/spec/factories/orders.rb +42 -0
  240. data/spec/factories/product.rb +6 -0
  241. data/spec/features/cart_spec.rb +66 -0
  242. data/spec/features/checkout_spec.rb +53 -0
  243. data/spec/forms/credit_card_form_spec.rb +56 -0
  244. data/spec/models/customer_spec.rb +9 -0
  245. data/spec/models/product_spec.rb +7 -0
  246. data/spec/models/shopper/address_spec.rb +14 -0
  247. data/spec/models/shopper/billing_address_spec.rb +7 -0
  248. data/spec/models/shopper/country_spec.rb +10 -0
  249. data/spec/models/shopper/coupon_spec.rb +9 -0
  250. data/spec/models/shopper/credit_card_spec.rb +7 -0
  251. data/spec/models/shopper/delivery_spec.rb +28 -0
  252. data/spec/models/shopper/order_item_spec.rb +18 -0
  253. data/spec/models/shopper/order_spec.rb +105 -0
  254. data/spec/models/shopper/shipping_address_spec.rb +7 -0
  255. data/spec/rails_helper.rb +52 -0
  256. data/spec/services/checkout_manager_spec.rb +106 -0
  257. data/spec/spec_helper.rb +99 -0
  258. data/spec/support/capybara.rb +23 -0
  259. data/spec/support/database_cleaner.rb +44 -0
  260. data/spec/support/factory_girl.rb +3 -0
  261. data/spec/support/macroses/shared_macroses.rb +32 -0
  262. data/spec/support/macroses/stub_current_order.rb +18 -0
  263. data/spec/support/rails-controller-testing.rb +7 -0
  264. data/spec/support/shared_examples/addressable.rb +22 -0
  265. data/spec/support/shoulda_matchers.rb +4 -0
  266. data/spec/support/show_me_the_cookies.rb +3 -0
  267. metadata +855 -0
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters format: [:json]
9
+ end
10
+
11
+ # To enable root element in JSON for ActiveRecord objects.
12
+ # ActiveSupport.on_load(:active_record) do
13
+ # self.include_root_in_json = true
14
+ # end
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,31 @@
1
+ en:
2
+ simple_form:
3
+ "yes": 'Yes'
4
+ "no": 'No'
5
+ required:
6
+ text: 'required'
7
+ mark: '*'
8
+ # You can uncomment the line below if you need to overwrite the whole required html.
9
+ # When using html, text and mark won't be used.
10
+ # html: '<abbr title="required">*</abbr>'
11
+ error_notification:
12
+ default_message: "Please review the problems below:"
13
+ # Examples
14
+ # labels:
15
+ # defaults:
16
+ # password: 'Password'
17
+ # user:
18
+ # new:
19
+ # email: 'E-mail to sign in.'
20
+ # edit:
21
+ # email: 'E-mail.'
22
+ # hints:
23
+ # defaults:
24
+ # username: 'User name to sign in.'
25
+ # password: 'No special characters, please.'
26
+ # include_blanks:
27
+ # defaults:
28
+ # age: 'Rather not say'
29
+ # prompts:
30
+ # defaults:
31
+ # age: 'Select your age'
@@ -0,0 +1,47 @@
1
+ # Puma can serve each request in a thread from an internal thread pool.
2
+ # The `threads` method setting takes two numbers a minimum and maximum.
3
+ # Any libraries that use thread pools should be configured to match
4
+ # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
+ # and maximum, this matches the default thread size of Active Record.
6
+ #
7
+ threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
8
+ threads threads_count, threads_count
9
+
10
+ # Specifies the `port` that Puma will listen on to receive requests, default is 3000.
11
+ #
12
+ port ENV.fetch("PORT") { 3000 }
13
+
14
+ # Specifies the `environment` that Puma will run in.
15
+ #
16
+ environment ENV.fetch("RAILS_ENV") { "development" }
17
+
18
+ # Specifies the number of `workers` to boot in clustered mode.
19
+ # Workers are forked webserver processes. If using threads and workers together
20
+ # the concurrency of the application would be max `threads` * `workers`.
21
+ # Workers do not work on JRuby or Windows (both of which do not support
22
+ # processes).
23
+ #
24
+ # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
25
+
26
+ # Use the `preload_app!` method when specifying a `workers` number.
27
+ # This directive tells Puma to first boot the application and load code
28
+ # before forking the application. This takes advantage of Copy On Write
29
+ # process behavior so workers use less memory. If you use this option
30
+ # you need to make sure to reconnect any threads in the `on_worker_boot`
31
+ # block.
32
+ #
33
+ # preload_app!
34
+
35
+ # The code in the `on_worker_boot` will be called if you are using
36
+ # clustered mode by specifying a number of `workers`. After each worker
37
+ # process is booted this block will be run, if you are using `preload_app!`
38
+ # option you will want to use this block to reconnect to any threads
39
+ # or connections that may have been created at application boot, Ruby
40
+ # cannot share connections between processes.
41
+ #
42
+ # on_worker_boot do
43
+ # ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
44
+ # end
45
+
46
+ # Allow puma to be restarted by `rails restart` command.
47
+ plugin :tmp_restart
@@ -0,0 +1,4 @@
1
+ Rails.application.routes.draw do
2
+ root to: 'application#root'
3
+ mount Shopper::Engine => '/shopper', as: "shopper"
4
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rails secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: 9acc1ee0337b3428f0f844ef7f7c96b5da7c628542e69307e3301af5ba1e84926ec27584c5cd65492f7909deb0ab6bd52cb53546db5c89a512c2ab11b26c9789
15
+
16
+ test:
17
+ secret_key_base: 0c8e9dbf4a55cabbb4b7cbfa9a82462b0e40a8b3ba67b9773945a203cb89c39df5aac90b76116f45a9f90bc0987f9e8e1389edef076a0c0332f3565837bc313a
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,6 @@
1
+ %w(
2
+ .ruby-version
3
+ .rbenv-vars
4
+ tmp/restart.txt
5
+ tmp/caching-dev.txt
6
+ ).each { |path| Spring.watch(path) }
@@ -0,0 +1,10 @@
1
+ class CreateProducts < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :products do |t|
4
+ t.string :title
5
+ t.float :price
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ class CreateCustomers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :customers do |t|
4
+ t.string :email
5
+ t.string :first_name
6
+ t.string :last_name
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,33 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20170405160406) do
14
+
15
+ # These are extensions that must be enabled in order to support this database
16
+ enable_extension "plpgsql"
17
+
18
+ create_table "customers", force: :cascade do |t|
19
+ t.string "email"
20
+ t.string "first_name"
21
+ t.string "last_name"
22
+ t.datetime "created_at", null: false
23
+ t.datetime "updated_at", null: false
24
+ end
25
+
26
+ create_table "products", force: :cascade do |t|
27
+ t.string "title"
28
+ t.float "price"
29
+ t.datetime "created_at", null: false
30
+ t.datetime "updated_at", null: false
31
+ end
32
+
33
+ end
@@ -0,0 +1,13 @@
1
+ <%%= simple_form_for(@<%= singular_table_name %>) do |f| %>
2
+ <%%= f.error_notification %>
3
+
4
+ <div class="form-inputs">
5
+ <%- attributes.each do |attribute| -%>
6
+ <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
7
+ <%- end -%>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%%= f.button :submit %>
12
+ </div>
13
+ <%% end %>
@@ -0,0 +1,378 @@
1
+ Started GET "/" for 127.0.0.1 at 2019-02-14 21:34:12 +0200
2
+
3
+ PG::ConnectionBad (FATAL: Peer authentication failed for user "bookstore_engine"
4
+ ):
5
+
6
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `initialize'
7
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `new'
8
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `connect'
9
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:217:in `initialize'
10
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `new'
11
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
12
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:729:in `new_connection'
13
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:773:in `checkout_new_connection'
14
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:752:in `try_to_checkout_new_connection'
15
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:713:in `acquire_connection'
16
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:490:in `checkout'
17
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:364:in `connection'
18
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:883:in `retrieve_connection'
19
+ activerecord (5.0.2) lib/active_record/connection_handling.rb:128:in `retrieve_connection'
20
+ activerecord (5.0.2) lib/active_record/connection_handling.rb:91:in `connection'
21
+ activerecord (5.0.2) lib/active_record/migration.rb:559:in `connection'
22
+ activerecord (5.0.2) lib/active_record/migration.rb:546:in `call'
23
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
24
+ activesupport (5.0.2) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
25
+ activesupport (5.0.2) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
26
+ activesupport (5.0.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
27
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
28
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
29
+ actionpack (5.0.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
30
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
31
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
32
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
33
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
34
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
35
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
36
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
37
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
38
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
39
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
40
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
41
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
42
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
43
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
44
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
45
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
46
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
47
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
48
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
49
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
50
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
51
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
52
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
53
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (12.7ms)
54
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
55
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.5ms)
56
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
57
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.5ms)
58
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (59.3ms)
59
+ Started GET "/" for 127.0.0.1 at 2019-02-14 21:43:13 +0200
60
+
61
+ PG::ConnectionBad (FATAL: Peer authentication failed for user "bookstore_engine"
62
+ ):
63
+
64
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `initialize'
65
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `new'
66
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:671:in `connect'
67
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:217:in `initialize'
68
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `new'
69
+ activerecord (5.0.2) lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
70
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:729:in `new_connection'
71
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:773:in `checkout_new_connection'
72
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:752:in `try_to_checkout_new_connection'
73
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:713:in `acquire_connection'
74
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:490:in `checkout'
75
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:364:in `connection'
76
+ activerecord (5.0.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:883:in `retrieve_connection'
77
+ activerecord (5.0.2) lib/active_record/connection_handling.rb:128:in `retrieve_connection'
78
+ activerecord (5.0.2) lib/active_record/connection_handling.rb:91:in `connection'
79
+ activerecord (5.0.2) lib/active_record/migration.rb:559:in `connection'
80
+ activerecord (5.0.2) lib/active_record/migration.rb:546:in `call'
81
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
82
+ activesupport (5.0.2) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
83
+ activesupport (5.0.2) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
84
+ activesupport (5.0.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
85
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
86
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
87
+ actionpack (5.0.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
88
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
89
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
90
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
91
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
92
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
93
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
94
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
95
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
96
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
97
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
98
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
99
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
100
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
101
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
102
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
103
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
104
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
105
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
106
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
107
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
108
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
109
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
110
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
111
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (4.0ms)
112
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
113
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.2ms)
114
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
115
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.1ms)
116
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (40.5ms)
117
+ Started GET "/" for 127.0.0.1 at 2019-02-14 21:51:55 +0200
118
+
119
+ ActiveRecord::PendingMigrationError (
120
+
121
+ Migrations are pending. To resolve this issue, run:
122
+
123
+ bin/rails db:migrate RAILS_ENV=development
124
+
125
+ ):
126
+
127
+ activerecord (5.0.2) lib/active_record/migration.rb:573:in `check_pending!'
128
+ activerecord (5.0.2) lib/active_record/migration.rb:549:in `call'
129
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
130
+ activesupport (5.0.2) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
131
+ activesupport (5.0.2) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
132
+ activesupport (5.0.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
133
+ actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
134
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
135
+ actionpack (5.0.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
136
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
137
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
138
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
139
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
140
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
141
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
142
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
143
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
144
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
145
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
146
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
147
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
148
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
149
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
150
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
151
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
152
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
153
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
154
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
155
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
156
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
157
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
158
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
159
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (3.1ms)
160
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
161
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.8ms)
162
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
163
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
164
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (33.3ms)
165
+  (11.0ms) CREATE TABLE "schema_migrations" ("version" character varying PRIMARY KEY)
166
+  (9.3ms) CREATE TABLE "ar_internal_metadata" ("key" character varying PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
167
+  (0.5ms) SELECT pg_try_advisory_lock(6632145881428525080);
168
+ ActiveRecord::SchemaMigration Load (0.8ms) SELECT "schema_migrations".* FROM "schema_migrations"
169
+ Migrating to CreateProducts (20170405091757)
170
+  (0.3ms) BEGIN
171
+  (9.5ms) CREATE TABLE "products" ("id" serial primary key, "title" character varying, "price" float, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
172
+ SQL (1.0ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170405091757"]]
173
+  (1.9ms) COMMIT
174
+ Migrating to CreateCustomers (20170405160406)
175
+  (0.3ms) BEGIN
176
+  (9.1ms) CREATE TABLE "customers" ("id" serial primary key, "email" character varying, "first_name" character varying, "last_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
177
+ SQL (0.8ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170405160406"]]
178
+  (2.3ms) COMMIT
179
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", :environment], ["LIMIT", 1]]
180
+  (0.2ms) BEGIN
181
+ SQL (0.5ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", 2019-02-14 19:52:09 UTC], ["updated_at", 2019-02-14 19:52:09 UTC]]
182
+  (1.7ms) COMMIT
183
+  (0.4ms) SELECT pg_advisory_unlock(6632145881428525080)
184
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
185
+ Started GET "/" for 127.0.0.1 at 2019-02-14 21:52:26 +0200
186
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
187
+ Processing by ApplicationController#root as HTML
188
+ Rendering root/index.html within layouts/application
189
+ Rendered root/index.html within layouts/application (2.1ms)
190
+ Completed 200 OK in 591ms (Views: 590.6ms | ActiveRecord: 0.0ms)
191
+
192
+
193
+ Started GET "/shopper" for 127.0.0.1 at 2019-02-14 21:52:37 +0200
194
+
195
+ ActionController::RoutingError (No route matches [GET] "/shopper"):
196
+
197
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
198
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
199
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
200
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
201
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
202
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
203
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
204
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
205
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
206
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
207
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
208
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
209
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
210
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
211
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
212
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
213
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
214
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
215
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
216
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
217
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
218
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout
219
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
220
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.5ms)
221
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [2 times] (6.8ms)
222
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [11 times] (7.2ms)
223
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (14.0ms)
224
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
225
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.6ms)
226
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (67.2ms)
227
+ Started GET "/shopper" for 127.0.0.1 at 2019-02-14 21:53:56 +0200
228
+
229
+ ActionController::RoutingError (No route matches [GET] "/shopper"):
230
+
231
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
232
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
233
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
234
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
235
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
236
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
237
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
238
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
239
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
240
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
241
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
242
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
243
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
244
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
245
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
246
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
247
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
248
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
249
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
250
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
251
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
252
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout
253
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
254
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.8ms)
255
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [2 times] (1.8ms)
256
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [11 times] (5.8ms)
257
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (8.2ms)
258
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
259
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.6ms)
260
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (57.3ms)
261
+ Started GET "/" for 127.0.0.1 at 2019-02-14 22:19:30 +0200
262
+ ActiveRecord::SchemaMigration Load (1.0ms) SELECT "schema_migrations".* FROM "schema_migrations"
263
+ Processing by ApplicationController#root as HTML
264
+ Rendering root/index.html within layouts/application
265
+ Rendered root/index.html within layouts/application (1.5ms)
266
+ Completed 200 OK in 289ms (Views: 289.1ms | ActiveRecord: 0.0ms)
267
+
268
+
269
+ Started GET "/shpper/checkout" for 127.0.0.1 at 2019-02-14 22:19:52 +0200
270
+
271
+ ActionController::RoutingError (No route matches [GET] "/shpper/checkout"):
272
+
273
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
274
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
275
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
276
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
277
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
278
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
279
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
280
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
281
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
282
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
283
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
284
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
285
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
286
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
287
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
288
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
289
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
290
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
291
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
292
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
293
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
294
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout
295
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
296
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.8ms)
297
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [2 times] (3.1ms)
298
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [11 times] (32.3ms)
299
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (12.7ms)
300
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
301
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.9ms)
302
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (87.1ms)
303
+ Started GET "/shopper/checkout" for 127.0.0.1 at 2019-02-14 22:20:00 +0200
304
+
305
+ ActionController::RoutingError (No route matches [GET] "/shopper/checkout"):
306
+
307
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
308
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
309
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
310
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
311
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
312
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
313
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
314
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
315
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
316
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
317
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
318
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
319
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
320
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
321
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
322
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
323
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
324
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
325
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
326
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
327
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
328
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout
329
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
330
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.8ms)
331
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [2 times] (1.9ms)
332
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [11 times] (4.5ms)
333
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (2.1ms)
334
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
335
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (2.2ms)
336
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (51.2ms)
337
+ Started GET "/" for 127.0.0.1 at 2019-02-15 00:37:34 +0200
338
+ ActiveRecord::SchemaMigration Load (0.8ms) SELECT "schema_migrations".* FROM "schema_migrations"
339
+ Processing by ApplicationController#root as HTML
340
+ Rendering root/index.html within layouts/application
341
+ Rendered root/index.html within layouts/application (2.2ms)
342
+ Completed 200 OK in 243ms (Views: 242.8ms | ActiveRecord: 0.0ms)
343
+
344
+
345
+ Started GET "/shopper" for 127.0.0.1 at 2019-02-15 00:37:41 +0200
346
+
347
+ ActionController::RoutingError (No route matches [GET] "/shopper"):
348
+
349
+ actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:53:in `call'
350
+ actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
351
+ railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
352
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
353
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
354
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
355
+ activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
356
+ railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
357
+ sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
358
+ actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
359
+ rack (2.0.1) lib/rack/method_override.rb:22:in `call'
360
+ rack (2.0.1) lib/rack/runtime.rb:22:in `call'
361
+ activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
362
+ actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
363
+ actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
364
+ rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
365
+ railties (5.0.2) lib/rails/engine.rb:522:in `call'
366
+ rack (2.0.1) lib/rack/handler/webrick.rb:86:in `service'
367
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in `service'
368
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:in `run'
369
+ /home/stanislove/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in `block in start_thread'
370
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout
371
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
372
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.9ms)
373
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [2 times] (2.1ms)
374
+ Rendered collection of /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_route.html.erb [11 times] (5.5ms)
375
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/routes/_table.html.erb (11.0ms)
376
+ Rendering /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
377
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.4ms)
378
+ Rendered /home/stanislove/.rvm/gems/ruby-2.4.0@rails-bookstore/gems/actionpack-5.0.2/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (57.7ms)