spree_wholesale 0.40.0.beta4.2 → 0.40.2.beta

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -19,7 +19,7 @@ Install from the source:
19
19
  Or install the (beta) gem:
20
20
 
21
21
  gem install spree_wholesale --pre
22
- echo "gem 'spree_wholesale', '0.40.0.beta4.1'" >> Gemfile
22
+ echo "gem 'spree_wholesale', '0.40.0.beta4.2'" >> Gemfile
23
23
 
24
24
  rake spree_wholesale:install
25
25
  rake db:migrate
@@ -32,9 +32,11 @@ If you want to generate sample wholesale prices:
32
32
  This will assume 66% wholesale discount.
33
33
 
34
34
 
35
- If you'd like run tests, install from the source, then run:
36
-
37
- cd your/spree/project/spree_wholesale
35
+ If you'd like run tests:
36
+
37
+ git clone git://github.com/citrus/spree_wholesale.git
38
+ cd spree_wholesale
39
+ rake test_app
38
40
  rake
39
41
 
40
42
  (TO DO: Write some more tests!)
@@ -51,7 +53,7 @@ To create a demo of SpreeWholesaleExample
51
53
  cd spree_wholesale_example
52
54
 
53
55
  echo "gem 'spree', '0.40.0'" >> Gemfile
54
- echo "gem 'spree_wholesale', '0.40.0.beta4.1'" >> Gemfile
56
+ echo "gem 'spree_wholesale', '0.40.0.beta4.2'" >> Gemfile
55
57
  rm public/index.html
56
58
 
57
59
  bundle install
@@ -65,7 +67,7 @@ To create a demo of SpreeWholesaleExample
65
67
 
66
68
  or shorthand:
67
69
 
68
- rails new spree_wholesale_example; cd spree_wholesale_example; echo "gem 'spree', '0.40.0'" >> Gemfile; echo "gem 'spree_wholesale', '0.40.0.beta4.1'" >> Gemfile; rm public/index.html
70
+ rails new spree_wholesale_example; cd spree_wholesale_example; echo "gem 'spree', '0.40.0'" >> Gemfile; echo "gem 'spree_wholesale', '0.40.0.beta4.2'" >> Gemfile; rm public/index.html
69
71
  rake spree:install spree_wholesale:install db:migrate db:seed spree_wholesale:create_role
70
72
 
71
73
  If you want sample data:
@@ -90,7 +92,7 @@ Then finish by booting up the rails server:
90
92
 
91
93
  All in one swoop:
92
94
 
93
- rails new spree_wholesale_example; cd spree_wholesale_example; echo "gem 'spree', '0.40.0'" >> Gemfile; echo "gem 'spree_wholesale', '0.40.0.beta4.1'" >> Gemfile; rm public/index.html; bundle install; rake spree:install spree_wholesale:install db:migrate db:seed spree_wholesale:create_role spree_sample:install db:sample spree_wholesale:assume_wholesale_prices; echo "@import url('wholesale.css');"|cat - public/stylesheets/screen.css > /tmp/out && mv /tmp/out public/stylesheets/screen.css; rails s
95
+ rails new spree_wholesale_example; cd spree_wholesale_example; echo "gem 'spree', '0.40.0'" >> Gemfile; echo "gem 'spree_wholesale', '0.40.0.beta4.2'" >> Gemfile; rm public/index.html; bundle install; rake spree:install spree_wholesale:install db:migrate db:seed spree_wholesale:create_role spree_sample:install db:sample spree_wholesale:assume_wholesale_prices; echo "@import url('wholesale.css');"|cat - public/stylesheets/screen.css > /tmp/out && mv /tmp/out public/stylesheets/screen.css; rails s
94
96
 
95
97
 
96
98
  To do the same as above but install from the source instead, run:
data/Rakefile CHANGED
@@ -1,31 +1,27 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'rake/testtask'
4
- require 'rake/packagetask'
3
+ #require 'rake/testtask'
4
+ #require 'rake/packagetask'
5
5
  require 'rake/gempackagetask'
