refinerycms-stores 0.0.16 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. data/Gemfile +2 -0
  2. data/VERSION +1 -1
  3. data/app/assets/images/Excel.png +0 -0
  4. data/app/assets/images/PowerPoint.png +0 -0
  5. data/app/assets/images/Word.png +0 -0
  6. data/app/assets/images/audio-icon.png +0 -0
  7. data/app/assets/images/camera-icon.png +0 -0
  8. data/app/assets/images/html-icon.png +0 -0
  9. data/app/assets/images/muku-doc-font-128.png +0 -0
  10. data/app/assets/images/pdf-icon.png +0 -0
  11. data/app/assets/images/print-icon.png +0 -0
  12. data/app/assets/images/video-icon.png +0 -0
  13. data/app/assets/images/warning-icon.png +0 -0
  14. data/app/assets/images/zip_thumb.png +0 -0
  15. data/app/assets/stylesheets/refinery/refinerycms-stores.sass +66 -0
  16. data/app/controllers/refinery/customers/customers_controller.rb +35 -17
  17. data/app/controllers/refinery/orders/admin/orders_controller.rb +2 -1
  18. data/app/controllers/refinery/orders/orders_controller.rb +14 -9
  19. data/app/controllers/refinery/products/admin/digidownloads_controller.rb +39 -0
  20. data/app/controllers/refinery/products/admin/products_controller.rb +54 -4
  21. data/app/controllers/refinery/products/digidownloads_controller.rb +32 -0
  22. data/app/controllers/refinery/products/products_controller.rb +3 -0
  23. data/app/controllers/refinery/stores/stores_controller.rb +3 -2
  24. data/app/controllers/refinery/stores_application_controller.rb +6 -1
  25. data/app/helpers/refinery/stores/stores_helper.rb +4 -3
  26. data/app/models/refinery/addresses/address.rb +42 -0
  27. data/app/models/refinery/customers/customer.rb +7 -1
  28. data/app/models/refinery/orders/line_item.rb +10 -0
  29. data/app/models/refinery/orders/order.rb +59 -47
  30. data/app/models/refinery/products/digidownload.rb +181 -0
  31. data/app/models/refinery/products/product.rb +21 -1
  32. data/app/views/refinery/customers/customers/edit.html.haml +54 -0
  33. data/app/views/refinery/customers/{new.html.haml → customers/new.html.haml} +10 -3
  34. data/app/views/refinery/orders/admin/orders/_actions.html.haml +4 -0
  35. data/app/views/refinery/orders/admin/orders/_order.html.haml +13 -0
  36. data/app/views/refinery/orders/admin/orders/_orders.html.haml +2 -0
  37. data/app/views/refinery/orders/admin/orders/_records.html.haml +12 -0
  38. data/app/views/refinery/orders/admin/orders/_sortable_list.html.haml +4 -0
  39. data/app/views/refinery/orders/admin/orders/index.html.haml +5 -0
  40. data/app/views/refinery/orders/admin/orders/show.html.haml +80 -0
  41. data/app/views/refinery/orders/orders/edit.html.haml +2 -2
  42. data/app/views/refinery/orders/orders/index.html.haml +19 -4
  43. data/app/views/refinery/orders/orders/show.html.haml +68 -25
  44. data/app/views/refinery/products/admin/digidownloads/_actions.html.haml +19 -0
  45. data/app/views/refinery/products/admin/digidownloads/_digidownload.html.haml +13 -0
  46. data/app/views/refinery/products/admin/digidownloads/_digidownloads.html.haml +2 -0
  47. data/app/views/refinery/products/admin/digidownloads/_form.html.haml +41 -0
  48. data/app/views/refinery/products/admin/digidownloads/_records.html.haml +12 -0
  49. data/app/views/refinery/products/admin/digidownloads/_sortable_list.html.haml +4 -0
  50. data/app/views/refinery/products/admin/digidownloads/edit.html.haml +2 -0
  51. data/app/views/refinery/products/admin/digidownloads/index.html.haml +6 -0
  52. data/app/views/refinery/products/admin/digidownloads/new.html.haml +2 -0
  53. data/app/views/refinery/products/admin/products/_form.html.haml +98 -0
  54. data/app/views/refinery/products/digidownloads/index.html.haml +28 -0
  55. data/app/views/refinery/products/digidownloads/show.html.haml +39 -0
  56. data/app/views/refinery/products/products/show.html.haml +10 -9
  57. data/app/views/refinery/shared/_address.html.haml +18 -0
  58. data/app/views/refinery/{orders/orders → shared}/_address_form.html.haml +0 -0
  59. data/app/views/refinery/{stores/stores → shared}/_cart.html.haml +2 -2
  60. data/app/views/refinery/{stores/stores → shared}/_cart_item.html.haml +0 -0
  61. data/app/views/refinery/shared/_customer_head.html.haml +20 -0
  62. data/app/views/refinery/stores/admin/stores/_actions.html.haml +46 -0
  63. data/app/views/refinery/stores/stores/show.html.haml +1 -1
  64. data/config/locales/en.yml +17 -0
  65. data/config/routes.rb +24 -9
  66. data/db/migrate/3_create_orders_orders.rb +2 -0
  67. data/db/migrate/7_create_products_digidownloads.rb +33 -0
  68. data/lib/refinery/addresses.rb +11 -11
  69. data/lib/refinery/addresses/engine.rb +3 -3
  70. data/lib/refinery/auth_key.rb +44 -0
  71. data/lib/refinery/customers.rb +11 -11
  72. data/lib/refinery/customers/engine.rb +3 -3
  73. data/lib/refinery/orders.rb +1 -1
  74. data/lib/refinery/products.rb +2 -2
  75. data/lib/refinery/products/engine.rb +2 -2
  76. data/lib/refinery/stores.rb +1 -0
  77. data/lib/refinery/stores/authenticated_system.rb +25 -0
  78. data/lib/refinery/stores/engine.rb +19 -0
  79. data/lib/refinerycms-stores.rb +5 -2
  80. data/readme.md +32 -1
  81. data/refinerycms-stores.gemspec +54 -20
  82. metadata +87 -37
  83. data/app/views/refinery/customers/edit.html.haml +0 -17
  84. data/app/views/refinery/orders/admin/orders/_actions.html.erb +0 -25
  85. data/app/views/refinery/orders/admin/orders/_form.html.erb +0 -122
  86. data/app/views/refinery/orders/admin/orders/_order.html.erb +0 -20
  87. data/app/views/refinery/orders/admin/orders/_orders.html.erb +0 -2
  88. data/app/views/refinery/orders/admin/orders/_records.html.erb +0 -18
  89. data/app/views/refinery/orders/admin/orders/_sortable_list.html.erb +0 -5
  90. data/app/views/refinery/orders/admin/orders/edit.html.erb +0 -1
  91. data/app/views/refinery/orders/admin/orders/index.html.erb +0 -7
  92. data/app/views/refinery/orders/admin/orders/new.html.erb +0 -1
  93. data/app/views/refinery/products/admin/products/_form.html.erb +0 -127
  94. data/app/views/refinery/stores/admin/stores/_actions.html.erb +0 -57
  95. data/app/views/refinery/stores/stores/_customer_head.html.haml +0 -12
