effective_addresses 1.7.3 → 1.7.4
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.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/app/controllers/effective/addresses_controller.rb +2 -2
- data/app/models/concerns/acts_as_addressable.rb +39 -50
- data/app/models/effective/address.rb +3 -4
- data/config/effective_addresses.rb +1 -1
- data/lib/effective_addresses/engine.rb +1 -1
- data/lib/effective_addresses/version.rb +1 -1
- metadata +2 -4
- data/Rakefile +0 -23
- data/lib/tasks/effective_addresses_tasks.rake +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e242bd222bdf45a2b873aea1cb4a99966fbd3d7
|
4
|
+
data.tar.gz: 510cde83910aee2c94fda85928003375da8bf9e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2ddc40defbc7a58d324f33e83329e3ee6b133eebf2542e44d605c973a38f11f861156362dc93ebd4e33fce0a061f2a41322038301260dcc0dfc2d3f112ef438
|
7
|
+
data.tar.gz: 4ce4c776b7ab5a11c985005151ff0522dee5440938675cefd7b415c0d30c8909725aca9d828954091b038f85297ff8b89e49e1321e72ce5e4e4c80763642cf5d
|
data/MIT-LICENSE
CHANGED
@@ -6,9 +6,9 @@ module Effective
|
|
6
6
|
@subregions = Carmen::Country.coded(params[:country_code]).try(:subregions)
|
7
7
|
|
8
8
|
if @subregions.present?
|
9
|
-
render :
|
9
|
+
render partial: 'effective/addresses/subregions'
|
10
10
|
else
|
11
|
-
render :
|
11
|
+
render body: "<option value=''>None Available</option>"
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -11,7 +11,7 @@ module ActsAsAddressable
|
|
11
11
|
end
|
12
12
|
|
13
13
|
included do
|
14
|
-
has_many :addresses, as: :addressable, class_name: 'Effective::Address', dependent: :delete_all, autosave: true
|
14
|
+
has_many :addresses, -> { order(:updated_at) }, as: :addressable, class_name: 'Effective::Address', dependent: :delete_all, autosave: true
|
15
15
|
|
16
16
|
# Normalize categories
|
17
17
|
categories = @acts_as_addressable_opts.try(:flatten) || []
|
@@ -58,13 +58,6 @@ module ActsAsAddressable
|
|
58
58
|
|
59
59
|
if ((categories.try(:keys) rescue nil) || categories).include?('billing') && ((categories.try(:keys) rescue nil) || categories).include?('shipping')
|
60
60
|
self.send(:define_method, :shipping_address_same_as_billing?) { billing_address == shipping_address }
|
61
|
-
|
62
|
-
before_validation do
|
63
|
-
if @_effective_addresses_shipping_address_same_as_billing
|
64
|
-
self.shipping_address = self.billing_address
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
61
|
end
|
69
62
|
|
70
63
|
end
|
@@ -81,58 +74,54 @@ module ActsAsAddressable
|
|
81
74
|
effective_addresses(category).last
|
82
75
|
end
|
83
76
|
|
84
|
-
def set_effective_address(category,
|
85
|
-
unless
|
86
|
-
raise ArgumentError.new("Effective::Address #{category}_address= expecting an Effective::Address or Hash of attributes")
|
87
|
-
end
|
77
|
+
def set_effective_address(category, obj)
|
78
|
+
raise "#{category}_address= expected an Effective::Address or Hash" unless obj.kind_of?(Effective::Address) || obj.kind_of?(Hash)
|
88
79
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
add = Effective::Address.new(
|
94
|
-
:category => category.to_s,
|
95
|
-
:full_name => atts[:full_name],
|
96
|
-
:address1 => atts[:address1],
|
97
|
-
:address2 => atts[:address2],
|
98
|
-
:city => atts[:city],
|
99
|
-
:state_code => atts[:state_code],
|
100
|
-
:country_code => atts[:country_code],
|
101
|
-
:postal_code => atts[:postal_code],
|
102
|
-
:shipping_address_same_as_billing => atts[:shipping_address_same_as_billing]
|
103
|
-
)
|
104
|
-
|
105
|
-
if category == 'shipping' && add.shipping_address_same_as_billing?
|
106
|
-
@_effective_addresses_shipping_address_same_as_billing = true
|
107
|
-
return
|
80
|
+
address = (obj.kind_of?(Effective::Address) ? obj : Effective::Address.new(obj))
|
81
|
+
|
82
|
+
if category == 'shipping' && address.shipping_address_same_as_billing? && respond_to?(:billing_address)
|
83
|
+
address = effective_address('billing')
|
108
84
|
end
|
109
85
|
|
110
|
-
|
111
|
-
|
86
|
+
# Prevents duplicates from being created
|
87
|
+
return effective_address(category) if address == effective_address(category)
|
112
88
|
|
113
|
-
|
114
|
-
|
89
|
+
(self.addresses.build).tap do |existing|
|
90
|
+
existing.category = category.to_s
|
91
|
+
existing.full_name = address.full_name
|
92
|
+
existing.address1 = address.address1
|
93
|
+
existing.address2 = address.address2
|
94
|
+
existing.city = address.city
|
95
|
+
existing.state_code = address.state_code
|
96
|
+
existing.country_code = address.country_code
|
97
|
+
existing.postal_code = address.postal_code
|
98
|
+
existing.shipping_address_same_as_billing = address.shipping_address_same_as_billing?
|
99
|
+
end
|
100
|
+
end
|
115
101
|
|
116
|
-
|
102
|
+
def set_singular_effective_address(category, obj)
|
103
|
+
raise "#{category}_address= expected an Effective::Address or Hash" unless obj.kind_of?(Effective::Address) || obj.kind_of?(Hash)
|
117
104
|
|
118
|
-
|
105
|
+
address = (obj.kind_of?(Effective::Address) ? obj : Effective::Address.new(obj))
|
119
106
|
|
120
|
-
|
121
|
-
|
122
|
-
existing.full_name = atts[:full_name]
|
123
|
-
existing.address1 = atts[:address1]
|
124
|
-
existing.address2 = atts[:address2]
|
125
|
-
existing.city = atts[:city]
|
126
|
-
existing.state_code = atts[:state_code]
|
127
|
-
existing.country_code = atts[:country_code]
|
128
|
-
existing.postal_code = atts[:postal_code]
|
129
|
-
existing.shipping_address_same_as_billing = atts[:shipping_address_same_as_billing]
|
107
|
+
if category == 'shipping' && address.shipping_address_same_as_billing? && respond_to?(:billing_address)
|
108
|
+
address = effective_address('billing')
|
130
109
|
end
|
131
110
|
|
132
|
-
|
133
|
-
|
134
|
-
end
|
111
|
+
# This wouldn't create duplicates anyway
|
112
|
+
return effective_address(category) if address == effective_address(category)
|
135
113
|
|
114
|
+
(effective_address(category) || self.addresses.build).tap do |existing|
|
115
|
+
existing.category = category.to_s
|
116
|
+
existing.full_name = address.full_name
|
117
|
+
existing.address1 = address.address1
|
118
|
+
existing.address2 = address.address2
|
119
|
+
existing.city = address.city
|
120
|
+
existing.state_code = address.state_code
|
121
|
+
existing.country_code = address.country_code
|
122
|
+
existing.postal_code = address.postal_code
|
123
|
+
existing.shipping_address_same_as_billing = address.shipping_address_same_as_billing?
|
124
|
+
end
|
136
125
|
end
|
137
126
|
|
138
127
|
end
|
@@ -21,8 +21,7 @@ module Effective
|
|
21
21
|
:allow_blank => true, # We're already checking for presence above
|
22
22
|
:message => 'is an invalid United States zip code'
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
scope :sorted, -> { order(:updated_at) }
|
26
25
|
scope :billing, -> { where(:category => 'billing') }
|
27
26
|
scope :shipping, -> { where(:category => 'shipping') }
|
28
27
|
|
@@ -124,9 +123,9 @@ module Effective
|
|
124
123
|
|
125
124
|
def shipping_address_same_as_billing?
|
126
125
|
if defined?(::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES) # Rails 5
|
127
|
-
::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(
|
126
|
+
::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(shipping_address_same_as_billing)
|
128
127
|
else
|
129
|
-
ActiveRecord::Type::Boolean.new.cast(
|
128
|
+
ActiveRecord::Type::Boolean.new.cast(shipping_address_same_as_billing)
|
130
129
|
end
|
131
130
|
end
|
132
131
|
end
|
@@ -33,7 +33,7 @@ EffectiveAddresses.setup do |config|
|
|
33
33
|
config.simple_form_options = {}
|
34
34
|
|
35
35
|
# config.simple_form_options = {
|
36
|
-
# :html => {:class => 'form-horizontal'},
|
36
|
+
# :html => {:class => ['form-horizontal']},
|
37
37
|
# :wrapper => :horizontal_form,
|
38
38
|
# :wrapper_mappings => {
|
39
39
|
# :boolean => :horizontal_boolean,
|
@@ -20,7 +20,7 @@ module EffectiveAddresses
|
|
20
20
|
end
|
21
21
|
|
22
22
|
# Set up our default configuration options.
|
23
|
-
initializer
|
23
|
+
initializer 'effective_addresses.defaults', before: :load_config_initializers do |app|
|
24
24
|
eval File.read("#{config.root}/config/effective_addresses.rb")
|
25
25
|
end
|
26
26
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_addresses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -62,7 +62,6 @@ extra_rdoc_files: []
|
|
62
62
|
files:
|
63
63
|
- MIT-LICENSE
|
64
64
|
- README.md
|
65
|
-
- Rakefile
|
66
65
|
- app/assets/javascripts/effective_addresses.js
|
67
66
|
- app/assets/javascripts/effective_addresses/address_fields.js.coffee
|
68
67
|
- app/assets/javascripts/effective_addresses/shipping_address_same_as_billing.js.coffee
|
@@ -84,7 +83,6 @@ files:
|
|
84
83
|
- lib/effective_addresses/engine.rb
|
85
84
|
- lib/effective_addresses/version.rb
|
86
85
|
- lib/generators/effective_addresses/install_generator.rb
|
87
|
-
- lib/tasks/effective_addresses_tasks.rake
|
88
86
|
- spec/controllers/addresses_controller_spec.rb
|
89
87
|
- spec/dummy/README.rdoc
|
90
88
|
- spec/dummy/Rakefile
|
data/Rakefile
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
begin
|
3
|
-
require 'bundler/setup'
|
4
|
-
rescue LoadError
|
5
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
-
end
|
7
|
-
|
8
|
-
# Our tasks
|
9
|
-
load 'lib/tasks/effective_addresses_tasks.rake'
|
10
|
-
|
11
|
-
# Testing tasks
|
12
|
-
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
13
|
-
load 'rails/tasks/engine.rake'
|
14
|
-
|
15
|
-
Bundler::GemHelper.install_tasks
|
16
|
-
|
17
|
-
require 'rspec/core'
|
18
|
-
require 'rspec/core/rake_task'
|
19
|
-
|
20
|
-
desc "Run all specs in spec directory (excluding plugin specs)"
|
21
|
-
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
22
|
-
|
23
|
-
task :default => :spec
|