shopping_cart 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +100 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/config/shopping_cart_manifest.js +2 -0
  6. data/app/assets/images/shopping_cart/back.png +0 -0
  7. data/app/assets/images/shopping_cart/delete.png +0 -0
  8. data/app/assets/images/shopping_cart/empty_cart.png +0 -0
  9. data/app/assets/images/shopping_cart/refresh.png +0 -0
  10. data/app/assets/javascripts/shopping_cart/application.js +4 -0
  11. data/app/assets/javascripts/shopping_cart/order_items.js.coffee +4 -0
  12. data/app/assets/stylesheets/shopping_cart/application.scss +3 -0
  13. data/app/assets/stylesheets/shopping_cart/order_items.scss +7 -0
  14. data/app/controllers/shopping_cart/application_controller.rb +23 -0
  15. data/app/controllers/shopping_cart/checkout_controller.rb +99 -0
  16. data/app/controllers/shopping_cart/order_items_controller.rb +51 -0
  17. data/app/helpers/shopping_cart/application_helper.rb +4 -0
  18. data/app/helpers/shopping_cart/order_items_helper.rb +7 -0
  19. data/app/helpers/shopping_cart/orders_helper.rb +7 -0
  20. data/app/jobs/shopping_cart/application_job.rb +4 -0
  21. data/app/mailers/shopping_cart/application_mailer.rb +6 -0
  22. data/app/models/ability.rb +8 -0
  23. data/app/models/shopping_cart/address.rb +7 -0
  24. data/app/models/shopping_cart/application_record.rb +5 -0
  25. data/app/models/shopping_cart/credit_card.rb +9 -0
  26. data/app/models/shopping_cart/discount.rb +5 -0
  27. data/app/models/shopping_cart/order.rb +47 -0
  28. data/app/models/shopping_cart/order_item.rb +9 -0
  29. data/app/models/shopping_cart/shipping.rb +4 -0
  30. data/app/views/layouts/shopping_cart/application.html.haml +12 -0
  31. data/app/views/layouts/shopping_cart/checkout.html.haml +30 -0
  32. data/app/views/shopping_cart/checkout/complete.html.haml +54 -0
  33. data/app/views/shopping_cart/checkout/index.html.haml +23 -0
  34. data/app/views/shopping_cart/checkout/payment.html.haml +26 -0
  35. data/app/views/shopping_cart/checkout/shipping.html.haml +6 -0
  36. data/app/views/shopping_cart/order_items/index.html.haml +68 -0
  37. data/config/locales/shopping_cart.en.yml +35 -0
  38. data/config/routes.rb +16 -0
  39. data/db/migrate/20160810062129_create_shopping_cart_order_items.rb +11 -0
  40. data/db/migrate/20160810063613_create_shopping_cart_orders.rb +14 -0
  41. data/db/migrate/20160811075244_create_shopping_cart_discounts.rb +10 -0
  42. data/db/migrate/20160815065526_create_shopping_cart_addresses.rb +13 -0
  43. data/db/migrate/20160816093049_create_shopping_cart_shippings.rb +8 -0
  44. data/db/migrate/20160817082741_create_shopping_cart_credit_cards.rb +13 -0
  45. data/lib/generators/shopping_cart/config_generator.rb +24 -0
  46. data/lib/generators/shopping_cart/controller_generator.rb +47 -0
  47. data/lib/generators/shopping_cart/translate_generator.rb +43 -0
  48. data/lib/generators/shopping_cart/views_generator.rb +17 -0
  49. data/lib/shopping_cart.rb +7 -0
  50. data/lib/shopping_cart/engine.rb +15 -0
  51. data/lib/shopping_cart/version.rb +3 -0
  52. data/lib/tasks/shopping_cart_tasks.rake +4 -0
  53. metadata +193 -0
