shoppe 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/Rakefile +18 -0
  3. data/app/assets/images/shoppe/document.svg +1 -0
  4. data/app/assets/images/shoppe/logo.svg +47 -0
  5. data/app/assets/images/shoppe/shoppe.svg +25 -0
  6. data/app/assets/images/shoppe/square.svg +9 -0
  7. data/app/assets/images/shoppe/statuses/accepted.svg +14 -0
  8. data/app/assets/images/shoppe/statuses/paid.svg +16 -0
  9. data/app/assets/images/shoppe/statuses/received.svg +15 -0
  10. data/app/assets/images/shoppe/statuses/rejected.svg +14 -0
  11. data/app/assets/images/shoppe/statuses/shipped.svg +14 -0
  12. data/app/assets/javascripts/shoppe/application.coffee +11 -0
  13. data/app/assets/stylesheets/shoppe/application.scss +302 -0
  14. data/app/assets/stylesheets/shoppe/elements.scss +73 -0
  15. data/app/assets/stylesheets/shoppe/reset.scss +93 -0
  16. data/app/assets/stylesheets/shoppe/sub.scss +90 -0
  17. data/app/assets/stylesheets/shoppe/variables.scss +1 -0
  18. data/app/controllers/shoppe/application_controller.rb +39 -0
  19. data/app/controllers/shoppe/attachments_controller.rb +12 -0
  20. data/app/controllers/shoppe/dashboard_controller.rb +7 -0
  21. data/app/controllers/shoppe/delivery_service_prices_controller.rb +42 -0
  22. data/app/controllers/shoppe/delivery_services_controller.rb +45 -0
  23. data/app/controllers/shoppe/orders_controller.rb +36 -0
  24. data/app/controllers/shoppe/product_categories_controller.rb +45 -0
  25. data/app/controllers/shoppe/products_controller.rb +45 -0
  26. data/app/controllers/shoppe/sessions_controller.rb +31 -0
  27. data/app/controllers/shoppe/users_controller.rb +46 -0
  28. data/app/helpers/shoppe/application_helper.rb +10 -0
  29. data/app/helpers/shoppe/shoppe_helper.rb +28 -0
  30. data/app/mailers/shoppe/order_mailer.rb +25 -0
  31. data/app/mailers/shoppe/user_mailer.rb +10 -0
  32. data/app/models/shoppe/delivery_service.rb +22 -0
  33. data/app/models/shoppe/delivery_service_price.rb +19 -0
  34. data/app/models/shoppe/order.rb +325 -0
  35. data/app/models/shoppe/order_item.rb +113 -0
  36. data/app/models/shoppe/product.rb +56 -0
  37. data/app/models/shoppe/product_category.rb +22 -0
  38. data/app/models/shoppe/user.rb +41 -0
  39. data/app/views/layouts/shoppe/application.html.haml +35 -0
  40. data/app/views/layouts/shoppe/sub.html.haml +10 -0
  41. data/app/views/shoppe/delivery_service_prices/_form.html.haml +28 -0
  42. data/app/views/shoppe/delivery_service_prices/edit.html.haml +5 -0
  43. data/app/views/shoppe/delivery_service_prices/index.html.haml +22 -0
  44. data/app/views/shoppe/delivery_service_prices/new.html.haml +5 -0
  45. data/app/views/shoppe/delivery_services/_form.html.haml +35 -0
  46. data/app/views/shoppe/delivery_services/edit.html.haml +5 -0
  47. data/app/views/shoppe/delivery_services/index.html.haml +24 -0
  48. data/app/views/shoppe/delivery_services/new.html.haml +5 -0
  49. data/app/views/shoppe/order_mailer/accepted.text.erb +12 -0
  50. data/app/views/shoppe/order_mailer/received.text.erb +12 -0
  51. data/app/views/shoppe/order_mailer/rejected.text.erb +10 -0
  52. data/app/views/shoppe/order_mailer/shipped.text.erb +16 -0
  53. data/app/views/shoppe/orders/index.html.haml +60 -0
  54. data/app/views/shoppe/orders/show.html.haml +117 -0
  55. data/app/views/shoppe/product_categories/_form.html.haml +25 -0
  56. data/app/views/shoppe/product_categories/edit.html.haml +6 -0
  57. data/app/views/shoppe/product_categories/index.html.haml +15 -0
  58. data/app/views/shoppe/product_categories/new.html.haml +5 -0
  59. data/app/views/shoppe/products/_form.html.haml +71 -0
  60. data/app/views/shoppe/products/edit.html.haml +5 -0
  61. data/app/views/shoppe/products/index.html.haml +27 -0
  62. data/app/views/shoppe/products/new.html.haml +5 -0
  63. data/app/views/shoppe/sessions/new.html.haml +12 -0
  64. data/app/views/shoppe/sessions/reset.html.haml +11 -0
  65. data/app/views/shoppe/user_mailer/new_password.text.erb +9 -0
  66. data/app/views/shoppe/users/_form.html.haml +26 -0
  67. data/app/views/shoppe/users/edit.html.haml +5 -0
  68. data/app/views/shoppe/users/index.html.haml +17 -0
  69. data/app/views/shoppe/users/new.html.haml +5 -0
  70. data/config/routes.rb +24 -0
  71. data/config/shoppe.example.yml +6 -0
  72. data/db/migrate/20130926094549_create_shoppe_initial_schema.rb +116 -0
  73. data/db/seeds.rb +85 -0
  74. data/db/seeds_data/poe400.jpg +0 -0
  75. data/db/seeds_data/snom-870-blk.jpg +0 -0
  76. data/db/seeds_data/snom-870-grey.jpg +0 -0
  77. data/db/seeds_data/snom-mm2.jpg +0 -0
  78. data/db/seeds_data/spa303.jpg +0 -0
  79. data/db/seeds_data/t18p.jpg +0 -0
  80. data/db/seeds_data/t20p.jpg +0 -0
  81. data/db/seeds_data/t22p.jpg +0 -0
  82. data/db/seeds_data/t26p.jpg +0 -0
  83. data/db/seeds_data/t41pn.jpg +0 -0
  84. data/db/seeds_data/t46gn.jpg +0 -0
  85. data/db/seeds_data/w52p.jpg +0 -0
  86. data/db/seeds_data/yhs32.jpg +0 -0
  87. data/lib/shoppe.rb +41 -0
  88. data/lib/shoppe/engine.rb +35 -0
  89. data/lib/shoppe/errors/inappropriate_delivery_service.rb +11 -0
  90. data/lib/shoppe/errors/insufficient_stock_to_fulfil.rb +19 -0
  91. data/lib/shoppe/errors/not_enough_stock.rb +19 -0
  92. data/lib/shoppe/errors/payment_declined.rb +15 -0
  93. data/lib/shoppe/setup_generator.rb +14 -0
  94. data/lib/shoppe/version.rb +3 -0
  95. data/lib/tasks/shoppe.rake +17 -0
  96. data/test/dummy/README.rdoc +28 -0
  97. data/test/dummy/Rakefile +6 -0
  98. data/test/dummy/app/assets/javascripts/application.js +13 -0
  99. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  100. data/test/dummy/app/controllers/application_controller.rb +5 -0
  101. data/test/dummy/app/helpers/application_helper.rb +2 -0
  102. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  103. data/test/dummy/bin/bundle +3 -0
  104. data/test/dummy/bin/rails +4 -0
  105. data/test/dummy/bin/rake +4 -0
  106. data/test/dummy/config.ru +4 -0
  107. data/test/dummy/config/application.rb +23 -0
  108. data/test/dummy/config/boot.rb +5 -0
  109. data/test/dummy/config/database.yml +25 -0
  110. data/test/dummy/config/environment.rb +5 -0
  111. data/test/dummy/config/environments/development.rb +29 -0
  112. data/test/dummy/config/environments/production.rb +80 -0
  113. data/test/dummy/config/environments/test.rb +36 -0
  114. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  115. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  116. data/test/dummy/config/initializers/inflections.rb +16 -0
  117. data/test/dummy/config/initializers/mime_types.rb +5 -0
  118. data/test/dummy/config/initializers/secret_token.rb +12 -0
  119. data/test/dummy/config/initializers/session_store.rb +3 -0
  120. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  121. data/test/dummy/config/locales/en.yml +23 -0
  122. data/test/dummy/config/routes.rb +3 -0
  123. data/test/dummy/config/shoppe.yml +7 -0
  124. data/test/dummy/db/development.sqlite3 +0 -0
  125. data/test/dummy/db/schema.rb +119 -0
  126. data/test/dummy/db/test.sqlite3 +0 -0
  127. data/test/dummy/log/development.log +893 -0
  128. data/test/dummy/log/test.log +6397 -0
  129. data/test/dummy/public/404.html +58 -0
  130. data/test/dummy/public/422.html +58 -0
  131. data/test/dummy/public/500.html +57 -0
  132. data/test/dummy/public/favicon.ico +0 -0
  133. data/test/models/shoppe/basket_test.rb +26 -0
  134. data/test/models/shoppe/user_test.rb +37 -0
  135. data/test/shoppe_test.rb +17 -0
  136. data/test/test_helper.rb +4 -0
  137. metadata +453 -0
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/404.html -->
52
+ <div class="dialog">
53
+ <h1>The page you were looking for doesn't exist.</h1>
54
+ <p>You may have mistyped the address or the page may have moved.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/422.html -->
52
+ <div class="dialog">
53
+ <h1>The change you wanted was rejected.</h1>
54
+ <p>Maybe you tried to change something you didn't have access to.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/500.html -->
52
+ <div class="dialog">
53
+ <h1>We're sorry, but something went wrong.</h1>
54
+ </div>
55
+ <p>If you are the application owner check the logs for more information.</p>
56
+ </body>
57
+ </html>
File without changes
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module Shoppe
4
+ class BasketTest < ActiveSupport::TestCase
5
+
6
+ setup do
7
+ @order = Order.create
8
+ end
9
+
10
+ test "initial status" do
11
+ assert @order.building?
12
+ end
13
+
14
+ test "basket has no items by default" do
15
+ assert_equal false, @order.has_items?
16
+ end
17
+
18
+ test "adding products" do
19
+ @order.order_items.add_product(Product.find_by_sku('YL-SIP-T20P'))
20
+ @order.order_items.add_product(Product.find_by_sku('YL-SIP-T22P'))
21
+ assert_equal true, @order.has_items?
22
+ assert_equal 2, @order.total_items
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ module Shoppe
4
+ class UserTest < ActiveSupport::TestCase
5
+
6
+ setup do
7
+ @user = User.first
8
+ end
9
+
10
+ test "authentication" do
11
+ user = User.authenticate('adam@niftyware.io', 'llamafarm')
12
+ assert_equal User, user.class
13
+ user = User.authenticate('adam@niftyware.io', 'invalid')
14
+ assert_equal false, user
15
+ end
16
+
17
+ test "full name" do
18
+ assert_equal "Adam Cooke", @user.full_name
19
+ end
20
+
21
+ test "short name" do
22
+ assert_equal "Adam C", @user.short_name
23
+ end
24
+
25
+ test "user creation" do
26
+ user = User.new
27
+ assert_equal false, user.save
28
+ user.first_name = 'Test'
29
+ user.last_name = 'User'
30
+ user.email_address = 'test@example.com'
31
+ user.password = 'password'
32
+ user.password_confirmation = 'password'
33
+ assert_equal true, user.save
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class ShoppeTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Shoppe
6
+ end
7
+
8
+ test "root path is set" do
9
+ assert_equal File.expand_path('../../', __FILE__), Shoppe.root
10
+ end
11
+
12
+ test "configuration is loaded" do
13
+ assert Shoppe.config.is_a?(Hash)
14
+ assert_equal 'Example Store', Shoppe.config[:store_name]
15
+ end
16
+
17
+ end
@@ -0,0 +1,4 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
3
+ require "rails/test_help"
4
+ Shoppe::Engine.load_seed
metadata ADDED
@@ -0,0 +1,453 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shoppe
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Adam Cooke
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 4.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: bcrypt-ruby
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 3.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: dynamic_form
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: haml
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: ransack
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: kaminari
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: nifty-key-value-store
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: nifty-utils
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: nifty-attachments
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: jquery-rails
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: coffee-rails
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: sass-rails
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :runtime
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: uglifier
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: sqlite3
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ description: A full Rails engine providing e-commerce functionality for any Rails
239
+ 4 application.
240
+ email:
241
+ - adam@niftyware.io
242
+ executables: []
243
+ extensions: []
244
+ extra_rdoc_files: []
245
+ files:
246
+ - app/assets/images/shoppe/document.svg
247
+ - app/assets/images/shoppe/logo.svg
248
+ - app/assets/images/shoppe/shoppe.svg
249
+ - app/assets/images/shoppe/square.svg
250
+ - app/assets/images/shoppe/statuses/accepted.svg
251
+ - app/assets/images/shoppe/statuses/paid.svg
252
+ - app/assets/images/shoppe/statuses/received.svg
253
+ - app/assets/images/shoppe/statuses/rejected.svg
254
+ - app/assets/images/shoppe/statuses/shipped.svg
255
+ - app/assets/javascripts/shoppe/application.coffee
256
+ - app/assets/stylesheets/shoppe/application.scss
257
+ - app/assets/stylesheets/shoppe/elements.scss
258
+ - app/assets/stylesheets/shoppe/reset.scss
259
+ - app/assets/stylesheets/shoppe/sub.scss
260
+ - app/assets/stylesheets/shoppe/variables.scss
261
+ - app/controllers/shoppe/application_controller.rb
262
+ - app/controllers/shoppe/attachments_controller.rb
263
+ - app/controllers/shoppe/dashboard_controller.rb
264
+ - app/controllers/shoppe/delivery_service_prices_controller.rb
265
+ - app/controllers/shoppe/delivery_services_controller.rb
266
+ - app/controllers/shoppe/orders_controller.rb
267
+ - app/controllers/shoppe/product_categories_controller.rb
268
+ - app/controllers/shoppe/products_controller.rb
269
+ - app/controllers/shoppe/sessions_controller.rb
270
+ - app/controllers/shoppe/users_controller.rb
271
+ - app/helpers/shoppe/application_helper.rb
272
+ - app/helpers/shoppe/shoppe_helper.rb
273
+ - app/mailers/shoppe/order_mailer.rb
274
+ - app/mailers/shoppe/user_mailer.rb
275
+ - app/models/shoppe/delivery_service.rb
276
+ - app/models/shoppe/delivery_service_price.rb
277
+ - app/models/shoppe/order.rb
278
+ - app/models/shoppe/order_item.rb
279
+ - app/models/shoppe/product.rb
280
+ - app/models/shoppe/product_category.rb
281
+ - app/models/shoppe/user.rb
282
+ - app/views/layouts/shoppe/application.html.haml
283
+ - app/views/layouts/shoppe/sub.html.haml
284
+ - app/views/shoppe/delivery_service_prices/_form.html.haml
285
+ - app/views/shoppe/delivery_service_prices/edit.html.haml
286
+ - app/views/shoppe/delivery_service_prices/index.html.haml
287
+ - app/views/shoppe/delivery_service_prices/new.html.haml
288
+ - app/views/shoppe/delivery_services/_form.html.haml
289
+ - app/views/shoppe/delivery_services/edit.html.haml
290
+ - app/views/shoppe/delivery_services/index.html.haml
291
+ - app/views/shoppe/delivery_services/new.html.haml
292
+ - app/views/shoppe/order_mailer/accepted.text.erb
293
+ - app/views/shoppe/order_mailer/received.text.erb
294
+ - app/views/shoppe/order_mailer/rejected.text.erb
295
+ - app/views/shoppe/order_mailer/shipped.text.erb
296
+ - app/views/shoppe/orders/index.html.haml
297
+ - app/views/shoppe/orders/show.html.haml
298
+ - app/views/shoppe/product_categories/_form.html.haml
299
+ - app/views/shoppe/product_categories/edit.html.haml
300
+ - app/views/shoppe/product_categories/index.html.haml
301
+ - app/views/shoppe/product_categories/new.html.haml
302
+ - app/views/shoppe/products/_form.html.haml
303
+ - app/views/shoppe/products/edit.html.haml
304
+ - app/views/shoppe/products/index.html.haml
305
+ - app/views/shoppe/products/new.html.haml
306
+ - app/views/shoppe/sessions/new.html.haml
307
+ - app/views/shoppe/sessions/reset.html.haml
308
+ - app/views/shoppe/user_mailer/new_password.text.erb
309
+ - app/views/shoppe/users/_form.html.haml
310
+ - app/views/shoppe/users/edit.html.haml
311
+ - app/views/shoppe/users/index.html.haml
312
+ - app/views/shoppe/users/new.html.haml
313
+ - config/routes.rb
314
+ - config/shoppe.example.yml
315
+ - db/migrate/20130926094549_create_shoppe_initial_schema.rb
316
+ - db/seeds.rb
317
+ - db/seeds_data/poe400.jpg
318
+ - db/seeds_data/snom-870-blk.jpg
319
+ - db/seeds_data/snom-870-grey.jpg
320
+ - db/seeds_data/snom-mm2.jpg
321
+ - db/seeds_data/spa303.jpg
322
+ - db/seeds_data/t18p.jpg
323
+ - db/seeds_data/t20p.jpg
324
+ - db/seeds_data/t22p.jpg
325
+ - db/seeds_data/t26p.jpg
326
+ - db/seeds_data/t41pn.jpg
327
+ - db/seeds_data/t46gn.jpg
328
+ - db/seeds_data/w52p.jpg
329
+ - db/seeds_data/yhs32.jpg
330
+ - lib/shoppe/engine.rb
331
+ - lib/shoppe/errors/inappropriate_delivery_service.rb
332
+ - lib/shoppe/errors/insufficient_stock_to_fulfil.rb
333
+ - lib/shoppe/errors/not_enough_stock.rb
334
+ - lib/shoppe/errors/payment_declined.rb
335
+ - lib/shoppe/setup_generator.rb
336
+ - lib/shoppe/version.rb
337
+ - lib/shoppe.rb
338
+ - lib/tasks/shoppe.rake
339
+ - MIT-LICENSE
340
+ - Rakefile
341
+ - test/dummy/app/assets/javascripts/application.js
342
+ - test/dummy/app/assets/stylesheets/application.css
343
+ - test/dummy/app/controllers/application_controller.rb
344
+ - test/dummy/app/helpers/application_helper.rb
345
+ - test/dummy/app/views/layouts/application.html.erb
346
+ - test/dummy/bin/bundle
347
+ - test/dummy/bin/rails
348
+ - test/dummy/bin/rake
349
+ - test/dummy/config/application.rb
350
+ - test/dummy/config/boot.rb
351
+ - test/dummy/config/database.yml
352
+ - test/dummy/config/environment.rb
353
+ - test/dummy/config/environments/development.rb
354
+ - test/dummy/config/environments/production.rb
355
+ - test/dummy/config/environments/test.rb
356
+ - test/dummy/config/initializers/backtrace_silencers.rb
357
+ - test/dummy/config/initializers/filter_parameter_logging.rb
358
+ - test/dummy/config/initializers/inflections.rb
359
+ - test/dummy/config/initializers/mime_types.rb
360
+ - test/dummy/config/initializers/secret_token.rb
361
+ - test/dummy/config/initializers/session_store.rb
362
+ - test/dummy/config/initializers/wrap_parameters.rb
363
+ - test/dummy/config/locales/en.yml
364
+ - test/dummy/config/routes.rb
365
+ - test/dummy/config/shoppe.yml
366
+ - test/dummy/config.ru
367
+ - test/dummy/db/development.sqlite3
368
+ - test/dummy/db/schema.rb
369
+ - test/dummy/db/test.sqlite3
370
+ - test/dummy/log/development.log
371
+ - test/dummy/log/test.log
372
+ - test/dummy/public/404.html
373
+ - test/dummy/public/422.html
374
+ - test/dummy/public/500.html
375
+ - test/dummy/public/favicon.ico
376
+ - test/dummy/Rakefile
377
+ - test/dummy/README.rdoc
378
+ - test/models/shoppe/basket_test.rb
379
+ - test/models/shoppe/user_test.rb
380
+ - test/shoppe_test.rb
381
+ - test/test_helper.rb
382
+ homepage: http://shoppe.niftyware.io
383
+ licenses: []
384
+ post_install_message:
385
+ rdoc_options: []
386
+ require_paths:
387
+ - lib
388
+ required_ruby_version: !ruby/object:Gem::Requirement
389
+ none: false
390
+ requirements:
391
+ - - ! '>='
392
+ - !ruby/object:Gem::Version
393
+ version: '0'
394
+ segments:
395
+ - 0
396
+ hash: -2798152506865549015
397
+ required_rubygems_version: !ruby/object:Gem::Requirement
398
+ none: false
399
+ requirements:
400
+ - - ! '>='
401
+ - !ruby/object:Gem::Version
402
+ version: '0'
403
+ segments:
404
+ - 0
405
+ hash: -2798152506865549015
406
+ requirements: []
407
+ rubyforge_project:
408
+ rubygems_version: 1.8.23
409
+ signing_key:
410
+ specification_version: 3
411
+ summary: Just an e-commerce platform.
412
+ test_files:
413
+ - test/dummy/app/assets/javascripts/application.js
414
+ - test/dummy/app/assets/stylesheets/application.css
415
+ - test/dummy/app/controllers/application_controller.rb
416
+ - test/dummy/app/helpers/application_helper.rb
417
+ - test/dummy/app/views/layouts/application.html.erb
418
+ - test/dummy/bin/bundle
419
+ - test/dummy/bin/rails
420
+ - test/dummy/bin/rake
421
+ - test/dummy/config/application.rb
422
+ - test/dummy/config/boot.rb
423
+ - test/dummy/config/database.yml
424
+ - test/dummy/config/environment.rb
425
+ - test/dummy/config/environments/development.rb
426
+ - test/dummy/config/environments/production.rb
427
+ - test/dummy/config/environments/test.rb
428
+ - test/dummy/config/initializers/backtrace_silencers.rb
429
+ - test/dummy/config/initializers/filter_parameter_logging.rb
430
+ - test/dummy/config/initializers/inflections.rb
431
+ - test/dummy/config/initializers/mime_types.rb
432
+ - test/dummy/config/initializers/secret_token.rb
433
+ - test/dummy/config/initializers/session_store.rb
434
+ - test/dummy/config/initializers/wrap_parameters.rb
435
+ - test/dummy/config/locales/en.yml
436
+ - test/dummy/config/routes.rb
437
+ - test/dummy/config/shoppe.yml
438
+ - test/dummy/config.ru
439
+ - test/dummy/db/development.sqlite3
440
+ - test/dummy/db/schema.rb
441
+ - test/dummy/db/test.sqlite3
442
+ - test/dummy/log/development.log
443
+ - test/dummy/log/test.log
444
+ - test/dummy/public/404.html
445
+ - test/dummy/public/422.html
446
+ - test/dummy/public/500.html
447
+ - test/dummy/public/favicon.ico
448
+ - test/dummy/Rakefile
449
+ - test/dummy/README.rdoc
450
+ - test/models/shoppe/basket_test.rb
451
+ - test/models/shoppe/user_test.rb
452
+ - test/shoppe_test.rb
453
+ - test/test_helper.rb