spree_address_book 0.70.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/.gitignore +1 -2
  2. data/.rspec +3 -0
  3. data/Gemfile +6 -0
  4. data/Gemfile.lock +228 -0
  5. data/Rakefile +10 -57
  6. data/Versionfile +1 -0
  7. data/app/assets/javascripts/store/spree_address_book.js +53 -0
  8. data/app/assets/stylesheets/store/spree_address_book.scss +12 -0
  9. data/app/controllers/{addresses_controller.rb → spree/addresses_controller.rb} +1 -1
  10. data/app/controllers/{checkout_controller_decorator.rb → spree/checkout_controller_decorator.rb} +4 -2
  11. data/app/helpers/checkout_helper_decorator.rb +4 -4
  12. data/app/models/address_decorator.rb +4 -4
  13. data/app/models/order_decorator.rb +7 -7
  14. data/{lib → app/models/spree}/address_ability.rb +2 -2
  15. data/app/models/spree/address_book_configuration.rb +8 -0
  16. data/app/models/user_decorator.rb +1 -1
  17. data/app/overrides/views_decorator.rb +2 -2
  18. data/app/views/spree/addresses/_form.html.erb +13 -0
  19. data/app/views/{addresses → spree/addresses}/destroy.js.erb +0 -0
  20. data/app/views/{addresses → spree/addresses}/edit.html.erb +1 -1
  21. data/app/views/spree/checkout/_address.html.erb +45 -0
  22. data/app/views/spree/users/_addresses.html.erb +22 -0
  23. data/config/routes.rb +1 -1
  24. data/db/migrate/20110302102208_add_user_id_and_deleted_at_to_addresses.rb +8 -2
  25. data/features/support/env.rb +3 -22
  26. data/lib/generators/spree_address_book/install_generator.rb +8 -0
  27. data/lib/spree_address_book.rb +17 -11
  28. data/spec/controllers/spree/checkout_controller_spec.rb +52 -0
  29. data/spec/models/address_spec.rb +2 -2
  30. data/spec/models/order_spec.rb +21 -0
  31. data/spec/spec_helper.rb +15 -10
  32. data/spree_address_book.gemspec +8 -3
  33. metadata +85 -20
  34. data/app/assets/javascripts/store/checkout.js +0 -73
  35. data/app/views/addresses/_form.html.erb +0 -15
  36. data/app/views/checkout/_address.html.erb +0 -85
  37. data/app/views/users/_addresses.html.erb +0 -20
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.platform = Gem::Platform::RUBY
3
3
  s.name = 'spree_address_book'
4
- s.version = '0.70.0'
4
+ s.version = '1.0.0'
5
5
  s.summary = 'Adds address book for users to Spree'
6
6
  #s.description = 'Add (optional) gem description here'
7
7
  s.required_ruby_version = '>= 1.8.7'
@@ -16,6 +16,11 @@ Gem::Specification.new do |s|
16
16
  s.require_path = 'lib'
17
17
  s.requirements << 'none'
18
18
 
19
- s.add_dependency('spree_core', '~> 0.70.0')
20
- s.add_dependency('spree_auth', '~> 0.70.0')
19
+ s.add_dependency('spree_core', '~> 1.0.0')
20
+ s.add_dependency('spree_auth', '~> 1.0.0')
21
+
22
+ s.add_development_dependency('rspec-rails', '~> 2.7')
23
+ s.add_development_dependency('sqlite3')
24
+ s.add_development_dependency('capybara')
25
+ s.add_development_dependency('factory_girl', '~> 2.6')
21
26
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_address_book
3
3
  version: !ruby/object:Gem::Version
4
- hash: 263
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 70
9
9
  - 0
10
- version: 0.70.0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Roman Smirnov
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-03-01 00:00:00 Z
18
+ date: 2012-06-16 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: spree_core
@@ -25,12 +25,12 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 263
28
+ hash: 23
29
29
  segments:
30
+ - 1
30
31
  - 0
31
- - 70
32
32
  - 0
33
- version: 0.70.0
33
+ version: 1.0.0
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
@@ -41,14 +41,72 @@ dependencies:
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
- hash: 263
44
+ hash: 23
45
45
  segments:
46
+ - 1
46
47
  - 0
47
- - 70
48
48
  - 0
49
- version: 0.70.0
49
+ version: 1.0.0
50
50
  type: :runtime
51
51
  version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: rspec-rails
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 13
61
+ segments:
62
+ - 2
63
+ - 7
64
+ version: "2.7"
65
+ type: :development
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: sqlite3
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ type: :development
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: capybara
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: factory_girl
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ hash: 15
104
+ segments:
105
+ - 2
106
+ - 6
107
+ version: "2.6"
108
+ type: :development
109
+ version_requirements: *id006
52
110
  description:
53
111
  email: roman@railsdog.com
54
112
  executables: []
@@ -59,23 +117,29 @@ extra_rdoc_files: []
59
117
 
60
118
  files:
61
119
  - .gitignore
120
+ - .rspec
121
+ - Gemfile
122
+ - Gemfile.lock
62
123
  - LICENSE
63
124
  - README.md
64
125
  - Rakefile
65
126
  - Versionfile
66
- - app/assets/javascripts/store/checkout.js
67
- - app/controllers/addresses_controller.rb
68
- - app/controllers/checkout_controller_decorator.rb
127
+ - app/assets/javascripts/store/spree_address_book.js
128
+ - app/assets/stylesheets/store/spree_address_book.scss
129
+ - app/controllers/spree/addresses_controller.rb
130
+ - app/controllers/spree/checkout_controller_decorator.rb
69
131
  - app/helpers/checkout_helper_decorator.rb
70
132
  - app/models/address_decorator.rb
71
133
  - app/models/order_decorator.rb
134
+ - app/models/spree/address_ability.rb
135
+ - app/models/spree/address_book_configuration.rb
72
136
  - app/models/user_decorator.rb
73
137
  - app/overrides/views_decorator.rb
74
- - app/views/addresses/_form.html.erb
75
- - app/views/addresses/destroy.js.erb
76
- - app/views/addresses/edit.html.erb
77
- - app/views/checkout/_address.html.erb
78
- - app/views/users/_addresses.html.erb
138
+ - app/views/spree/addresses/_form.html.erb
139
+ - app/views/spree/addresses/destroy.js.erb
140
+ - app/views/spree/addresses/edit.html.erb
141
+ - app/views/spree/checkout/_address.html.erb
142
+ - app/views/spree/users/_addresses.html.erb
79
143
  - config/initializers/address_fields.rb
80
144
  - config/locales/en.yml
81
145
  - config/locales/ru.yml
@@ -85,10 +149,11 @@ files:
85
149
  - features/step_definitions/address_book_steps.rb
86
150
  - features/support/env.rb
87
151
  - features/support/paths.rb
88
- - lib/address_ability.rb
89
152
  - lib/generators/spree_address_book/install_generator.rb
90
153
  - lib/spree_address_book.rb
154
+ - spec/controllers/spree/checkout_controller_spec.rb
91
155
  - spec/models/address_spec.rb
156
+ - spec/models/order_spec.rb
92
157
  - spec/spec_helper.rb
93
158
  - spree_address_book.gemspec
94
159
  homepage: http://github.com/romul/spree_address_book
@@ -122,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
187
  requirements:
123
188
  - none
124
189
  rubyforge_project:
125
- rubygems_version: 1.8.15
190
+ rubygems_version: 1.8.24
126
191
  signing_key:
127
192
  specification_version: 3
128
193
  summary: Adds address book for users to Spree