@@ -0,0 +1,24 @@
1
+ module ShoppingCart
2
+ class ConfigGenerator < Rails::Generators::Base
3
+ desc 'Create shopping cart initializer file in config'
4
+
5
+ def create_initializer_file
6
+ create_file "config/initializers/shopping_cart.rb",
7
+ "ShoppingCart.user_class = 'User'\n#ShoppingCart.order_steps = %i(shipping payment)"
8
+ end
9
+
10
+ desc 'Copy necessary migrations to app'
11
+
12
+ def copy_migrations
13
+ rake 'shopping_cart:install:migrations'
14
+ end
15
+
16
+ desc 'Mounts engine routes to route.rb'
17
+
18
+ def mount_routes
19
+ inject_into_file 'config/routes.rb', before: "root" do
20
+ "mount ShoppingCart::Engine => '/shopping_cart'\n"
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,47 @@
1
+ module ShoppingCart
2
+ class ControllerGenerator < Rails::Generators::Base
3
+ desc 'Create own steps controller with proper actions'
4
+ argument :name, type: 'string', required: true
5
+ argument :steps, type: 'array', required: true
6
+ def create_steps_controller
7
+ html = ''
8
+ steps.each do |step|
9
+ html +=
10
+ "\tdef #{step}\n\tend\n\tdef add_#{step}\n\tend\n\t"
11
+ end
12
+
13
+ create_file "app/controllers/shopping_cart/#{name.underscore}_controller.rb",
14
+ "module ShoppingCart
15
+ class #{name}Controller < CheckoutController
16
+ layout 'shopping_cart/checkout'
17
+
18
+ #{html}
19
+ end
20
+ end"
21
+ end
22
+
23
+ desc 'create routes for your steps'
24
+
25
+ def create_routes
26
+ html = ''
27
+ steps.each do |step|
28
+ html +=
29
+ "\nget '/checkout/#{step}', to: '#{name.underscore}##{step}'
30
+ \npost '/checkout/add_#{step}', to: '#{name.underscore}#add_#{step}'"
31
+ end
32
+ inject_into_file 'config/routes.rb', before: "root" do
33
+ "\nnamespace 'shopping_cart' do
34
+ #{html}
35
+ \nend\n"
36
+ end
37
+ end
38
+
39
+ desc 'create views for steps'
40
+
41
+ def create_views
42
+ steps.each do |step|
43
+ create_file "app/views/shopping_cart/#{name.underscore}/#{step}.html.haml"
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,43 @@
1
+ module ShoppingCart
2
+ class TranslateGenerator < Rails::Generators::Base
3
+ desc 'Create I18n file'
4
+
5
+ def create_internationalization_file
6
+ create_file "config/locales/shopping_cart.en.yml",
7
+ "en:
8
+ shopping_cart:
9
+ currency: $
10
+ back: Back
11
+ empty_cart: Your cart is empty
12
+ product: Product
13
+ price: Price
14
+ qty: Quantity
15
+ total: Total
16
+ subtotal: Subtotal
17
+ discount: Discount
18
+ clear_cart: Clear your cart
19
+ go_shopping: Proceed shopping
20
+ coupon: Discount coupon
21
+ checkout: Checkout
22
+ address: Address
23
+ complete: Complete
24
+ code: Coupon code
25
+ close: Close
26
+ send: Send
27
+ delivery: Delivery
28
+ summary: Order summary
29
+ place_order: Place order
30
+ first_name: First name
31
+ last_name: Last name
32
+ city: City
33
+ phone: Phone
34
+ details: Details
35
+ payment: Payment
36
+ card_number: Card number
37
+ item_added: You added item to cart
38
+ cart_updated: You updated a cart
39
+ valid_coupon: Your discount is %{amount}% from cart total price
40
+ order_placed: Congratulations! Yout order placed successfully. Will get in touch asap."
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,17 @@
1
+ module ShoppingCart
2
+ class ViewsGenerator < Rails::Generators::Base
3
+ source_root File.expand_path("../../../../app/views", __FILE__)
4
+
5
+ desc 'copy engine views to app'
6
+
7
+ def copy_views
8
+ directory 'shopping_cart', 'app/views/shopping_cart'
9
+ end
10
+
11
+ desc 'copy engine layout to app'
12
+
13
+ def copy_layout
14
+ directory 'layouts/shopping_cart', 'app/views/layouts/shopping_cart'
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ require "shopping_cart/engine"
2
+
3
+ module ShoppingCart
4
+ mattr_accessor :user_class
5
+ mattr_accessor :order_states
6
+ mattr_accessor :order_steps
7
+ end
@@ -0,0 +1,15 @@
1
+ Gem.loaded_specs['shopping_cart'].dependencies.each do |d|
2
+ require d.name
3
+ end
4
+
5
+ require 'shopping_cart/engine'
6
+
7
+ module ShoppingCart
8
+ class Engine < ::Rails::Engine
9
+ isolate_namespace ShoppingCart
10
+
11
+ initializer "shopping_cart.assets.precompile" do |app|
12
+ app.config.assets.precompile += %w( shopping_cart/* order_items.js.coffee order_items.scss)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module ShoppingCart
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :shopping_cart do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shopping_cart
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Igor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-08-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 5.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 5.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: haml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bootstrap-sass
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.3.6
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.3.6
55
+ - !ruby/object:Gem::Dependency
56
+ name: devise
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: cancancan
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.10'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: aasm
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails-i18n
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 5.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 5.0.0
111
+ description: 'Adds shopping cart and checkout functionality to your shop. '
112
+ email:
113
+ - igor12306@mail.ru
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - MIT-LICENSE
119
+ - README.md
120
+ - Rakefile
121
+ - app/assets/config/shopping_cart_manifest.js
122
+ - app/assets/images/shopping_cart/back.png
123
+ - app/assets/images/shopping_cart/delete.png
124
+ - app/assets/images/shopping_cart/empty_cart.png
125
+ - app/assets/images/shopping_cart/refresh.png
126
+ - app/assets/javascripts/shopping_cart/application.js
127
+ - app/assets/javascripts/shopping_cart/order_items.js.coffee
128
+ - app/assets/stylesheets/shopping_cart/application.scss
129
+ - app/assets/stylesheets/shopping_cart/order_items.scss
130
+ - app/controllers/shopping_cart/application_controller.rb
131
+ - app/controllers/shopping_cart/checkout_controller.rb
132
+ - app/controllers/shopping_cart/order_items_controller.rb
133
+ - app/helpers/shopping_cart/application_helper.rb
134
+ - app/helpers/shopping_cart/order_items_helper.rb
135
+ - app/helpers/shopping_cart/orders_helper.rb
136
+ - app/jobs/shopping_cart/application_job.rb
137
+ - app/mailers/shopping_cart/application_mailer.rb
138
+ - app/models/ability.rb
139
+ - app/models/shopping_cart/address.rb
140
+ - app/models/shopping_cart/application_record.rb
141
+ - app/models/shopping_cart/credit_card.rb
142
+ - app/models/shopping_cart/discount.rb
143
+ - app/models/shopping_cart/order.rb
144
+ - app/models/shopping_cart/order_item.rb
145
+ - app/models/shopping_cart/shipping.rb
146
+ - app/views/layouts/shopping_cart/application.html.haml
147
+ - app/views/layouts/shopping_cart/checkout.html.haml
148
+ - app/views/shopping_cart/checkout/complete.html.haml
149
+ - app/views/shopping_cart/checkout/index.html.haml
150
+ - app/views/shopping_cart/checkout/payment.html.haml
151
+ - app/views/shopping_cart/checkout/shipping.html.haml
152
+ - app/views/shopping_cart/order_items/index.html.haml
153
+ - config/locales/shopping_cart.en.yml
154
+ - config/routes.rb
155
+ - db/migrate/20160810062129_create_shopping_cart_order_items.rb
156
+ - db/migrate/20160810063613_create_shopping_cart_orders.rb
157
+ - db/migrate/20160811075244_create_shopping_cart_discounts.rb
158
+ - db/migrate/20160815065526_create_shopping_cart_addresses.rb
159
+ - db/migrate/20160816093049_create_shopping_cart_shippings.rb
160
+ - db/migrate/20160817082741_create_shopping_cart_credit_cards.rb
161
+ - lib/generators/shopping_cart/config_generator.rb
162
+ - lib/generators/shopping_cart/controller_generator.rb
163
+ - lib/generators/shopping_cart/translate_generator.rb
164
+ - lib/generators/shopping_cart/views_generator.rb
165
+ - lib/shopping_cart.rb
166
+ - lib/shopping_cart/engine.rb
167
+ - lib/shopping_cart/version.rb
168
+ - lib/tasks/shopping_cart_tasks.rake
169
+ homepage: https://github.com/rockandruby/shopping_cart
170
+ licenses:
171
+ - MIT
172
+ metadata: {}
173
+ post_install_message:
174
+ rdoc_options: []
175
+ require_paths:
176
+ - lib
177
+ required_ruby_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ requirements: []
188
+ rubyforge_project:
189
+ rubygems_version: 2.5.1
190
+ signing_key:
191
+ specification_version: 4
192
+ summary: Shopping cart and checkout
193
+ test_files: []