@@ -18,6 +18,8 @@ class CreateOrdersOrders < ActiveRecord::Migration
18
18
  t.integer :cc_expiry_year
19
19
  t.datetime :cc_purchased_on
20
20
  t.string :cc_confirmation_id
21
+ t.boolean :has_digidownloads, :default => false
22
+ t.boolean :has_registrations, :default => false
21
23
  t.integer :position
22
24
 
23
25
  t.timestamps
@@ -0,0 +1,33 @@
1
+ class CreateProductsDigidownloads < ActiveRecord::Migration
2
+
3
+ def up
4
+ create_table :refinery_digidownloads do |t|
5
+ t.references :product
6
+ t.string :download_token, :unique => true, :null => false
7
+ t.integer :download_completed, :default => 0
8
+ t.integer :download_remaining, :default => 0
9
+ t.integer :download_count, :default => 0
10
+ t.integer :restrict_count
11
+ t.integer :restrict_days
12
+ t.boolean :is_defunct, :default => false
13
+
14
+ t.has_attached_file :doc
15
+ t.has_attached_file :preview
16
+
17
+ t.integer :position
18
+
19
+ t.timestamps
20
+ end
21
+
22
+ add_index :refinery_digidownloads, :product_id
23
+ add_index :refinery_digidownloads, :download_token
24
+
25
+ end
26
+
27
+ def down
28
+
29
+ drop_table :refinery_digidownloads
30
+
31
+ end
32
+
33
+ end
@@ -1,21 +1,21 @@
1
1
  require 'refinerycms-core'
