bouquet 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -4
  3. data/LICENSE.txt +1 -1
  4. data/README.md +8 -25
  5. data/bouquet.gemspec +3 -2
  6. data/core/.gitignore +0 -1
  7. data/core/Gemfile +3 -4
  8. data/core/Gemfile.lock +205 -0
  9. data/core/MIT-LICENSE +1 -1
  10. data/core/README.md +3 -0
  11. data/core/Rakefile +2 -2
  12. data/core/app/controllers/bouquet/core/application_controller.rb +6 -0
  13. data/core/app/jobs/bouquet/core/application_job.rb +6 -0
  14. data/core/app/models/application_record.rb +7 -0
  15. data/core/app/models/bouquet/arrival.rb +7 -0
  16. data/core/app/models/bouquet/assembly.rb +8 -0
  17. data/core/app/models/bouquet/customer.rb +6 -0
  18. data/core/app/models/bouquet/delivery.rb +7 -0
  19. data/core/app/models/bouquet/location.rb +10 -0
  20. data/core/app/models/bouquet/material.rb +7 -0
  21. data/core/app/models/bouquet/product.rb +6 -1
  22. data/core/app/models/bouquet/purchase_order.rb +23 -0
  23. data/core/app/models/bouquet/retrieval.rb +7 -0
  24. data/core/app/models/bouquet/sales_order.rb +16 -0
  25. data/core/app/models/bouquet/shipment.rb +44 -0
  26. data/core/app/models/bouquet/stock.rb +7 -0
  27. data/core/app/models/bouquet/storage.rb +30 -0
  28. data/core/app/models/bouquet/supplier.rb +6 -0
  29. data/core/{bouquet_core.gemspec → bouquet-core.gemspec} +5 -5
  30. data/core/db/migrate/20160102155121_create_bouquet_products.rb +10 -0
  31. data/core/db/migrate/20160108154058_create_bouquet_materials.rb +12 -0
  32. data/core/db/migrate/20160108154107_create_bouquet_assemblies.rb +12 -0
  33. data/core/db/migrate/20160108154116_create_bouquet_customers.rb +10 -0
  34. data/core/db/migrate/20160108154144_create_bouquet_suppliers.rb +10 -0
  35. data/core/db/migrate/20160108154217_create_bouquet_locations.rb +10 -0
  36. data/core/db/migrate/20160108155617_create_bouquet_shipments.rb +12 -0
  37. data/core/db/migrate/20160108155648_create_bouquet_deliveries.rb +13 -0
  38. data/core/db/migrate/20160108155711_create_bouquet_purchase_orders.rb +14 -0
  39. data/core/db/migrate/20160108155732_create_bouquet_arrivals.rb +12 -0
  40. data/core/db/migrate/20160108155753_create_bouquet_stocks.rb +13 -0
  41. data/core/db/migrate/20160108160523_create_bouquet_sales_orders.rb +14 -0
  42. data/core/db/migrate/20160111072002_create_bouquet_storages.rb +12 -0
  43. data/core/db/migrate/20160111072201_create_bouquet_retrievals.rb +13 -0
  44. data/core/lib/bouquet/core/engine.rb +1 -2
  45. data/core/lib/bouquet/core/version.rb +1 -1
  46. data/core/lib/bouquet/core.rb +1 -0
  47. data/core/lib/tasks/{bouquet_core_tasks.rake → bouquet/core_tasks.rake} +0 -0
  48. data/core/spec/dummy/README.md +4 -0
  49. data/core/spec/dummy/Rakefile +6 -0
  50. data/core/spec/dummy/app/assets/config/manifest.js +3 -0
  51. data/core/spec/dummy/app/assets/javascripts/application.js +13 -0
  52. data/{gate/app/assets/stylesheets/bouquet_gate → core/spec/dummy/app/assets/stylesheets}/application.css +3 -3
  53. data/core/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  54. data/core/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  55. data/core/spec/dummy/app/controllers/application_controller.rb +2 -0
  56. data/core/{app/assets/images/bouquet_core → spec/dummy/app/controllers/concerns}/.keep +0 -0
  57. data/core/spec/dummy/app/jobs/application_job.rb +2 -0
  58. data/core/spec/dummy/app/mailers/application_mailer.rb +4 -0
  59. data/core/spec/dummy/app/models/application_record.rb +3 -0
  60. data/{gate/app/assets/images/bouquet_gate → core/spec/dummy/app/models/concerns}/.keep +0 -0
  61. data/core/spec/dummy/bin/bundle +3 -0
  62. data/core/spec/dummy/bin/rails +4 -0
  63. data/core/spec/dummy/bin/rake +4 -0
  64. data/core/spec/dummy/bin/setup +34 -0
  65. data/core/spec/dummy/bin/update +29 -0
  66. data/core/spec/dummy/config/application.rb +26 -0
  67. data/core/spec/dummy/config/boot.rb +5 -0
  68. data/core/spec/dummy/config/database.yml +25 -0
  69. data/core/spec/dummy/config/environment.rb +5 -0
  70. data/core/spec/dummy/config/environments/development.rb +43 -0
  71. data/core/spec/dummy/config/environments/production.rb +70 -0
  72. data/core/spec/dummy/config/environments/test.rb +44 -0
  73. data/core/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  74. data/core/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  75. data/core/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  76. data/core/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  77. data/core/spec/dummy/config/initializers/cors.rb +16 -0
  78. data/core/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  79. data/core/spec/dummy/config/initializers/inflections.rb +16 -0
  80. data/core/spec/dummy/config/initializers/mime_types.rb +4 -0
  81. data/core/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  82. data/core/spec/dummy/config/locales/en.yml +23 -0
  83. data/core/spec/dummy/config/redis/cable.yml +9 -0
  84. data/core/spec/dummy/config/routes.rb +3 -0
  85. data/core/spec/dummy/config/secrets.yml +22 -0
  86. data/core/spec/dummy/config.ru +9 -0
  87. data/core/spec/dummy/db/schema.rb +156 -0
  88. data/core/spec/dummy/db/seeds.rb +36 -0
  89. data/core/spec/dummy/log/.keep +0 -0
  90. data/core/spec/dummy/public/404.html +67 -0
  91. data/core/spec/dummy/public/422.html +67 -0
  92. data/core/spec/dummy/public/500.html +66 -0
  93. data/core/spec/dummy/public/favicon.ico +0 -0
  94. data/core/spec/factories/bouquet_arrivals.rb +9 -0
  95. data/core/spec/factories/bouquet_assemblies.rb +8 -0
  96. data/core/spec/factories/bouquet_customers.rb +7 -0
  97. data/core/spec/factories/bouquet_deliveries.rb +10 -0
  98. data/core/spec/factories/bouquet_locations.rb +6 -0
  99. data/core/spec/factories/bouquet_materials.rb +9 -0
  100. data/core/spec/factories/bouquet_purchase_orders.rb +10 -0
  101. data/core/spec/factories/bouquet_retrievals.rb +10 -0
  102. data/core/spec/factories/bouquet_sales_orders.rb +10 -0
  103. data/core/spec/factories/bouquet_shipments.rb +9 -0
  104. data/core/spec/factories/bouquet_stocks.rb +10 -0
  105. data/core/spec/factories/bouquet_storage_retrievals.rb +10 -0
  106. data/core/spec/factories/bouquet_storages.rb +9 -0
  107. data/core/spec/factories/bouquet_suppliers.rb +6 -0
  108. data/core/spec/jobs/bouquet/shipment_job_spec.rb +7 -0
  109. data/core/spec/models/bouquet/arrival_spec.rb +7 -0
  110. data/core/spec/models/bouquet/assembly_spec.rb +7 -0
  111. data/core/spec/models/bouquet/customer_spec.rb +7 -0
  112. data/core/spec/models/bouquet/delivery_spec.rb +7 -0
  113. data/core/spec/models/bouquet/location_spec.rb +7 -0
  114. data/core/spec/models/bouquet/material_spec.rb +7 -0
  115. data/core/spec/models/bouquet/product_spec.rb +1 -1
  116. data/core/spec/models/bouquet/purchase_order_spec.rb +7 -0
  117. data/core/spec/models/bouquet/retrieval_spec.rb +7 -0
  118. data/core/spec/models/bouquet/sales_order_spec.rb +7 -0
  119. data/core/spec/models/bouquet/shipment_spec.rb +7 -0
  120. data/core/spec/models/bouquet/stock_spec.rb +7 -0
  121. data/core/spec/models/bouquet/storage_retrieval_spec.rb +7 -0
  122. data/core/spec/models/bouquet/storage_spec.rb +7 -0
  123. data/core/spec/models/bouquet/supplier_spec.rb +7 -0
  124. data/core/spec/rails_helper.rb +4 -11
  125. data/core/spec/spec_helper.rb +11 -18
  126. data/gate/.gitignore +0 -1
  127. data/gate/Gemfile +3 -7
  128. data/gate/Gemfile.lock +204 -0
  129. data/gate/MIT-LICENSE +1 -1
  130. data/gate/README.md +29 -0
  131. data/gate/Rakefile +2 -2
  132. data/gate/app/controllers/bouquet/gate/application_controller.rb +1 -1
  133. data/gate/app/controllers/bouquet/gate/materials_controller.rb +55 -0
  134. data/gate/app/controllers/bouquet/gate/products_controller.rb +62 -6
  135. data/gate/app/controllers/bouquet/gate/purchase_orders_controller.rb +56 -0
  136. data/gate/app/controllers/bouquet/gate/sales_orders_controller.rb +57 -0
  137. data/gate/app/controllers/bouquet/gate/storages_controller.rb +22 -0
  138. data/gate/app/jobs/bouquet/gate/application_job.rb +6 -0
  139. data/gate/app/jobs/bouquet/gate/shipment_job.rb +14 -0
  140. data/gate/app/models/application_record.rb +7 -0
  141. data/gate/{bouquet_gate.gemspec → bouquet-gate.gemspec} +5 -6
  142. data/gate/config/routes.rb +6 -4
  143. data/gate/lib/bouquet/gate/engine.rb +2 -6
  144. data/gate/lib/bouquet/gate/version.rb +1 -1
  145. data/gate/lib/bouquet/gate.rb +1 -1
  146. data/gate/lib/tasks/{bouquet_gate_tasks.rake → bouquet/gate_tasks.rake} +0 -0
  147. data/gate/spec/controllers/bouquet/gate/products_controller_spec.rb +13 -4
  148. data/gate/spec/controllers/bouquet/gate/purchase_orders_controller_spec.rb +14 -0
  149. data/gate/spec/controllers/bouquet/gate/sales_orders_controller_spec.rb +14 -0
  150. data/gate/spec/dummy/Rakefile +6 -0
  151. data/gate/spec/dummy/app/assets/config/manifest.js +3 -0
  152. data/gate/spec/dummy/app/assets/javascripts/application.js +13 -0
  153. data/{core/app/assets/stylesheets/bouquet_core → gate/spec/dummy/app/assets/stylesheets}/application.css +3 -3
  154. data/gate/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  155. data/gate/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  156. data/gate/spec/dummy/app/controllers/application_controller.rb +2 -0
  157. data/gate/spec/dummy/app/controllers/concerns/.keep +0 -0
  158. data/gate/spec/dummy/app/jobs/application_job.rb +2 -0
  159. data/gate/spec/dummy/app/mailers/application_mailer.rb +4 -0
  160. data/gate/spec/dummy/app/models/application_record.rb +3 -0
  161. data/gate/spec/dummy/app/models/concerns/.keep +0 -0
  162. data/gate/spec/dummy/bin/bundle +3 -0
  163. data/gate/spec/dummy/bin/rails +4 -0
  164. data/gate/spec/dummy/bin/rake +4 -0
  165. data/gate/spec/dummy/bin/setup +34 -0
  166. data/gate/spec/dummy/bin/update +29 -0
  167. data/gate/spec/dummy/config/application.rb +27 -0
  168. data/gate/spec/dummy/config/boot.rb +5 -0
  169. data/gate/spec/dummy/config/database.yml +25 -0
  170. data/gate/spec/dummy/config/environment.rb +5 -0
  171. data/gate/spec/dummy/config/environments/development.rb +43 -0
  172. data/gate/spec/dummy/config/environments/production.rb +70 -0
  173. data/gate/spec/dummy/config/environments/test.rb +44 -0
  174. data/gate/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  175. data/gate/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  176. data/gate/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  177. data/gate/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  178. data/gate/spec/dummy/config/initializers/cors.rb +16 -0
  179. data/gate/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  180. data/gate/spec/dummy/config/initializers/inflections.rb +16 -0
  181. data/gate/spec/dummy/config/initializers/mime_types.rb +4 -0
  182. data/gate/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  183. data/gate/spec/dummy/config/locales/en.yml +23 -0
  184. data/gate/spec/dummy/config/redis/cable.yml +9 -0
  185. data/gate/spec/dummy/config/routes.rb +3 -0
  186. data/gate/spec/dummy/config/secrets.yml +22 -0
  187. data/gate/spec/dummy/config.ru +9 -0
  188. data/gate/spec/dummy/db/migrate/20160118114717_create_bouquet_products.bouquet.rb +11 -0
  189. data/gate/spec/dummy/db/migrate/20160118114718_create_bouquet_materials.bouquet.rb +13 -0
  190. data/gate/spec/dummy/db/migrate/20160118114719_create_bouquet_assemblies.bouquet.rb +13 -0
  191. data/gate/spec/dummy/db/migrate/20160118114720_create_bouquet_customers.bouquet.rb +11 -0
  192. data/gate/spec/dummy/db/migrate/20160118114721_create_bouquet_suppliers.bouquet.rb +11 -0
  193. data/gate/spec/dummy/db/migrate/20160118114722_create_bouquet_locations.bouquet.rb +11 -0
  194. data/gate/spec/dummy/db/migrate/20160118114723_create_bouquet_shipments.bouquet.rb +13 -0
  195. data/gate/spec/dummy/db/migrate/20160118114724_create_bouquet_deliveries.bouquet.rb +14 -0
  196. data/gate/spec/dummy/db/migrate/20160118114725_create_bouquet_purchase_orders.bouquet.rb +15 -0
  197. data/gate/spec/dummy/db/migrate/20160118114726_create_bouquet_arrivals.bouquet.rb +13 -0
  198. data/gate/spec/dummy/db/migrate/20160118114727_create_bouquet_stocks.bouquet.rb +14 -0
  199. data/gate/spec/dummy/db/migrate/20160118114728_create_bouquet_sales_orders.bouquet.rb +15 -0
  200. data/gate/spec/dummy/db/migrate/20160118114729_create_bouquet_storages.bouquet.rb +13 -0
  201. data/gate/spec/dummy/db/migrate/20160118114730_create_bouquet_retrievals.bouquet.rb +14 -0
  202. data/gate/spec/dummy/db/schema.rb +156 -0
  203. data/gate/spec/dummy/db/seeds.rb +23 -0
  204. data/gate/spec/dummy/log/.keep +0 -0
  205. data/gate/spec/dummy/public/404.html +67 -0
  206. data/gate/spec/dummy/public/422.html +67 -0
  207. data/gate/spec/dummy/public/500.html +66 -0
  208. data/gate/spec/dummy/public/favicon.ico +0 -0
  209. data/gate/spec/factories/bouquet_products.rb +6 -0
  210. data/gate/spec/rails_helper.rb +6 -11
  211. data/gate/spec/spec_helper.rb +11 -18
  212. data/lib/bouquet/version.rb +1 -1
  213. data/lib/bouquet.rb +0 -2
  214. data/store/.gitignore +7 -0
  215. data/store/.rspec +2 -0
  216. data/store/Gemfile +20 -0
  217. data/store/Gemfile.lock +207 -0
  218. data/store/MIT-LICENSE +20 -0
  219. data/store/README.md +3 -0
  220. data/store/Rakefile +26 -0
  221. data/store/app/assets/config/bouquet_store_manifest.js +1 -0
  222. data/store/app/assets/images/bouquet/store/.keep +0 -0
  223. data/store/app/assets/javascripts/bouquet/store/application.js +1 -0
  224. data/store/app/assets/javascripts/bouquet/store/bundle.js +33 -0
  225. data/store/app/assets/stylesheets/bouquet/store/application.css +3 -0
  226. data/store/app/assets/stylesheets/bouquet/store/bundle.css +1 -0
  227. data/store/app/controllers/bouquet/store/application_controller.rb +6 -0
  228. data/store/app/controllers/bouquet/store/main_controller.rb +8 -0
  229. data/store/app/helpers/bouquet/store/application_helper.rb +15 -0
  230. data/store/app/jobs/bouquet/store/application_job.rb +6 -0
  231. data/store/app/models/application_record.rb +7 -0
  232. data/store/app/views/bouquet/store/main/index.html.erb +1 -0
  233. data/store/app/views/layouts/bouquet/store/application.html.erb +15 -0
  234. data/store/bin/rails +12 -0
  235. data/store/bouquet-store.gemspec +22 -0
  236. data/store/config/routes.rb +4 -0
  237. data/store/lib/bouquet/store/engine.rb +15 -0
  238. data/store/lib/bouquet/store/version.rb +5 -0
  239. data/store/lib/bouquet/store.rb +7 -0
  240. data/store/lib/tasks/bouquet/store_tasks.rake +4 -0
  241. data/store/package.json +56 -0
  242. data/store/private/static/.babelrc +20 -0
  243. data/store/private/static/app/actions/AccountActions.js +8 -0
  244. data/store/private/static/app/actions/CounterActions.js +40 -0
  245. data/store/private/static/app/actions/InventoryActions.js +20 -0
  246. data/store/private/static/app/actions/MaterialActions.js +54 -0
  247. data/store/private/static/app/actions/ProductActions.js +54 -0
  248. data/store/private/static/app/components/_globals.scss +7 -0
  249. data/store/private/static/app/components/layouts/_config.scss +8 -0
  250. data/store/private/static/app/components/layouts/contents/_config.scss +4 -0
  251. data/store/private/static/app/components/layouts/contents/about/index.js +15 -0
  252. data/store/private/static/app/components/layouts/contents/about/style.scss +1 -0
  253. data/store/private/static/app/components/layouts/contents/account/index.js +16 -0
  254. data/store/private/static/app/components/layouts/contents/account/layout.js +52 -0
  255. data/store/private/static/app/components/layouts/contents/account/style.scss +7 -0
  256. data/store/private/static/app/components/layouts/contents/content.scss +13 -0
  257. data/store/private/static/app/components/layouts/contents/counter/index.js +16 -0
  258. data/store/private/static/app/components/layouts/contents/counter/layout.js +62 -0
  259. data/store/private/static/app/components/layouts/contents/counter/style.scss +6 -0
  260. data/store/private/static/app/components/layouts/contents/index.js +7 -0
  261. data/store/private/static/app/components/layouts/contents/inventory/index.js +16 -0
  262. data/store/private/static/app/components/layouts/contents/inventory/layout.js +41 -0
  263. data/store/private/static/app/components/layouts/contents/inventory/style.scss +1 -0
  264. data/store/private/static/app/components/layouts/contents/main/index.js +36 -0
  265. data/store/private/static/app/components/layouts/contents/main/style.scss +1 -0
  266. data/store/private/static/app/components/layouts/contents/material/index.js +18 -0
  267. data/store/private/static/app/components/layouts/contents/material/layout.js +60 -0
  268. data/store/private/static/app/components/layouts/contents/material/style.scss +25 -0
  269. data/store/private/static/app/components/layouts/contents/product/index.js +18 -0
  270. data/store/private/static/app/components/layouts/contents/product/layout.js +69 -0
  271. data/store/private/static/app/components/layouts/contents/product/style.scss +30 -0
  272. data/store/private/static/app/components/layouts/header/index.js +27 -0
  273. data/store/private/static/app/components/layouts/header/style.scss +21 -0
  274. data/store/private/static/app/components/layouts/home/index.js +20 -0
  275. data/store/private/static/app/components/layouts/home/style.scss +23 -0
  276. data/store/private/static/app/components/layouts/sidebar/index.js +11 -0
  277. data/store/private/static/app/components/layouts/sidebar/layout.js +63 -0
  278. data/store/private/static/app/components/layouts/sidebar/style.scss +47 -0
  279. data/store/private/static/app/constants/ActionTypes.js +20 -0
  280. data/store/private/static/app/containers/dev_tools/index.js +13 -0
  281. data/store/private/static/app/containers/home/index.js +2 -0
  282. data/store/private/static/app/containers/index.js +2 -0
  283. data/store/private/static/app/containers/root/index.js +26 -0
  284. data/store/private/static/app/index.js +21 -0
  285. data/store/private/static/app/reducers/account.js +19 -0
  286. data/store/private/static/app/reducers/counter.js +14 -0
  287. data/store/private/static/app/reducers/index.js +18 -0
  288. data/store/private/static/app/reducers/inventory.js +17 -0
  289. data/store/private/static/app/reducers/material.js +30 -0
  290. data/store/private/static/app/reducers/product.js +30 -0
  291. data/store/private/static/app/routes/index.js +18 -0
  292. data/store/private/static/app/store/configureStore.development.js +27 -0
  293. data/store/private/static/app/store/configureStore.js +5 -0
  294. data/store/private/static/app/store/configureStore.production.js +11 -0
  295. data/store/private/static/app/toolbox-theme.scss +7 -0
  296. data/store/private/static/index.html +14 -0
  297. data/store/private/static/main.js +30 -0
  298. data/store/private/static/package.json +56 -0
  299. data/store/private/static/server.js +27 -0
  300. data/store/private/static/webpack.config.js +50 -0
  301. data/store/private/static/webpack.production.js +43 -0
  302. data/store/spec/controllers/bouquet/store/main_controller_spec.rb +15 -0
  303. data/store/spec/dummy/Procfile +2 -0
  304. data/store/spec/dummy/Rakefile +6 -0
  305. data/store/spec/dummy/app/assets/config/manifest.js +4 -0
  306. data/store/spec/dummy/app/assets/images/.keep +0 -0
  307. data/store/spec/dummy/app/assets/javascripts/application.js +13 -0
  308. data/store/spec/dummy/app/assets/stylesheets/application.css +15 -0
  309. data/store/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  310. data/store/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  311. data/store/spec/dummy/app/controllers/application_controller.rb +3 -0
  312. data/store/spec/dummy/app/controllers/concerns/.keep +0 -0
  313. data/store/spec/dummy/app/helpers/application_helper.rb +2 -0
  314. data/store/spec/dummy/app/jobs/application_job.rb +2 -0
  315. data/store/spec/dummy/app/mailers/application_mailer.rb +4 -0
  316. data/store/spec/dummy/app/models/application_record.rb +3 -0
  317. data/store/spec/dummy/app/models/concerns/.keep +0 -0
  318. data/store/spec/dummy/app/views/layouts/application.html.erb +14 -0
  319. data/store/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  320. data/store/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  321. data/store/spec/dummy/bin/bundle +3 -0
  322. data/store/spec/dummy/bin/rails +4 -0
  323. data/store/spec/dummy/bin/rake +4 -0
  324. data/store/spec/dummy/bin/setup +34 -0
  325. data/store/spec/dummy/bin/update +29 -0
  326. data/store/spec/dummy/config/application.rb +24 -0
  327. data/store/spec/dummy/config/boot.rb +5 -0
  328. data/store/spec/dummy/config/database.yml +25 -0
  329. data/store/spec/dummy/config/environment.rb +5 -0
  330. data/store/spec/dummy/config/environments/development.rb +56 -0
  331. data/store/spec/dummy/config/environments/production.rb +82 -0
  332. data/store/spec/dummy/config/environments/test.rb +44 -0
  333. data/store/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  334. data/store/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  335. data/store/spec/dummy/config/initializers/assets.rb +11 -0
  336. data/store/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  337. data/store/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  338. data/store/spec/dummy/config/initializers/cookies_serializer.rb +4 -0
  339. data/store/spec/dummy/config/initializers/cors.rb +16 -0
  340. data/store/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  341. data/store/spec/dummy/config/initializers/inflections.rb +16 -0
  342. data/store/spec/dummy/config/initializers/mime_types.rb +4 -0
  343. data/store/spec/dummy/config/initializers/request_forgery_protection.rb +4 -0
  344. data/store/spec/dummy/config/initializers/session_store.rb +3 -0
  345. data/store/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  346. data/store/spec/dummy/config/locales/en.yml +23 -0
  347. data/store/spec/dummy/config/redis/cable.yml +9 -0
  348. data/store/spec/dummy/config/routes.rb +4 -0
  349. data/store/spec/dummy/config/secrets.yml +22 -0
  350. data/store/spec/dummy/config.ru +9 -0
  351. data/store/spec/dummy/db/migrate/20160118140340_create_bouquet_products.bouquet.rb +11 -0
  352. data/store/spec/dummy/db/migrate/20160118140341_create_bouquet_materials.bouquet.rb +13 -0
  353. data/store/spec/dummy/db/migrate/20160118140342_create_bouquet_assemblies.bouquet.rb +13 -0
  354. data/store/spec/dummy/db/migrate/20160118140343_create_bouquet_customers.bouquet.rb +11 -0
  355. data/store/spec/dummy/db/migrate/20160118140344_create_bouquet_suppliers.bouquet.rb +11 -0
  356. data/store/spec/dummy/db/migrate/20160118140345_create_bouquet_locations.bouquet.rb +11 -0
  357. data/store/spec/dummy/db/migrate/20160118140346_create_bouquet_shipments.bouquet.rb +13 -0
  358. data/store/spec/dummy/db/migrate/20160118140347_create_bouquet_deliveries.bouquet.rb +14 -0
  359. data/store/spec/dummy/db/migrate/20160118140348_create_bouquet_purchase_orders.bouquet.rb +15 -0
  360. data/store/spec/dummy/db/migrate/20160118140349_create_bouquet_arrivals.bouquet.rb +13 -0
  361. data/store/spec/dummy/db/migrate/20160118140350_create_bouquet_stocks.bouquet.rb +14 -0
  362. data/store/spec/dummy/db/migrate/20160118140351_create_bouquet_sales_orders.bouquet.rb +15 -0
  363. data/store/spec/dummy/db/migrate/20160118140352_create_bouquet_storages.bouquet.rb +13 -0
  364. data/store/spec/dummy/db/migrate/20160118140353_create_bouquet_retrievals.bouquet.rb +14 -0
  365. data/store/spec/dummy/db/schema.rb +156 -0
  366. data/store/spec/dummy/db/seeds.rb +36 -0
  367. data/store/spec/dummy/lib/assets/.keep +0 -0
  368. data/store/spec/dummy/log/.keep +0 -0
  369. data/store/spec/dummy/public/404.html +67 -0
  370. data/store/spec/dummy/public/422.html +67 -0
  371. data/store/spec/dummy/public/500.html +66 -0
  372. data/store/spec/dummy/public/favicon.ico +0 -0
  373. data/store/spec/rails_helper.rb +50 -0
  374. data/store/spec/spec_helper.rb +85 -0
  375. data/store/spec/views/bouquet/store/main/index.html.erb_spec.rb +5 -0
  376. metadata +363 -24
  377. data/core/README.rdoc +0 -3
  378. data/core/app/controllers/bouquet_core/application_controller.rb +0 -4
  379. data/core/app/helpers/bouquet_core/application_helper.rb +0 -4
  380. data/core/app/views/layouts/bouquet_core/application.html.erb +0 -14
  381. data/core/db/migrate/20151122145140_create_bouquet_products.rb +0 -9
  382. data/gate/README.rdoc +0 -3
  383. data/gate/app/helpers/bouquet_gate/application_helper.rb +0 -4
  384. data/gate/app/views/bouquet/gate/products/index.json.jbuilder +0 -3
  385. data/gate/app/views/bouquet/gate/products/show.json.jbuilder +0 -1
  386. data/gate/app/views/layouts/bouquet_gate/application.html.erb +0 -14