6
6
 
7
7
 
8
- root = ENV["RAILS_ROOT"] || File.expand_path('../spec/test_app', __FILE__)
9
-
10
- env = File.join(root, 'config', 'environment.rb')
11
-
12
- puts "(Rails Root: #{root})"
13
-
14
-
15
8
  spec = eval(File.read('spree_wholesale.gemspec'))
16
-
17
9
  Rake::GemPackageTask.new(spec) do |p|
18
10
  p.gem_spec = spec
19
11
  end
20
12
 
21
13
 
14
+
22
15
  namespace :spree_wholesale do
23
16
  desc "Test Spree Wholesale Extension"
24
17
  task :test do
18
+
19
+ root = ENV["RAILS_ROOT"] || File.expand_path('../spec/test_app', __FILE__)
20
+ env = File.join(root, 'config', 'environment.rb')
21
+ puts "(Rails Root: #{root})"
25
22
 
26
23
  require env
27
24
  require File.expand_path('../test/test_helper', __FILE__)
28
-
29
25
  Dir["test/**/*.rb"].reject{|file| file.match(/test_helper/) != nil }.each do |file|
30
26
  puts "Loading #{file}"
31
27
  load file
@@ -34,19 +30,8 @@ namespace :spree_wholesale do
34
30
  end
35
31
  end
36
32
 
37
- #
38
- #
39
- #if File.exists?(env)
40
- # desc "Default Task"
41
- # task :default => [ :test_extension ]
42
- #else
43
- # desc "Default Task"
44
- # task :default => []
45
- # puts "environment.rb not found! Try modifying the path to your rails application."
46
- #end
47
-
48
33
  desc "Default Task"
49
- task :default => [ :test_extension ]
34
+ task :default => [ "spree_wholesale:test" ]
50
35
 
51
36
 
52
37
 
@@ -56,38 +41,48 @@ desc "Regenerates a Rails 3 app for testing"
56
41
  task :test_app do
57
42
  # TODO - this path requires a certain directory structure -- need
58
43
  # to think about how to refactor
59
- require '../spree/lib/generators/spree/test_app_generator'
60
- class WishlistTestAppGenerator < Spree::Generators::TestAppGenerator
61
- def tweak_gemfile
62
- append_file "Gemfile" ,
63
- <<-gems
64
-
44
+
45
+
46
+ files = `gem contents spree`.split("\n").select{|file| file.match("test_app_generator")}
47
+ if files.length == 1
48
+ require files.first
49
+ class WishlistTestAppGenerator < Spree::Generators::TestAppGenerator
50
+ def tweak_gemfile
51
+ append_file "Gemfile" ,
52
+ <<-gems
53
+ gem 'activemerchant'
65
54
  gem 'spree_core', '>=0.40.0'
66
55
  gem 'spree_auth', '>=0.40.0'
67
- gem 'spree_wholesale', :path => "#{File.dirname(__FILE__)}"
68
-
69
- gems
70
- end
71
-
72
- def install_spree_gems
73
- inside "test_app" do
74
- run 'rake spree_core:install'
75
- run 'rake spree_auth:install'
76
- run 'rake spree_wholesale:install'
56
+ gem 'spree_wholesale', :path => "#{File.dirname(__FILE__)}"
57
+ gems
58
+ end
59
+
60
+ def install_spree_gems
61
+
62
+ puts "-----------------------------------------"
63
+ puts "Installing gems..."
64
+ `bundle install --gemfile=spec/test_app/Gemfile`
65
+ puts "-----------------------------------------"
66
+
67
+ inside "test_app" do
68
+ run 'rake spree_core:install'
69
+ run 'rake spree_auth:install'
70
+ run 'rake spree_wholesale:install'
71
+ end
72
+ end
73
+
74
+ def migrate_db
75
+ run_migrations
77
76
  end
78
77
  end