2
2
 
3
3
  module Refinery
4
- autoload :StoresGenerator, 'generators/refinery/stores_generator'
4
+ # autoload :StoresGenerator, 'generators/refinery/stores_generator'
5
5
 
6
6
  module Addresses
7
- require 'refinery/addresses/engine'
7
+ # require 'refinery/addresses/engine'
8
8
 
9
- class << self
10
- attr_writer :root
9
+ # class << self
10
+ # attr_writer :root
11
11
 
12
- def root
13
- @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
- end
12
+ # def root
13
+ # @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
+ # end
15
15
 
16
- def factory_paths
17
- @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
- end
19
- end
16
+ # def factory_paths
17
+ # @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
+ # end
19
+ # end
20
20
  end
21
21
  end
@@ -4,9 +4,9 @@ module Refinery
4
4
  include Refinery::Engine
5
5
  isolate_namespace Refinery::Addresses
6
6
 
7
- engine_name :refinery_stores
7
+ # engine_name :refinery_stores
8
8
 
9
- initializer "register refinerycms_addresses plugin" do |app|
9
+ # initializer "register refinerycms_addresses plugin" do |app|
10
10
  # Refinery::Plugin.register do |plugin|
11
11
  # plugin.name = "addresses"
12
12
  # plugin.url = {
@@ -21,7 +21,7 @@ module Refinery
21
21
  # }
22
22
  #
23
23
  # end
24
- end
24
+ # end
25
25
 
26
26
  config.after_initialize do
27
27
  Refinery.register_engine(Refinery::Addresses)
