shop_bunny 0.7 → 0.7.0.1

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.
@@ -0,0 +1,16 @@
1
+ module ActionController
2
+ class Base
3
+ protected
4
+ # The default behaviour is to map a Cart to a session variable 'cart_id'.
5
+ # You might want to overwrite this method to authorize a user.
6
+ # TODO This could result in a mass of empty carts. A Problem?
7
+ def find_cart
8
+ if session[:cart_id]
9
+ @cart = Cart.find(session[:cart_id])
10
+ else
11
+ @cart = Cart.create
12
+ session[:cart_id] = @cart.id
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # Add other envs here e.g. cucumber
2
+ if Rails.env.test?
3
+ require 'machinist'
4
+ # require 'machinist/active_record'
5
+
6
+ def Machinist.clear!
7
+ Sham.clear
8
+ # ActiveRecord::Base.clear_blueprints!
9
+ end
10
+
11
+ def Machinist.load_blueprints
12
+ Dir[Rails.root.join("test/blueprints", "**", "*.rb")].each do |file|
13
+ load file
14
+ end
15
+ end
16
+
17
+ # Put Machinist.load_blueprints in the test_helper.rb
18
+
19
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ # This is where you can customize the innards of ShopBunny.
3
+ ShopBunny.setup do |config|
4
+ # ShopBunny.item_model_class_name should return the name of the class of
5
+ # which the items/products/things in your store are an instance of.
6
+ # The default is 'Item'
7
+ #
8
+ # config.item_model_class_name = 'Product'
9
+
10
+ # ShopBunny.shipping_cost_calculator should return a class or module that
11
+ # has a method 'costs_for(cart)' which returns a float (the shipping cost).
12
+ # Note: You may also customize this behaviour by overwriting
13
+ # Cart#shipping_cost_calculator
14
+ # The default is ShopBunny::ShippingCostCalculator
15
+ #
16
+ # config.shipping_cost_calculator = MyShippingCostCalculator
17
+
18
+ # ShopBunny.controller_enhancement is a module that is included into the
19
+ # CartsController. You can e.g. control which layout is used for rendering
20
+ # the cart or add filters. E.g. just drop a ShopBunnyEnhancements module in
21
+ # lib/shop_bunny_enhancements.rb and use it like this:
22
+ # require 'shop_bunny_enhancements'
23
+ # config.controller_enhancement = ShopBunnyEnhancements
24
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,63 @@
1
+ Rails.application.routes.draw do
2
+ resource :cart, :only => [:show, :update] do
3
+ get :add_item, :as => 'add_item_to'
4
+ get :remove_item, :as => 'remove_item_from'
5
+ end
6
+
7
+ # The priority is based upon order of creation:
8
+ # first created -> highest priority.
9
+
10
+ # Sample of regular route:
11
+ # match 'products/:id' => 'catalog#view'
12
+ # Keep in mind you can assign values other than :controller and :action
13
+
14
+ # Sample of named route:
15
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
16
+ # This route can be invoked with purchase_url(:id => product.id)
17
+
18
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
19
+ # resources :products
20
+
21
+ # Sample resource route with options:
22
+ # resources :products do
23
+ # member do
24
+ # get 'short'
25
+ # post 'toggle'
26
+ # end
27
+ #
28
+ # collection do
29
+ # get 'sold'
30
+ # end
31
+ # end
32
+
33
+ # Sample resource route with sub-resources:
34
+ # resources :products do
35
+ # resources :comments, :sales
36
+ # resource :seller
37
+ # end
38
+
39
+ # Sample resource route with more complex sub-resources
40
+ # resources :products do
41
+ # resources :comments
42
+ # resources :sales do
43
+ # get 'recent', :on => :collection
44
+ # end
45
+ # end
46
+
47
+ # Sample resource route within a namespace:
48
+ # namespace :admin do
49
+ # # Directs /admin/products/* to Admin::ProductsController
50
+ # # (app/controllers/admin/products_controller.rb)
51
+ # resources :products
52
+ # end
53
+
54
+ # You can have the root of your site routed with "root"
55
+ # just remember to delete public/index.html.
56
+ # root :to => "welcome#index"
57
+
58
+ # See how all your routes lay out with "rake routes"
59
+
60
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
61
+ # Note: This route will make all actions in every controller accessible via GET requests.
62
+ # match ':controller(/:action(/:id(.:format)))'
63
+ end
metadata CHANGED
@@ -1,12 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shop_bunny
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 117
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- version: "0.7"
9
+ - 0
10
+ - 1
11
+ version: 0.7.0.1
10
12
  platform: ruby
