effective_addresses 1.8.4 → 1.8.5
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/app/helpers/effective_addresses_helper.rb +15 -10
- data/app/models/concerns/acts_as_addressable.rb +5 -1
- data/app/models/effective/address.rb +24 -1
- data/app/views/effective/addresses/_form_with.html.haml +3 -3
- data/app/views/effective/addresses/_simple_form.html.haml +2 -2
- data/config/effective_addresses.rb +4 -1
- data/lib/effective_addresses/version.rb +1 -1
- data/lib/effective_addresses.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10e0a18e1057bb62aa50278891d207d8cfb1420a
|
|
4
|
+
data.tar.gz: 09d6a1fa25e100cc1e1690d53015799d0447d874
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 52d258748596da058b01e2a092f810ade1451171bb56035dec4b39292530aa603a88574c5ab60ae27d7bbf5dce030c872d6efae6b14035e4dbd2d3b10e322b10
|
|
7
|
+
data.tar.gz: 6af33db771036fd87c82e991917d8b96cac6d7ab461b715587752d8dcf6d7b9d776b9de058093bc84b1cbd1e4d3e12da5fb7c66506720b1a5429ad45e835df3a
|
|
@@ -37,7 +37,7 @@ module EffectiveAddressesHelper
|
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
def
|
|
40
|
+
def effective_address_regions_collection(regions = nil)
|
|
41
41
|
if regions.present?
|
|
42
42
|
countries = regions
|
|
43
43
|
elsif EffectiveAddresses.country_codes == :all
|
|
@@ -46,20 +46,25 @@ module EffectiveAddressesHelper
|
|
|
46
46
|
countries = Carmen::Country.all.select { |c| (EffectiveAddresses.country_codes || []).include?(c.code) }
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
collection = countries.map { |c| [c.name, c.code] }.sort! { |a, b| a.first <=> b.first }
|
|
50
|
-
|
|
51
49
|
if regions.blank? && EffectiveAddresses.country_codes_priority.present?
|
|
52
|
-
|
|
50
|
+
countries = countries.reject { |c| EffectiveAddresses.country_codes_priority.include?(c.code) }
|
|
51
|
+
end
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
countries = countries.map { |c| [c.name, c.code] }.sort! { |a, b| a.first <=> b.first }
|
|
54
|
+
|
|
55
|
+
if regions.blank? && EffectiveAddresses.country_codes_priority.present?
|
|
56
|
+
countries.unshift(*
|
|
57
|
+
EffectiveAddresses.country_codes_priority.map do |code|
|
|
58
|
+
country = Carmen::Country.coded(code)
|
|
59
|
+
[country.name, country.code]
|
|
60
|
+
end + [['-------------------', '-', disabled: :disabled]]
|
|
61
|
+
)
|
|
59
62
|
end
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
countries
|
|
62
65
|
end
|
|
66
|
+
alias_method :effective_address_countries_collection, :effective_address_regions_collection
|
|
67
|
+
alias_method :region_options_for_simple_form_select, :effective_address_regions_collection
|
|
63
68
|
|
|
64
69
|
end
|
|
65
70
|
|
|
@@ -56,10 +56,14 @@ module ActsAsAddressable
|
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
# [:billing_address, :shipping_address]
|
|
60
|
+
address_names = (categories.respond_to?(:keys) ? categories.keys : categories).map { |category| (category.to_s + '_address').to_sym }
|
|
61
|
+
|
|
62
|
+
if address_names.include?(:billing_address) && address_names.include?(:shipping_address)
|
|
60
63
|
self.send(:define_method, :shipping_address_same_as_billing?) { billing_address == shipping_address }
|
|
61
64
|
end
|
|
62
65
|
|
|
66
|
+
self.send(:define_method, :effective_address_names) { address_names }
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
module ClassMethods
|
|
@@ -8,6 +8,29 @@ module Effective
|
|
|
8
8
|
|
|
9
9
|
belongs_to :addressable, polymorphic: true, touch: true
|
|
10
10
|
|
|
11
|
+
if defined?(EffectiveResources)
|
|
12
|
+
effective_resource do
|
|
13
|
+
category :string
|
|
14
|
+
|
|
15
|
+
full_name :string
|
|
16
|
+
address1 :string
|
|
17
|
+
address2 :string
|
|
18
|
+
|
|
19
|
+
if EffectiveAddresses.use_address3
|
|
20
|
+
address3 :string
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
city :string
|
|
24
|
+
state_code :string
|
|
25
|
+
country_code :string
|
|
26
|
+
postal_code :string
|
|
27
|
+
|
|
28
|
+
shipping_address_same_as_billing permitted: true
|
|
29
|
+
|
|
30
|
+
timestamps
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
11
34
|
validates :category, :address1, :city, :country_code, :postal_code, presence: true, if: Proc.new { |address| address.present? }
|
|
12
35
|
validates :state_code, presence: true, if: Proc.new { |address| address.present? && (address.country_code.blank? || Carmen::Country.coded(address.country_code).try(:subregions).present?) }
|
|
13
36
|
|
|
@@ -126,7 +149,7 @@ module Effective
|
|
|
126
149
|
if defined?(::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES) # Rails 5
|
|
127
150
|
::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(shipping_address_same_as_billing)
|
|
128
151
|
else
|
|
129
|
-
ActiveRecord::Type::Boolean.new.cast(shipping_address_same_as_billing)
|
|
152
|
+
::ActiveRecord::Type::Boolean.new.cast(shipping_address_same_as_billing)
|
|
130
153
|
end
|
|
131
154
|
end
|
|
132
155
|
end
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
disabled: same_as_billing,
|
|
27
27
|
wrapper: wrapper_options
|
|
28
28
|
|
|
29
|
-
- if fa.object.respond_to?(:address3)
|
|
29
|
+
- if fa.object.respond_to?(:address3) && EffectiveAddresses.use_address3
|
|
30
30
|
= fa.text_field :address3,
|
|
31
31
|
label: false,
|
|
32
32
|
required: false,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
.row
|
|
43
43
|
.col-md-4
|
|
44
|
-
= fa.select :country_code,
|
|
44
|
+
= fa.select :country_code, effective_address_countries_collection(),
|
|
45
45
|
label: 'Country',
|
|
46
46
|
required: required,
|
|
47
47
|
disabled: same_as_billing,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
.col-md-5
|
|
52
52
|
- if fa.object.try(:country_code).present?
|
|
53
|
-
= fa.select :state_code,
|
|
53
|
+
= fa.select :state_code, effective_address_regions_collection(Carmen::Country.coded(fa.object.country_code).subregions),
|
|
54
54
|
label: 'State / Province',
|
|
55
55
|
required: required,
|
|
56
56
|
disabled: same_as_billing,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
= fa.input :country_code,
|
|
42
42
|
as: (defined?(EffectiveFormInputs) ? :effective_select : :select),
|
|
43
43
|
required: required,
|
|
44
|
-
collection:
|
|
44
|
+
collection: effective_address_countries_collection(),
|
|
45
45
|
input_html: {'data-effective-address-country' => uuid},
|
|
46
46
|
disabled: shipping_address_same_as_billing,
|
|
47
47
|
wrapper_html: { style: ('display: none;' if shipping_address_same_as_billing) }
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
= fa.input :state_code,
|
|
52
52
|
as: (defined?(EffectiveFormInputs) ? :effective_select : :select),
|
|
53
53
|
required: required,
|
|
54
|
-
collection:
|
|
54
|
+
collection: effective_address_regions_collection(Carmen::Country.coded(fa.object.country_code).subregions),
|
|
55
55
|
prompt: 'Please choose',
|
|
56
56
|
input_html: {'data-effective-address-state' => uuid},
|
|
57
57
|
input_js: { placeholder: 'Please choose' },
|
|
@@ -6,12 +6,15 @@ EffectiveAddresses.setup do |config|
|
|
|
6
6
|
# (can be overridden on a per address basis)
|
|
7
7
|
config.use_full_name = true
|
|
8
8
|
|
|
9
|
+
# A 3rd address field
|
|
10
|
+
config.use_address3 = false
|
|
11
|
+
|
|
9
12
|
# Country codes to display in country_select dropdowns.
|
|
10
13
|
config.country_codes = :all
|
|
11
14
|
#config.country_codes = ['US', 'CA'] # Or you can be more selective...
|
|
12
15
|
|
|
13
16
|
# Select these countries ontop of the others
|
|
14
|
-
config.country_codes_priority = ['US', 'CA']
|
|
17
|
+
# config.country_codes_priority = ['US', 'CA']
|
|
15
18
|
|
|
16
19
|
# Force this country to be preselected on any new address forms.
|
|
17
20
|
# Valid values are: country code, country name, or nil.
|
data/lib/effective_addresses.rb
CHANGED
|
@@ -10,6 +10,7 @@ module EffectiveAddresses
|
|
|
10
10
|
mattr_accessor :country_codes_priority
|
|
11
11
|
mattr_accessor :addresses_table_name
|
|
12
12
|
mattr_accessor :use_full_name
|
|
13
|
+
mattr_accessor :use_address3
|
|
13
14
|
mattr_accessor :simple_form_options
|
|
14
15
|
mattr_accessor :validate_postal_code_format
|
|
15
16
|
mattr_accessor :pre_selected_country
|
|
@@ -20,7 +21,7 @@ module EffectiveAddresses
|
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
def self.permitted_params
|
|
23
|
-
[:address1, :address2, :city, :country_code, :state_code, :postal_code, :full_name, :shipping_address_same_as_billing]
|
|
24
|
+
[:address1, :address2, :address3, :city, :country_code, :state_code, :postal_code, :full_name, :shipping_address_same_as_billing]
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
end
|
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.8.
|
|
4
|
+
version: 1.8.5
|
|
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: 2018-
|
|
11
|
+
date: 2018-10-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
104
104
|
version: '0'
|
|
105
105
|
requirements: []
|
|
106
106
|
rubyforge_project:
|
|
107
|
-
rubygems_version: 2.5.
|
|
107
|
+
rubygems_version: 2.4.5.1
|
|
108
108
|
signing_key:
|
|
109
109
|
specification_version: 4
|
|
110
110
|
summary: Extend any ActiveRecord object to have one or more named addresses. Includes
|