@@ -0,0 +1,44 @@
1
+ # #########################################################################
2
+ # (c) 2011 David Anderson , All rights reserved; modifications, from whatever source, become IP of David Anderson
3
+ # #########################################################################
4
+ require 'digest/sha1'
5
+
6
+ # #########################################################################
7
+ # DRY place for all authorization keycode preparation
8
+ # #########################################################################
9
+ module Refinery
10
+
11
+ class AuthKey
12
+
13
+ # #########################################################################
14
+
15
+ # ------------------------------------------------------------------------
16
+ # ------------------------------------------------------------------------
17
+ def self.secure_digest(*args)
18
+ Digest::SHA1.hexdigest(args.flatten.join('--'))
19
+ end
20
+
21
+ # ------------------------------------------------------------------------
22
+ # ------------------------------------------------------------------------
23
+ def self.make_token
24
+ secure_digest(Time.now, (1..10).map{ rand.to_s })
25
+ end
26
+
27
+ # ------------------------------------------------------------------------
28
+ # make_auth_key -- returns a SHA-encrypted randomized key from time & seed
29
+ # ------------------------------------------------------------------------
30
+ def self.make_auth_key( seed='' )
31
+ return Digest::SHA1.hexdigest( (Time.now.to_s + seed.to_s ).split(//).sort_by {rand}.join )
32
+ end
33
+
34
+
35
+ # ------------------------------------------------------------------------
36
+ # ------------------------------------------------------------------------
37
+
38
+ # ------------------------------------------------------------------------
39
+ # ------------------------------------------------------------------------
40
+
41
+ # #########################################################################
42
+ # #########################################################################
43
+ end # class AuthKey
44
+ end # mod Refinery
@@ -1,21 +1,21 @@
1
1
  require 'refinerycms-core'
2
2
 
3
3
  module Refinery
4
- autoload :StoresGenerator, 'generators/refinery/stores_generator'
4
+ # autoload :StoresGenerator, 'generators/refinery/stores_generator'
5
5
 
6
6
  module Customers
7
- require 'refinery/customers/engine'
7
+ # require 'refinery/customers/engine'
8
8
 
9
- class << self
10
- attr_writer :root
9
+ # class << self
10
+ # attr_writer :root
11
11
 
12
- def root
13
- @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
- end
12
+ # def root
13
+ # @root ||= Pathname.new(File.expand_path('../../../', __FILE__))
14
+ # end
15
15
 
16
- def factory_paths
17
- @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
- end
19
- end
16
+ # def factory_paths
17
+ # @factory_paths ||= [ root.join('spec', 'factories').to_s ]
18
+ # end
19
+ # end
20
20
  end
21
21
  end
@@ -4,9 +4,9 @@ module Refinery
4
4
  include Refinery::Engine
5
5
  isolate_namespace Refinery::Customers
6
6
 
7
- engine_name :refinery_stores
7
+ # engine_name :refinery_stores
8
8
 
9
- initializer "register refinerycms_customers plugin" do |app|
9
+ # initializer "register refinerycms_customers plugin" do |app|
10
10
  # Refinery::Plugin.register do |plugin|
11
11
  # plugin.name = "customers"
12
12
  # plugin.url = {
@@ -21,7 +21,7 @@ module Refinery
21
21
  # }
22
22
  #
23
23
  # end
24
- end
24
+ # end
25
25
 
26
26
  config.after_initialize do
27
27
  Refinery.register_engine(Refinery::Customers)
@@ -1,7 +1,7 @@
1
1
  require 'refinerycms-core'
2
2
 
3
3
  module Refinery
4
- autoload :StoresGenerator, 'generators/refinery/stores_generator'
4
+ # autoload :StoresGenerator, 'generators/refinery/stores_generator'
5
5
 
6
6
  module Orders
7
7
  require 'refinery/orders/engine'
@@ -1,10 +1,10 @@
1
1
  require 'refinerycms-core'
2
2
 
3
3
  module Refinery
4
- autoload :StoresGenerator, 'generators/refinery/stores_generator'
4
+ # autoload :StoresGenerator, 'generators/refinery/stores_generator'
5
5
 
6
6
  module Products
7
- require 'refinery/products/engine'
7
+ require 'refinery/products/engine'
8
8
 
9
9
  class << self
10
10
  attr_writer :root
@@ -6,7 +6,7 @@ module Refinery
6
6
 
7
7
  engine_name :refinery_stores
8
8
 
9
- initializer "register refinerycms_products plugin" do |app|
9
+ # initializer "register refinerycms_products plugin" do |app|
10
10
  # Refinery::Plugin.register do |plugin|
11
11
  # plugin.name = "products"
12
12
  # plugin.url = {
@@ -21,7 +21,7 @@ module Refinery
21
21
  # }
22
22
  #
23
23
  # end
24
- end
24
+ # end
25
25
 
26
26
  config.after_initialize do
27
27
  Refinery.register_engine(Refinery::Products)
@@ -2,6 +2,7 @@ require 'refinerycms-core'
2
2
 
3
3
  module Refinery
4
4
  autoload :StoresGenerator, 'generators/refinery/stores_generator'
5
+ require 'refinery/stores/authenticated_system'
5
6
 
6
7
  module Stores
7
8
  require 'refinery/stores/engine'
@@ -0,0 +1,25 @@
1
+ module Refinery
2
+ module AuthenticatedSystem
3
+
4
+ def after_sign_in_path_for(resource_or_scope)
5
+ store_root
6
+ end
7
+
8
+ def after_sign_out_path_for(resource_or_scope)
9
+ store_root
10
+ end
11
+
12
+ def after_update_path_for(resource)
13
+ store_root
14
+ end
15
+
16
+ def after_sign_up_path_for(resource)
17
+ store_root
18
+ end
19
+
20
+ private
21
+ def store_root
22
+ refinery.stores_root_url
23
+ end
24
+ end
25
+ end
@@ -26,6 +26,25 @@ module Refinery
26
26
  config.after_initialize do
27
27
  Refinery.register_engine(Refinery::Stores)
28
28
  end
29
+
30
+ config.to_prepare do
31
+ ::Refinery::User.class_eval do
32
+
33
+
34
+ has_many :addresses, :class_name => ::Refinery::Addresses::Address, :foreign_key => :customer_id
35
+ has_many :orders, :class_name => ::Refinery::Orders::Order, :foreign_key => :order_customer_id
36
+ has_many :digidownloads, :through => :orders, :class_name => ::Refinery::Products::Digidownload
37
+
38
+ has_one :billing_address, :class_name => ::Refinery::Addresses::Address,
39
+ :foreign_key => :customer_id,
40
+ :conditions => { :is_billing => true, :order_id => nil }
41
+
42
+ has_one :shipping_address, :class_name => ::Refinery::Addresses::Address,
43
+ :foreign_key => :customer_id,
44
+ :conditions => { :is_billing => false, :order_id => nil }
45
+
46
+ end # extend user for customers
47
+ end # to prepare
29
48
  end
30
49
  end
31
50
  end
@@ -1,8 +1,11 @@
1
1
  require 'refinery/stores'
2
- require 'refinery/products'
2
+
3
3
  require 'refinery/cart'
4
4
  require 'refinery/cart_item'
5
+ require 'refinery/store_gateway'
6
+ require 'refinery/auth_key'
7
+
8
+ require 'refinery/products'
5
9
  require 'refinery/orders'
6
10
  require 'refinery/addresses'
7
- require 'refinery/store_gateway'
8
11
  require 'refinery/customers'
data/readme.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Stores engine for Refinery CMS.
2
2
 
3
+ ## *** STILL IN DEVELOPMENT ***
4
+
5
+ release: 0.1.0
6
+ Basic e-commerce shopping cart for digital downloads on the Stripe payments gateway.
7
+
8
+ Here's what works:
9
+
10
+ * Customer: signup, signin, signout, edit customer profile
11
+ * Stores: create, delete, edit, show stores; however, only 1 store (:is_active => true) is ever shown to customers
12
+ * The active store will always show the entire catalog (no paging yet); click name to view, click add-to-cart
13
+ * Products: create, delete, edit
14
+ * Digital Downloads: add, edit, show, play, attach/detach to a product, index
15
+ * Cart: exists only within context of the session; lose the session, lose the cart
16
+ * Checkout: converts cart to proto-Order
17
+ * Orders: order state machine works; edit order, enter credit card, purchase, index, show
18
+ * admin dashboard: view, track orders
19
+ * Payment gateway: Stripe is default, setup keys in Settings (first time usage creates empty default secret, API); Stripe is working for purchases.
20
+ * Styling: very minimal (in RefineryCMS tradition), but fully capable of supporting fancy CSS styling
21
+
22
+ ## TO-DO List ##
23
+
24
+ * shipping
25
+ * tax modes
26
+ * product variations
27
+ * related products
28
+ * registrations (register for classes, events, seminars, etc)
29
+ * discounts
30
+ * product inventory add/subtract upon purchase
31
+ * digi-downloads: restrict download counts or days after purchase
32
+ * order fulfillment (admin): need process actions to ship
33
+
3
34
  ## How to build this engine as a gem
4
35
 
5
36
  cd vendor/engines/stores
@@ -7,4 +38,4 @@
7
38
  gem install refinerycms-stores.gem
8
39
 
9
40
  # Sign up for a http://rubygems.org/ account and publish the gem
10
- gem push refinerycms-stores.gem
41
+ gem push refinerycms-stores.gem
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "refinerycms-stores"
8
- s.version = "0.0.16"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daudi Amani"]
12
- s.date = "2012-03-20"
12
+ s.date = "2012-04-18"
13
13
  s.description = "Complete engine for Stripe gateway-based shopping cart to be used with a RefineryCMS project"
14
14
  s.email = "dsaronin@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -21,12 +21,26 @@ Gem::Specification.new do |s|
21
21
  "LICENSE.txt",
22
22
  "Rakefile",
23
23
  "VERSION",
24
+ "app/assets/images/Excel.png",
25
+ "app/assets/images/PowerPoint.png",
26
+ "app/assets/images/Word.png",
27
+ "app/assets/images/audio-icon.png",
28
+ "app/assets/images/camera-icon.png",
29
+ "app/assets/images/html-icon.png",
30
+ "app/assets/images/muku-doc-font-128.png",
31
+ "app/assets/images/pdf-icon.png",
32
+ "app/assets/images/print-icon.png",
33
+ "app/assets/images/video-icon.png",
34
+ "app/assets/images/warning-icon.png",
35
+ "app/assets/images/zip_thumb.png",
24
36
  "app/assets/stylesheets/refinery/refinerycms-stores.sass",
25
37
  "app/controllers/refinery/addresses/admin/addresses_controller.rb",
26
38
  "app/controllers/refinery/customers/customers_controller.rb",
27
39
  "app/controllers/refinery/orders/admin/orders_controller.rb",
28
40
  "app/controllers/refinery/orders/orders_controller.rb",
41
+ "app/controllers/refinery/products/admin/digidownloads_controller.rb",
29
42
  "app/controllers/refinery/products/admin/products_controller.rb",
43
+ "app/controllers/refinery/products/digidownloads_controller.rb",
30
44
  "app/controllers/refinery/products/products_controller.rb",
31
45
  "app/controllers/refinery/stores/admin/stores_controller.rb",
32
46
  "app/controllers/refinery/stores/stores_controller.rb",
@@ -37,6 +51,7 @@ Gem::Specification.new do |s|
37
51
  "app/models/refinery/customers/customer.rb",
38
52
  "app/models/refinery/orders/line_item.rb",
39
53
  "app/models/refinery/orders/order.rb",
54
+ "app/models/refinery/products/digidownload.rb",
40
55
  "app/models/refinery/products/product.rb",
41
56
  "app/models/refinery/stores/store.rb",
42
57
  "app/views/refinery/addresses/admin/addresses/_actions.html.erb",
@@ -48,18 +63,15 @@ Gem::Specification.new do |s|
48
63
  "app/views/refinery/addresses/admin/addresses/edit.html.erb",
49
64
  "app/views/refinery/addresses/admin/addresses/index.html.erb",
50
65
  "app/views/refinery/addresses/admin/addresses/new.html.erb",
51
- "app/views/refinery/customers/edit.html.haml",
52
- "app/views/refinery/customers/new.html.haml",
53
- "app/views/refinery/orders/admin/orders/_actions.html.erb",
54
- "app/views/refinery/orders/admin/orders/_form.html.erb",
55
- "app/views/refinery/orders/admin/orders/_order.html.erb",
56
- "app/views/refinery/orders/admin/orders/_orders.html.erb",
57
- "app/views/refinery/orders/admin/orders/_records.html.erb",
58
- "app/views/refinery/orders/admin/orders/_sortable_list.html.erb",
59
- "app/views/refinery/orders/admin/orders/edit.html.erb",
60
- "app/views/refinery/orders/admin/orders/index.html.erb",
61
- "app/views/refinery/orders/admin/orders/new.html.erb",
62
- "app/views/refinery/orders/orders/_address_form.html.haml",
66
+ "app/views/refinery/customers/customers/edit.html.haml",
67
+ "app/views/refinery/customers/customers/new.html.haml",
68
+ "app/views/refinery/orders/admin/orders/_actions.html.haml",
69
+ "app/views/refinery/orders/admin/orders/_order.html.haml",
70
+ "app/views/refinery/orders/admin/orders/_orders.html.haml",
71
+ "app/views/refinery/orders/admin/orders/_records.html.haml",
72
+ "app/views/refinery/orders/admin/orders/_sortable_list.html.haml",
73
+ "app/views/refinery/orders/admin/orders/index.html.haml",
74
+ "app/views/refinery/orders/admin/orders/show.html.haml",
63
75
  "app/views/refinery/orders/orders/_card_form.html.haml",
64
76
  "app/views/refinery/orders/orders/_order_snapshot.html.haml",
65
77
  "app/views/refinery/orders/orders/confirmation.html.haml",
@@ -67,8 +79,17 @@ Gem::Specification.new do |s|
67
79
  "app/views/refinery/orders/orders/index.html.haml",
68
80
  "app/views/refinery/orders/orders/purchase.html.haml",
69
81
  "app/views/refinery/orders/orders/show.html.haml",
82
+ "app/views/refinery/products/admin/digidownloads/_actions.html.haml",
83
+ "app/views/refinery/products/admin/digidownloads/_digidownload.html.haml",
84
+ "app/views/refinery/products/admin/digidownloads/_digidownloads.html.haml",
85
+ "app/views/refinery/products/admin/digidownloads/_form.html.haml",
86
+ "app/views/refinery/products/admin/digidownloads/_records.html.haml",
87
+ "app/views/refinery/products/admin/digidownloads/_sortable_list.html.haml",
88
+ "app/views/refinery/products/admin/digidownloads/edit.html.haml",
89
+ "app/views/refinery/products/admin/digidownloads/index.html.haml",
90
+ "app/views/refinery/products/admin/digidownloads/new.html.haml",
70
91
  "app/views/refinery/products/admin/products/_actions.html.erb",
71
- "app/views/refinery/products/admin/products/_form.html.erb",
92
+ "app/views/refinery/products/admin/products/_form.html.haml",
72
93
  "app/views/refinery/products/admin/products/_product.html.erb",
73
94
  "app/views/refinery/products/admin/products/_products.html.erb",
74
95
  "app/views/refinery/products/admin/products/_records.html.erb",
@@ -76,8 +97,15 @@ Gem::Specification.new do |s|
76
97
  "app/views/refinery/products/admin/products/edit.html.erb",
77
98
  "app/views/refinery/products/admin/products/index.html.erb",
78
99
  "app/views/refinery/products/admin/products/new.html.erb",
100
+ "app/views/refinery/products/digidownloads/index.html.haml",
101
+ "app/views/refinery/products/digidownloads/show.html.haml",
79
102
  "app/views/refinery/products/products/show.html.haml",
80
- "app/views/refinery/stores/admin/stores/_actions.html.erb",
103
+ "app/views/refinery/shared/_address.html.haml",
104
+ "app/views/refinery/shared/_address_form.html.haml",
105
+ "app/views/refinery/shared/_cart.html.haml",
106
+ "app/views/refinery/shared/_cart_item.html.haml",
107
+ "app/views/refinery/shared/_customer_head.html.haml",
108
+ "app/views/refinery/stores/admin/stores/_actions.html.haml",
81
109
  "app/views/refinery/stores/admin/stores/_form.html.erb",
82
110
  "app/views/refinery/stores/admin/stores/_records.html.erb",
83
111
  "app/views/refinery/stores/admin/stores/_sortable_list.html.erb",
@@ -86,9 +114,6 @@ Gem::Specification.new do |s|
86
114
  "app/views/refinery/stores/admin/stores/edit.html.erb",
87
115
  "app/views/refinery/stores/admin/stores/index.html.erb",
88
116
  "app/views/refinery/stores/admin/stores/new.html.erb",
89
- "app/views/refinery/stores/stores/_cart.html.haml",
90
- "app/views/refinery/stores/stores/_cart_item.html.haml",
91
- "app/views/refinery/stores/stores/_customer_head.html.haml",
92
117
  "app/views/refinery/stores/stores/_list_product.html.haml",
93
118
  "app/views/refinery/stores/stores/index.html.haml",
94
119
  "app/views/refinery/stores/stores/show.html.haml",
@@ -104,10 +129,12 @@ Gem::Specification.new do |s|
104
129
  "db/migrate/4_create_orders_line_items.rb",
105
130
  "db/migrate/5_create_addresses_addresses.rb",
106
131
  "db/migrate/6_create_customers_customers.rb",
132
+ "db/migrate/7_create_products_digidownloads.rb",
107
133
  "db/seeds.rb",
108
134
  "lib/generators/refinery/stores_generator.rb",
109
135
  "lib/refinery/addresses.rb",
110
136
  "lib/refinery/addresses/engine.rb",
137
+ "lib/refinery/auth_key.rb",
111
138
  "lib/refinery/cart.rb",
112
139
  "lib/refinery/cart_item.rb",
113
140
  "lib/refinery/customers.rb",
@@ -118,6 +145,7 @@ Gem::Specification.new do |s|
118
145
  "lib/refinery/products/engine.rb",
119
146
  "lib/refinery/store_gateway.rb",
120
147
  "lib/refinery/stores.rb",
148
+ "lib/refinery/stores/authenticated_system.rb",
121
149
  "lib/refinery/stores/engine.rb",
122
150
  "lib/refinerycms-stores.rb",
123
151
  "lib/tasks/refinery/stores.rake",
@@ -144,7 +172,7 @@ Gem::Specification.new do |s|
144
172
  s.homepage = "http://github.com/dsaronin@gmail.com/refinerycms-stores"
145
173
  s.licenses = ["MIT"]
146
174
  s.require_paths = ["lib"]
147
- s.rubygems_version = "1.8.10"
175
+ s.rubygems_version = "1.8.15"
148
176
  s.summary = "refinerycms shopping cart engine"
149
177
 
150
178
  if s.respond_to? :specification_version then
@@ -158,6 +186,8 @@ Gem::Specification.new do |s|
158
186
  s.add_runtime_dependency(%q<ruby_parser>, [">= 0"])
159
187
  s.add_runtime_dependency(%q<haml-rails>, [">= 0"])
160
188
  s.add_runtime_dependency(%q<stripe>, [">= 0"])
189
+ s.add_runtime_dependency(%q<paperclip>, [">= 0"])
190
+ s.add_runtime_dependency(%q<aws-sdk>, [">= 0"])
161
191
  s.add_development_dependency(%q<jeweler>, [">= 0"])
162
192
  else
163
193
  s.add_dependency(%q<refinerycms>, [">= 2.0.0"])
@@ -167,6 +197,8 @@ Gem::Specification.new do |s|
167
197
  s.add_dependency(%q<ruby_parser>, [">= 0"])
168
198
  s.add_dependency(%q<haml-rails>, [">= 0"])
169
199
  s.add_dependency(%q<stripe>, [">= 0"])
200
+ s.add_dependency(%q<paperclip>, [">= 0"])
201
+ s.add_dependency(%q<aws-sdk>, [">= 0"])
170
202
  s.add_dependency(%q<jeweler>, [">= 0"])
171
203
  end
172
204
  else
@@ -177,6 +209,8 @@ Gem::Specification.new do |s|
177
209
  s.add_dependency(%q<ruby_parser>, [">= 0"])
178
210
  s.add_dependency(%q<haml-rails>, [">= 0"])
179
211
  s.add_dependency(%q<stripe>, [">= 0"])
212
+ s.add_dependency(%q<paperclip>, [">= 0"])
213
+ s.add_dependency(%q<aws-sdk>, [">= 0"])
180
214
  s.add_dependency(%q<jeweler>, [">= 0"])
181
215
  end
182
216
  end