@@ -1,73 +0,0 @@
1
- (function($){
2
- $(document).ready(function(){
3
-
4
- $('#checkout_form_address').validate();
5
-
6
- var get_states = function(region){
7
- var country = $('p#' + region + 'country' + ' span#' + region + 'country :only-child').val();
8
- return state_mapper[country];
9
- }
10
-
11
- var update_state = function(region) {
12
- var states = get_states(region);
13
-
14
- var state_select = $('span#' + region + 'state select');
15
- var state_input = $('span#' + region + 'state input');
16
-
17
- if(states) {
18
- var selected = state_select.val();
19
- state_select.html('');
20
- var states_with_blank = [["",""]].concat(states);
21
- $.each(states_with_blank, function(pos,id_nm) {
22
- var opt = $(document.createElement('option'))
23
- .attr('value', id_nm[0])
24
- .html(id_nm[1]);
25
- if(selected==id_nm[0]){
26
- opt.attr('selected', 'selected');
27
- }
28
- state_select.append(opt);
29
- });
30
- state_select.removeAttr('disabled').show();
31
- state_input.hide().attr('disabled', 'disabled');
32
-
33
- } else {
34
- state_input.removeAttr('disabled').show();
35
- state_select.hide().attr('disabled', 'disabled');
36
- }
37
-
38
- };
39
-
40
- // Show fields for the selected payment method
41
- $("input[type='radio'][name='order[payments_attributes][][payment_method_id]']").click(function(){
42
- $('#payment-methods li').hide();
43
- if(this.checked){ $('#payment_method_'+this.value).show(); }
44
- }).triggerHandler('click');
45
-
46
- $('p#bcountry span#bcountry select').change(function() { update_state('b'); });
47
- $('p#scountry span#scountry select').change(function() { update_state('s'); });
48
- update_state('b');
49
- update_state('s');
50
-
51
- $('input#order_use_billing').click(function() {
52
- if($(this).is(':checked')) {
53
- $("#shipping .inner input").attr('disabled', 'disabled');
54
- $("#shipping .inner select").attr('disabled', 'disabled');
55
- $("#shipping .inner").fadeOut();
56
- $("#shipping .select_address").fadeOut();
57
- } else {
58
- if ($("input[name='order[ship_address_id]']:checked").val() == '0') {
59
- $("#shipping .inner input").removeAttr('disabled');
60
- $("#shipping .inner select").removeAttr('disabled');
61
- $("#shipping .inner").fadeIn();
62
- }
63
- $("#shipping .select_address").fadeIn();
64
- }
65
- }).triggerHandler('click');
66
-
67
- $('form.edit_checkout').submit(function() {
68
- $(this).find(':submit, :image').attr('disabled', true).removeClass('primary').addClass('disabled');
69
- });
70
-
71
-
72
- });
73
- })(jQuery);
@@ -1,15 +0,0 @@
1
- <% ADDRESS_FIELDS.each do |field| %>
2
- <p id="<%= [address_name, field].join('_') %>" class="field">
3
- <% if field == "country" %>
4
- <%= address_form.label :country_id, t(field, :scope => [:activerecord, :attributes, :address]) %><span class="req">*</span><br />
5
- <span><%= address_form.collection_select :country_id, available_countries, :id, :name, {}, {:class => 'required'} %></span>
6
- <% elsif field == "state" && Spree::Config[:address_requires_state] %>
7
- <%= address_field(address_form, :state, address_name) { address_state(address_form, address.country) } %>
8
- <% else %>
9
- <%= address_field(address_form, field.to_sym, address_name) %>
10
- <% end %>
11
- </p>
12
- <% end %>
13
- <% if Spree::Config["alternative_#{address_name}_phone"] %>
14
- <%= address_field(address_form, :alternative_phone, address_name) %>
15
- <% end %>
@@ -1,85 +0,0 @@
1
- <% @addresses = current_user ? current_user.addresses : [] %>
2
- <style>
3
- div.inner input[type=text], div.inner select { width: 80%; }
4
- .hidden { display: none; }
5
- div#checkout #checkout_form_address #billing .select_address label { float:none; }
6
- div#checkout #checkout_form_address #shipping .select_address label { float:none; }
7
- div#checkout #checkout_form_address #billing input[type=radio] { width: auto; }
8
- div#checkout #checkout_form_address #shipping input[type=radio] { width: auto; }
9
- </style>
10
-
11
- <% ['billing', 'shipping'].each do |address_type|
12
- next if address_type == 'billing' && Spree::Config[:disable_bill_address]
13
- address_name = "#{address_type[0...4]}_address" %>
14
- <fieldset id="<%= address_type %>">
15
- <legend><%= t(address_type + "_address")%></legend>
16
- <% if address_type == 'shipping' && !Spree::Config[:disable_bill_address] %>
17
- <p class="field checkbox">
18
- <label for="order_use_billing" id="use_billing">
19
- <%= check_box_tag 'order[use_billing]', '1', (!(@order.bill_address.empty? && @order.ship_address.empty?) && @order.bill_address.eql?(@order.ship_address)) %> <%= t("use_billing_address") %>
20
- </label>
21
- </p>
22
- <% end %>
23
- <div class="select_address">
24
- <p class="field">
25
- <% if @addresses.present? %>
26
- <% @addresses.each_with_index do |address, idx| %>
27
- <span id="<%= [address_type, dom_id(address)].join('_') %>">
28
- <label><%= form.radio_button "#{address_name}_id", address.id, :checked => (idx == 0) %> <%= address %></label> <%= link_to t(:edit), edit_address_path(address) %><br />
29
- </span>
30
- <% end %>
31
- <label><%= form.radio_button "#{address_name}_id", 0 %> <%= t('other_address') %></label>
32
- <% end %>
33
- </p>
34
- </div>
35
- <%= form.fields_for address_name do |address_form| %>
36
- <div class="inner">
37
- <p class="field">&nbsp;</p>
38
- <%= render :partial => 'addresses/form', :locals => {
39
- :address_name => address_name,
40
- :address_form => address_form,
41
- :address => Address.default
42
- } %>
43
- </div>
44
- <% end %>
45
- </fieldset>
46
- <% end %>
47
-
48
- <hr class="space" />
49
- <div class="form-buttons">
50
- <input type="submit" class="continue button primary" value="<%=t("save_and_continue") %>" />
51
- </div>
52
- <% if @addresses.present? %>
53
- <%= javascript_tag do %>
54
- $(document).ready(function(){
55
- $(".inner input").attr('disabled', 'disabled');
56
- $(".inner select").attr('disabled', 'disabled');
57
- $(".inner").hide();
58
-
59
- $("input[name='order[bill_address_id]']:radio").change(function(){
60
- if ($("input[name='order[bill_address_id]']:checked").val() == '0') {
61
- $("#billing .inner input").removeAttr('disabled');
62
- $("#billing .inner select").removeAttr('disabled');
63
- $("#billing .inner").fadeIn();
64
- } else {
65
- $("#billing .inner input").attr('disabled', 'disabled');
66
- $("#billing .inner select").attr('disabled', 'disabled');
67
- $("#billing .inner").fadeOut();
68
- }
69
- });
70
-
71
- $("input[name='order[ship_address_id]']:radio").change(function(){
72
- if ($("input[name='order[ship_address_id]']:checked").val() == '0') {
73
- $("#shipping .inner input").removeAttr('disabled');
74
- $("#shipping .inner select").removeAttr('disabled');
75
- $("#shipping .inner").fadeIn();
76
- } else {
77
- $("#shipping .inner input").attr('disabled', 'disabled');
78
- $("#shipping .inner select").attr('disabled', 'disabled');
79
- $("#shipping .inner").fadeOut();
80
- }
81
- });
82
-
83
- });
84
- <% end %>
85
- <% end %>
@@ -1,20 +0,0 @@
1
- <% if current_user.addresses.present? %>
2
- <h2><%= Address.model_name.human(:count => 2) %></h2>
3
- <table class="order-summary" width="545">
4
- <thead>
5
- <tr>
6
- <th><%= Address.model_name.human %></th>
7
- <th></th>
8
- </tr>
9
- </thead>
10
- <tbody>
11
- <% current_user.addresses.each do |address| %>
12
- <tr class="<%= cycle('even', 'odd') %>">
13
- <td><%= address %></td>
14
- <td><%= link_to t(:edit), edit_address_path(address) %></td>
15
- <td><%= link_to t(:remove), address_path(address), :method => :delete, :confirm => t(:are_you_sure) %></td>
16
- </tr>
17
- <% end %>
18
- </tbody>
19
- </table>
20
- <% end %>