11
13
  authors:
12
14
  - kopfmaschine.com
@@ -40,8 +42,6 @@ files:
40
42
  - app/models/item.rb
41
43
  - app/controllers/application_controller.rb
42
44
  - app/controllers/carts_controller.rb
43
- - db/test.sqlite3
44
- - db/schema.rb
45
45
  - db/migrate/20100915162029_remove_owner_id_from_carts.rb
46
46
  - db/migrate/20100915091059_create_coupons.rb
47
47
  - db/migrate/20100915073016_create_items.rb
@@ -49,8 +49,10 @@ files:
49
49
  - db/migrate/20100915093821_create_coupon_uses.rb
50
50
  - db/migrate/20100916194407_set_default_column_value_for_cart_items_quantity.rb
51
51
  - db/migrate/20100902115757_create_cart_items.rb
52
- - db/development.sqlite3
53
- - db/seeds.rb
52
+ - config/initializers/add_cart_finder_to_controllers.rb
53
+ - config/initializers/shop_bunny.rb
54
+ - config/initializers/machinist.rb
55
+ - config/routes.rb
54
56
  has_rdoc: true
55
57
  homepage: http://kopfmaschine.com
56
58
  licenses: []
Binary file
data/db/schema.rb DELETED
@@ -1,57 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead
2
- # of editing this file, please use the migrations feature of Active Record to
3
- # incrementally modify your database, and then regenerate this schema definition.
4
- #
5
- # Note that this schema.rb definition is the authoritative source for your
6
- # database schema. If you need to create the application database on another
7
- # system, you should be using db:schema:load, not running all the migrations
8
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
- # you'll amass, the slower it'll run and the greater likelihood for issues).
10
- #
11
- # It's strongly recommended to check this file into your version control system.
12
-
13
- ActiveRecord::Schema.define(:version => 20100916194407) do
14
-
15
- create_table "cart_items", :force => true do |t|
16
- t.integer "cart_id"
17
- t.integer "item_id"
18
- t.integer "quantity", :default => 0
19
- t.datetime "created_at"
20
- t.datetime "updated_at"
21
- end
22
-
23
- create_table "carts", :force => true do |t|
24
- t.string "type"
25
- t.datetime "created_at"
26
- t.datetime "updated_at"
27
- end
28
-
29
- create_table "coupon_uses", :force => true do |t|
30
- t.integer "cart_id"
31
- t.integer "coupon_id"
32
- t.datetime "created_at"
33
- t.datetime "updated_at"
34
- end
35
-
36
- create_table "coupons", :force => true do |t|
37
- t.boolean "removes_tax", :default => false
38
- t.float "discount_percentage", :default => 1.0
39
- t.float "discount_credit", :default => 0.0
40
- t.boolean "removes_shipping_cost", :default => false
41
- t.integer "bonus_article_id"
42
- t.date "valid_from"
43
- t.date "valid_until"
44
- t.text "title"
45
- t.string "code"
46
- t.datetime "created_at"
47
- t.datetime "updated_at"
48
- end
49
-
50
- create_table "items", :force => true do |t|
51
- t.float "price"
52
- t.string "title"
53
- t.datetime "created_at"
54
- t.datetime "updated_at"
55
- end
56
-
57
- end
data/db/seeds.rb DELETED
@@ -1,19 +0,0 @@
1
- # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
- #
4
- # Examples:
5
- #
6
- # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
- # Mayor.create(:name => 'Daley', :city => cities.first)
8
-
9
- # Dummy data for development
10
- if Rails.env.development?
11
- 3.times { |i| Item.create! :price => i }
12
- 3.times { |i|
13
- c = Coupon.new
14
- c.code = "code#{i}"
15
- c.title = "10% discount coupon #{i}"
16
- c.discount_percentage = 0.9
17
- c.save!
18
- }
19
- end
data/db/test.sqlite3 DELETED
Binary file