@@ -0,0 +1,63 @@
1
+ import React, {Component, PropTypes} from 'react'
2
+ import {Link} from 'react-router'
3
+ import {List, ListItem} from 'react-toolbox/lib'
4
+ import Avatar from 'react-toolbox/lib/avatar'
5
+ import {Button} from 'react-toolbox/lib/button'
6
+ import style from './style'
7
+
8
+ class Layout extends Component {
9
+ items = [
10
+ {caption: 'Account', icon: 'person', to: 'account'},
11
+ {caption: 'Product', icon: 'card_giftcard', to: 'products'},
12
+ {caption: 'Material', icon: 'local_florist', to: 'materials'},
13
+ {caption: 'Inventory', icon: 'widgets', to: 'inventory'},
14
+ {caption: 'Counter', icon: 'plus_one', to: 'counter'},
15
+ {caption: 'About', icon: 'domain', to: 'about'}
16
+ ]
17
+
18
+ itemNodes () {
19
+ const nodes = this.items.map((item, index) => {
20
+ let className = style.item
21
+ if (item.to === this.props.router.path) {
22
+ className += ` ${style.active}`
23
+ }
24
+
25
+ return (
26
+ <Link to={item.to} key={index} >
27
+ <ListItem className={className}
28
+ selectable
29
+ caption={item.caption}
30
+ leftIcon={item.icon} />
31
+ </Link>
32
+ )
33
+ })
34
+
35
+ return nodes
36
+ }
37
+
38
+ render () {
39
+ let className = style.root
40
+ if (this.props.className) {
41
+ className += ` ${this.props.className}`
42
+ }
43
+
44
+ return (
45
+ <dev className={className}>
46
+ <List className={style.list} selectable ripple>
47
+ {this.itemNodes()}
48
+ </List>
49
+ <footer className={style.footer}>
50
+ <div className={style.relative}>
51
+ <Avatar style={{backgroundColor: 'deepskyblue'}}
52
+ icon='person' />
53
+
54
+ <Button className={style.absolute}
55
+ label={this.props.account.username} />
56
+ </div>
57
+ </footer>
58
+ </dev>
59
+ )
60
+ }
61
+ }
62
+
63
+ export default Layout
@@ -0,0 +1,47 @@
1
+ @import "../config";
2
+
3
+ .root {
4
+ display: flex;
5
+ width: $sidebar-width;
6
+ flex-direction: column;
7
+ background-color: $color-background;
8
+ }
9
+
10
+ .list {
11
+ @include no-webkit-scrollbar;
12
+ flex-grow: 1;
13
+ overflow-y: auto;
14
+ }
15
+
16
+ .item {
17
+ padding: $sidebar-v-padding $sidebar-h-padding;
18
+ > span > span {
19
+ font-size: $font-size-normal;
20
+ font-weight: $font-weight-semi-bold;
21
+ }
22
+ }
23
+
24
+ .active {
25
+ background: $color-divider;
26
+ }
27
+
28
+ .footer {
29
+ flex-grow: 0;
30
+ padding: $sidebar-h-padding;
31
+ overflow: hidden;
32
+ font-size: $font-size-small;
33
+ color: $color-text-secondary;
34
+ border-top: $sidebar-footer-border;
35
+ > * {
36
+ display: block;
37
+ }
38
+ .relative {
39
+ position: relative;
40
+ }
41
+ .absolute{
42
+ position: absolute;
43
+ top: 50%;
44
+ margin-top: -2 * $unit;
45
+ margin-left: 1 * $unit;
46
+ }
47
+ }
@@ -0,0 +1,20 @@
1
+ // ACCOUNT
2
+ export const CHANGE_ACCOUNT = 'CHANGE_ACCOUNT'
3
+
4
+ // COUNTER
5
+ export const CHANGE_COUNTER = 'CHANGE_COUNTER'
6
+ export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'
7
+ export const DECREMENT_COUNTER = 'DECREMENT_COUNTER'
8
+
9
+ // PRODUCT
10
+ export const PRODUCT_RECEIVE = 'PRODUCT_RECEIVE';
11
+ export const PRODUCT_SHOW_ORDER = 'PRODUCT_SHOW_ORDER';
12
+ export const PRODUCT_HIDE_SNACKBAR = 'PRODUCT_HIDE_SNACKBAR';
13
+
14
+ // MATERIAL
15
+ export const MATERIAL_RECEIVE = 'MATERIAL_RECEIVE';
16
+ export const MATERIAL_SHOW_ORDER = 'MATERIAL_SHOW_ORDER';
17
+ export const MATERIAL_HIDE_SNACKBAR = 'MATERIAL_HIDE_SNACKBAR';
18
+
19
+ // STORAGE
20
+ export const STORAGE_RECEIVE = 'STORAGE_RECEIVE';
@@ -0,0 +1,13 @@
1
+ import React from 'react'
2
+ import {createDevTools} from 'redux-devtools'
3
+ import LogMonitor from 'redux-devtools-log-monitor'
4
+ import DockMonitor from 'redux-devtools-dock-monitor'
5
+
6
+ export default createDevTools(
7
+ <DockMonitor
8
+ toggleVisibilityKey="ctrl-h"
9
+ changePositionKey="ctrl-q"
10
+ >
11
+ <LogMonitor />
12
+ </DockMonitor>
13
+ )
@@ -0,0 +1,2 @@
1
+ import Home from '../../components/layouts/home'
2
+ export default Home
@@ -0,0 +1,2 @@
1
+ export Root from './root'
2
+ export Home from './home'
@@ -0,0 +1,26 @@
1
+ import React, {Component, PropTypes} from 'react'
2
+ import App from 'react-toolbox/lib/app'
3
+
4
+ class Root extends Component {
5
+ render() {
6
+ return (
7
+ <App>
8
+ {this.props.children}
9
+ {
10
+ (() => {
11
+ if (process.env.NODE_ENV !== 'production') {
12
+ const DevTools = require('../dev_tools')
13
+ return <DevTools />
14
+ }
15
+ })()
16
+ }
17
+ </App>
18
+ )
19
+ }
20
+ }
21
+
22
+ Root.propTypes = {
23
+ children: PropTypes.element.isRequired
24
+ }
25
+
26
+ export default Root
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+ import ReactDOM from 'react-dom'
3
+ import {Provider} from 'react-redux'
4
+ import {Router} from 'react-router'
5
+ import {syncReduxAndRouter} from'redux-simple-router'
6
+ import {createHistory, useBasename} from 'history'
7
+ import routes from './routes'
8
+ import configureStore from './store/configureStore'
9
+
10
+ const store = configureStore()
11
+ const history = useBasename(createHistory)({basename: '/store'})
12
+ syncReduxAndRouter(history, store)
13
+
14
+ ReactDOM.render(
15
+ <Provider store={store}>
16
+ <Router history={history}>
17
+ {routes}
18
+ </Router>
19
+ </Provider>,
20
+ document.getElementById('main')
21
+ )
@@ -0,0 +1,19 @@
1
+ import * as types from '../constants/ActionTypes'
2
+
3
+ const initialState = {
4
+ username: 'foo',
5
+ password: 'pass'
6
+ }
7
+
8
+ export default function(state = initialState, action) {
9
+ switch (action.type) {
10
+ case types.CHANGE_ACCOUNT:
11
+ return {
12
+ ...state,
13
+ username: action.account.username,
14
+ password: action.account.password
15
+ }
16
+ default:
17
+ return state
18
+ }
19
+ }
@@ -0,0 +1,14 @@
1
+ import * as types from '../constants/ActionTypes'
2
+
3
+ export default function(state = 0, action) {
4
+ switch (action.type) {
5
+ case types.CHANGE_COUNTER:
6
+ return action.counter
7
+ case types.INCREMENT_COUNTER:
8
+ return state + 1
9
+ case types.DECREMENT_COUNTER:
10
+ return state - 1
11
+ default:
12
+ return state
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ import {combineReducers} from 'redux'
2
+ import {routeReducer as routing} from 'redux-simple-router'
3
+ import account from './account'
4
+ import product from './product'
5
+ import material from './material'
6
+ import inventory from './inventory'
7
+ import counter from './counter'
8
+
9
+ const rootReducer = combineReducers({
10
+ routing,
11
+ account,
12
+ product,
13
+ material,
14
+ inventory,
15
+ counter
16
+ })
17
+
18
+ export default rootReducer
@@ -0,0 +1,17 @@
1
+ import * as types from '../constants/ActionTypes'
2
+
3
+ const initialState = {
4
+ storages: []
5
+ }
6
+
7
+ export default function(state = initialState, action) {
8
+ switch (action.type) {
9
+ case types.STORAGE_RECEIVE:
10
+ return {
11
+ ...state,
12
+ storages: action.storages
13
+ }
14
+ default:
15
+ return state
16
+ }
17
+ }
@@ -0,0 +1,30 @@
1
+ import * as types from '../constants/ActionTypes'
2
+
3
+ const initialState = {
4
+ materials: [],
5
+ order: {},
6
+ snackbar_active: false
7
+ }
8
+
9
+ export default function(state = initialState, action) {
10
+ switch (action.type) {
11
+ case types.MATERIAL_RECEIVE:
12
+ return {
13
+ ...state,
14
+ materials: action.materials
15
+ }
16
+ case types.MATERIAL_SHOW_ORDER:
17
+ return {
18
+ ...state,
19
+ order: action.order,
20
+ snackbar_active: true
21
+ }
22
+ case types.MATERIAL_HIDE_SNACKBAR:
23
+ return {
24
+ ...state,
25
+ snackbar_active: false
26
+ }
27
+ default:
28
+ return state
29
+ }
30
+ }
@@ -0,0 +1,30 @@
1
+ import * as types from '../constants/ActionTypes'
2
+
3
+ const initialState = {
4
+ products: [],
5
+ order: {},
6
+ snackbar_active: false
7
+ }
8
+
9
+ export default function(state = initialState, action) {
10
+ switch (action.type) {
11
+ case types.PRODUCT_RECEIVE:
12
+ return {
13
+ ...state,
14
+ products: action.products
15
+ }
16
+ case types.PRODUCT_SHOW_ORDER:
17
+ return {
18
+ ...state,
19
+ order: action.order,
20
+ snackbar_active: true
21
+ }
22
+ case types.PRODUCT_HIDE_SNACKBAR:
23
+ return {
24
+ ...state,
25
+ snackbar_active: false
26
+ }
27
+ default:
28
+ return state
29
+ }
30
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import {Route, IndexRoute} from 'react-router'
3
+ import {Root, Home} from '../containers'
4
+ import * as Contents from '../components/layouts/contents'
5
+
6
+ export default (
7
+ <Route component={Root}>
8
+ <Route path="/" component={Home}>
9
+ <IndexRoute component={Contents.Main} />
10
+ <Route path="/account" component={Contents.Account} />
11
+ <Route path="/products" component={Contents.Product} />
12
+ <Route path="/materials" component={Contents.Material} />
13
+ <Route path="/inventory" component={Contents.Inventory} />
14
+ <Route path="/counter" component={Contents.Counter} />
15
+ <Route path="/about" component={Contents.About} />
16
+ </Route>
17
+ </Route>
18
+ )
@@ -0,0 +1,27 @@
1
+ import { createStore, applyMiddleware, compose } from 'redux'
2
+ import { persistState } from 'redux-devtools'
3
+ import thunk from 'redux-thunk'
4
+ import rootReducer from '../reducers'
5
+ import DevTools from '../containers/dev_tools'
6
+
7
+ const finalCreateStore = compose(
8
+ applyMiddleware(thunk),
9
+ DevTools.instrument(),
10
+ persistState(
11
+ window.location.href.match(
12
+ /[?&]debug_session=([^&]+)\b/
13
+ )
14
+ )
15
+ )(createStore)
16
+
17
+ export default function configureStore(initialState) {
18
+ const store = finalCreateStore(rootReducer, initialState)
19
+
20
+ if (module.hot) {
21
+ module.hot.accept('../reducers', () =>
22
+ store.replaceReducer(require('../reducers'))
23
+ )
24
+ }
25
+
26
+ return store
27
+ }
@@ -0,0 +1,5 @@
1
+ if (process.env.NODE_ENV === 'production') {
2
+ module.exports = require('./configureStore.production')
3
+ } else {
4
+ module.exports = require('./configureStore.development')
5
+ }
@@ -0,0 +1,11 @@
1
+ import {createStore, applyMiddleware, compose} from 'redux'
2
+ import thunk from 'redux-thunk'
3
+ import rootReducer from '../reducers'
4
+
5
+ const finalCreateStore = compose(
6
+ applyMiddleware(thunk)
7
+ )(createStore)
8
+
9
+ export default function configureStore(initialState) {
10
+ return finalCreateStore(rootReducer, initialState)
11
+ }
@@ -0,0 +1,7 @@
1
+ $color-primary: $palette-blue-500 !default;
2
+ $color-primary-dark: $palette-blue-700 !default;
3
+ $color-primary-light: $palette-blue-500 !default;
4
+ $color-accent: $palette-pink-a200;
5
+ $color-accent-dark: $palette-pink-700;
6
+ $color-primary-contrast: $color-dark-contrast;
7
+ $color-accent-contrast: $color-dark-contrast;
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Redux/React App</title>
6
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
7
+ <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
8
+ <link href="http://localhost:4000/assets/stylesheets/bouquet/store/application.css" rel="stylesheet" type="text/css" />
9
+ </head>
10
+ <body>
11
+ <div id="main"></div>
12
+ <script src="http://localhost:4000/assets/javascripts/bouquet/store/application.js"></script>
13
+ </body>
14
+ </html>
@@ -0,0 +1,30 @@
1
+ 'use strict'
2
+
3
+ const electron = require('electron')
4
+ const app = electron.app
5
+ const BrowserWindow = electron.BrowserWindow
6
+
7
+ let mainWindow
8
+
9
+ function createWindow () {
10
+ mainWindow = new BrowserWindow({width: 800, height: 600})
11
+ mainWindow.loadURL('file://' + __dirname + '/index.html')
12
+ mainWindow.webContents.openDevTools()
13
+ mainWindow.on('closed', function() {
14
+ mainWindow = null
15
+ })
16
+ }
17
+
18
+ app.on('ready', createWindow)
19
+
20
+ app.on('window-all-closed', function () {
21
+ if (process.platform !== 'darwin') {
22
+ app.quit()
23
+ }
24
+ })
25
+
26
+ app.on('activate', function () {
27
+ if (mainWindow === null) {
28
+ createWindow()
29
+ }
30
+ })
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "static",
3
+ "version": "0.1.0",
4
+ "scripts": {
5
+ "start": "NODE_ENV=development node server.js",
6
+ "build": "NODE_ENV=production webpack -p --config webpack.production.js",
7
+ "elect": "electron main.js"
8
+ },
9
+ "dependencies": {
10
+ "babel-core": "^5.0.0",
11
+ "es6-promise": "^3.0.2",
12
+ "history": "^1.17.0",
13
+ "isomorphic-fetch": "^2.2.1",
14
+ "lodash": "^4.0.0",
15
+ "react": "^0.14.0",
16
+ "react-dom": "^0.14.0",
17
+ "react-redux": "^4.0.0",
18
+ "react-router": "^1.0.3",
19
+ "react-toolbox": "^0.14.0",
20
+ "redux": "^3.0.4",
21
+ "redux-simple-router": "^1.0.2",
22
+ "redux-thunk": "^1.0.0",
23
+ "whatwg-fetch": "^0.10.1"
24
+ },
25
+ "devDependencies": {
26
+ "autoprefixer": "^6.2.3",
27
+ "babel-core": "^5.0.0",
28
+ "babel-loader": "^5.0.0",
29
+ "babel-plugin-react-display-name": "^2.0.0",
30
+ "babel-plugin-react-transform": "^1.1.1",
31
+ "classnames": "^2.2.3",
32
+ "core-js": "^2.0.3",
33
+ "css-loader": "^0.23.1",
34
+ "cssnext-loader": "^1.0.1",
35
+ "electron-prebuilt": "^0.36.3",
36
+ "express": "^4.13.3",
37
+ "extract-text-webpack-plugin": "^1.0.1",
38
+ "node-sass": "^3.4.2",
39
+ "normalize.css": "^3.0.3",
40
+ "path": "^0.12.7",
41
+ "postcss-loader": "^0.8.0",
42
+ "react-addons-css-transition-group": "^0.14.6",
43
+ "react-transform-catch-errors": "^1.0.1",
44
+ "react-transform-hmr": "^1.0.1",
45
+ "redbox-react": "^1.2.0",
46
+ "redux-devtools": "^3.0.1",
47
+ "redux-devtools-dock-monitor": "^1.0.1",
48
+ "redux-devtools-log-monitor": "^1.0.2",
49
+ "sass-loader": "^3.1.2",
50
+ "style-loader": "^0.13.0",
51
+ "toolbox-loader": "0.0.3",
52
+ "webpack": "^1.12.11",
53
+ "webpack-dev-middleware": "^1.4.0",
54
+ "webpack-hot-middleware": "^2.6.0"
55
+ }
56
+ }
@@ -0,0 +1,27 @@
1
+ var path = require('path')
2
+ var webpack = require('webpack')
3
+ var express = require('express')
4
+ var config = require('./webpack.config')
5
+
6
+ var app = express()
7
+ var compiler = webpack(config)
8
+
9
+ app.use(require('webpack-dev-middleware')(compiler, {
10
+ noInfo: true,
11
+ publicPath: config.output.publicPath,
12
+ historyApiFallback: true
13
+ }))
14
+
15
+ app.use(require('webpack-hot-middleware')(compiler))
16
+
17
+ app.get('*', function(req, res) {
18
+ res.sendFile(path.join(__dirname, 'index.html'))
19
+ })
20
+
21
+ app.listen(4000, 'localhost', function (err, result) {
22
+ if (err) {
23
+ console.log(err)
24
+ }
25
+
26
+ console.log('Listening at localhost:4000')
27
+ })
@@ -0,0 +1,50 @@
1
+ var path = require('path')
2
+ var webpack = require('webpack')
3
+ var ExtractTextPlugin = require('extract-text-webpack-plugin')
4
+ var autoprefixer = require('autoprefixer')
5
+
6
+ module.exports = {
7
+ devtool: 'cheap-module-eval-source-map',
8
+ entry: [
9
+ 'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000',
10
+ './app/index.js'
11
+ ],
12
+ output: {
13
+ path: __dirname + '/assets/',
14
+ publicPath: 'http://localhost:4000/assets/',
15
+ filename: 'javascripts/bouquet/store/application.js',
16
+ hot: true
17
+ },
18
+ plugins: [
19
+ new webpack.optimize.OccurenceOrderPlugin(),
20
+ new webpack.HotModuleReplacementPlugin(),
21
+ new webpack.NoErrorsPlugin(),
22
+ new webpack.DefinePlugin({
23
+ '__DEV__': true,
24
+ 'process.env': {
25
+ 'NODE_ENV': JSON.stringify('development')
26
+ }
27
+ }),
28
+ new ExtractTextPlugin('stylesheets/bouquet/store/application.css')
29
+ ],
30
+ module: {
31
+ loaders: [
32
+ {
33
+ test: /(\.js|\.jsx)$/,
34
+ exclude: /(node_modules)/,
35
+ loaders: ['babel']
36
+ },
37
+ {
38
+ test: /(\.scss|\.css)$/,
39
+ loader: ExtractTextPlugin.extract('style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass?sourceMap!toolbox')
40
+ }
41
+ ]
42
+ },
43
+ toolbox: {
44
+ theme: path.join(__dirname, 'app/toolbox-theme.scss')
45
+ },
46
+ postcss: [autoprefixer],
47
+ resolve: {
48
+ extensions: ['', '.js', '.jsx', '.json', '.scss']
49
+ }
50
+ }
@@ -0,0 +1,43 @@
1
+ var path = require('path')
2
+ var webpack = require('webpack')
3
+ var ExtractTextPlugin = require('extract-text-webpack-plugin')
4
+
5
+ module.exports = {
6
+ entry: [
7
+ './app/index.js'
8
+ ],
9
+ output: {
10
+ path: __dirname + '../../../app/assets/',
11
+ publicPath: '/static/',
12
+ filename: 'javascripts/bouquet/store/bundle.js',
13
+ },
14
+ plugins: [
15
+ new webpack.NoErrorsPlugin(),
16
+ new webpack.DefinePlugin({
17
+ '__DEV__': false,
18
+ 'process.env': {
19
+ 'NODE_ENV': JSON.stringify('production')
20
+ }
21
+ }),
22
+ new ExtractTextPlugin('stylesheets/bouquet/store/bundle.css')
23
+ ],
24
+ module: {
25
+ loaders: [
26
+ {
27
+ test: /(\.js|\.jsx)$/,
28
+ exclude: /(node_modules)/,
29
+ loaders: ['babel']
30
+ },
31
+ {
32
+ test: /(\.scss|\.css)$/,
33
+ loader: ExtractTextPlugin.extract('style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass?sourceMap!toolbox')
34
+ }
35
+ ]
36
+ },
37
+ toolbox: {
38
+ theme: path.join(__dirname, 'app/toolbox-theme.scss')
39
+ },
40
+ resolve: {
41
+ extensions: ['', '.js', '.jsx', '.json', '.scss']
42
+ }
43
+ }
@@ -0,0 +1,15 @@
1
+ require 'rails_helper'
2
+
3
+ module Bouquet
4
+ RSpec.describe Store::MainController, :type => :controller do
5
+ routes { Bouquet::Store::Engine.routes }
6
+
7
+ describe "GET index" do
8
+ it "returns http success" do
9
+ get :index
10
+ expect(response).to have_http_status(:success)
11
+ end
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,2 @@
1
+ web: NODE_ENV=development rails server
2
+ pack: NODE_ENV=development npm start
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,4 @@
1
+
2
+ //= link_tree ../images
3
+ //= link_directory ../stylesheets .css
4
+ //= link bouquet_store_manifest.js