79
-
80
- # def install_spree_auth
81
- # inside "test_app" do
82
- # run 'rake spree_auth:install'
83
- # end
84
- # ends
85
-
86
- def migrate_db
87
- run_migrations
88
- end
78
+
79
+ WishlistTestAppGenerator.start
80
+
81
+ puts "spec/test_app created. "
82
+
83
+ else
84
+ puts "Failed: Could not find lib/generators/spree/test_app_generator.rb"
89
85
  end
90
- WishlistTestAppGenerator.start
91
86
  end
92
87
 
93
88
  namespace :test_app do
@@ -0,0 +1,17 @@
1
+ class WholesalerAbilityDecorator
2
+
3
+ include CanCan::Ability
4
+
5
+ def initialize(user)
6
+ user ||= User.new
7
+ can :index, Wholesaler
8
+ can :new, Wholesaler
9
+ can :create, Wholesaler
10
+ can :read, Wholesaler do |resource|
11
+ resource.user == user
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ Ability.register_ability(WholesalerAbilityDecorator)
@@ -10,7 +10,9 @@
10
10
 
11
11
  <fieldset>
12
12
  <legend>Company Information</legend>
13
+
13
14
  <%= render "shared/error_messages", :target => @wholesaler %>
15
+
14
16
  <p>
15
17
  <%= form.label :company %><br/>
16
18
  <%= form.text_field :company, :class => 'required' %><span class="req">*</span>
@@ -51,10 +53,6 @@
51
53
  </fieldset>
52
54
 
53
55
  <fieldset class="rightie">
54
-
55
-
56
-
57
- <br/>
58
56
 
59
57
  <fieldset>
60
58
  <legend>Billing Address</legend>
@@ -14,6 +14,4 @@ class SpreeWholesaleHooks < Spree::ThemeSupport::HookListener
14
14
 
15
15
  insert_after :admin_tabs, 'admin/hooks/wholesale_tab'
16
16
 
17
-
18
-
19
17
  end
metadata CHANGED
@@ -5,10 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 40
8
- - 0
9
- - beta4
10
8
  - 2
11
- version: 0.40.0.beta4.2
9
+ - beta
10
+ version: 0.40.2.beta
12
11
  platform: ruby
13
12
  authors:
14
13
  - Spencer Steffen
@@ -16,7 +15,7 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2011-01-14 00:00:00 -08:00
18
+ date: 2011-01-20 00:00:00 -08:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
@@ -30,8 +29,8 @@ dependencies:
30
29
  segments:
31
30
  - 0
32
31
  - 40
33
- - 0
34
- version: 0.40.0
32
+ - 2
33
+ version: 0.40.2
35
34
  type: :runtime
36
35
  version_requirements: *id001
37
36
  - !ruby/object:Gem::Dependency
@@ -45,8 +44,8 @@ dependencies:
45
44
  segments:
46
45
  - 0
47
46
  - 40
48
- - 0
49
- version: 0.40.0
47
+ - 2
48
+ version: 0.40.2
50
49
  type: :runtime
51
50
  version_requirements: *id002
52
51
  description: Spree Wholesale adds a wholesale_price field to variants and allows users with a "wholesaler" role to access these prices.
@@ -67,13 +66,11 @@ files:
67
66
  - lib/spree_wholesale_hooks.rb
68
67
  - lib/tasks/install.rake
69
68
  - lib/tasks/spree_wholesale.rake
70
- - lib/wholesale_products_helper.rb
71
69
  - app/controllers/admin/base_controller_decorator.rb
72
70
  - app/controllers/admin/orders_controller_decorator.rb
73
71
  - app/controllers/admin/wholesalers_controller.rb
74
72
  - app/controllers/checkout_controller_decorator.rb
75
73
  - app/controllers/wholesalers_controller.rb
76
- - app/models/ability.rb
77
74
  - app/models/application_helper_decorator.rb
78
75
  - app/models/country_decorator.rb
79
76
  - app/models/line_item_decorator.rb
