spree_address_book 0.70.0 → 1.0.0

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.
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 %>