@@ -84,6 +81,7 @@ files:
84
81
  - app/models/user_decorator.rb
85
82
  - app/models/variant_decorator.rb
86
83
  - app/models/wholesaler.rb
84
+ - app/models/wholesaler_ability_decorator.rb
87
85
  - app/views/admin/hooks/_admin_orders_index_headers.html.erb
88
86
  - app/views/admin/hooks/_admin_orders_index_rows.html.erb
89
87
  - app/views/admin/hooks/_admin_orders_index_search.html.erb
@@ -1,71 +0,0 @@
1
- # Implementation class for Cancan gem. Instead of overriding this class, consider adding new permissions
2
- # using the special +register_ability+ method which allows extensions to add their own abilities.
3
- #
4
- # See http://github.com/ryanb/cancan for more details on cancan.
5
- class Ability
6
- include CanCan::Ability
7
-
8
- class_attribute :abilities
9
- self.abilities = Set.new
10
-
11
- # Allows us to go beyond the standard cancan initialize method which makes it difficult for engines to
12
- # modify the default +Ability+ of an application. The +ability+ argument must be a class that includes
13
- # the +CanCan::Ability+ module. The registered ability should behave properly as a stand-alone class
14
- # and therefore should be easy to test in isolation.
15
- def self.register_ability(ability)
16
- self.abilities.add(ability)
17
- end
18
-
19
- def initialize(user)
20
- self.clear_aliased_actions
21
-
22
- # override cancan default aliasing (we don't want to differentiate between read and index)
23
- alias_action :edit, :to => :update
24
- alias_action :new, :to => :create
25
- alias_action :new_action, :to => :create
26
- alias_action :show, :to => :read
27
-
28
- user ||= User.new
29
- if user.has_role? 'admin'
30
- can :manage, :all
31
- else
32
- #############################
33
- can :read, User do |resource|
34
- resource == user
35
- end
36
- can :update, User do |resource|
37
- resource == user
38
- end
39
- can :create, User
40
- #############################
41
- can :read, Order do |order, token|
42
- order.user == user || order.token && token == order.token
43
- end
44
- can :update, Order do |order, token|
45
- order.user == user || order.token && token == order.token
46
- end
47
- can :create, Order
48
- #############################
49
- can :read, Product
50
- can :index, Product
51
- #############################
52
- can :read, Taxon
53
- can :index, Taxon
54
- #############################
55
- can :index, Wholesaler
56
- can :new, Wholesaler
57
- can :create, Wholesaler
58
- can :read, Wholesaler do |resource|
59
- resource.user == user
60
- end
61
- #############################
62
- end
63
-
64
- #include any abilities registered by extensions, etc.
65
- Ability.abilities.each do |clazz|
66
- ability = clazz.send(:new, user)
67
- @can_definitions = abilities + ability.send(:abilities)
68
- end
69
-
70
- end
71
- end
@@ -1,26 +0,0 @@
1
- #module WholesaleProductsHelper
2
- #
3
- # # returns the price of the product to show for display purposes
4
- # def product_price(product_or_variant, options={})
5
- # options.assert_valid_keys(:format_as_currency, :show_vat_text)
6
- # options.reverse_merge! :format_as_currency => true, :show_vat_text => Spree::Config[:show_price_inc_vat]
7
- #
8
- # puts "-----"
9
- # puts current_user.roles.inspect
10
- #
11
- # if current_user.has_role?("wholesaler")
12
- # _amount = product_or_variant.wholesale_price
13
- # amount = _amount if 0.0 < _amount
14
- # end
15
- #
16
- # amount ||= product_or_variant.price
17
- #
18
- #
19
- #
20
- # amount += Calculator::Vat.calculate_tax_on(product_or_variant) if Spree::Config[:show_price_inc_vat]
21
- # options.delete(:format_as_currency) ? format_price(amount, options) : amount
22
- # end
23
- #
24
- #end
25
- #
26
- #ProductsHelper.send(:include, WholesaleProductsHelper)