jt-rails-address 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/jt-rails-address.gemspec +1 -1
- data/lib/validators.rb +31 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8391f7cbcd928765fe623c06b9e12e38fe060e64
|
4
|
+
data.tar.gz: 613b2af0a4bb8a654916268a84bffba359cb523e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9f7e8e8812b62d5b4811e82b3b287a372ebec027288ba2e9792079fe405a4ab288b064f0ddd24371459162e794669cc7437a59d9625264c4504e2725b79e2d1
|
7
|
+
data.tar.gz: f59265fb49fab32e9bd0b16bee376a9ff43866da895a8d9e9f2e09c1c2a6bcfe7641ad91ba70ffbc42ef3f5784bbf7a920d7551d75315566fc0e54738a068be5
|
data/README.md
CHANGED
@@ -53,6 +53,8 @@ It will create all the fields you need for address management:
|
|
53
53
|
- `lat`, GPS latitude
|
54
54
|
- `lng`, GPS longitude
|
55
55
|
|
56
|
+
There are also `add_address` and `remove_address` methods for migrations.
|
57
|
+
|
56
58
|
In your model:
|
57
59
|
```ruby
|
58
60
|
class User < ActiveRecord::Base
|
@@ -82,6 +84,9 @@ In your HTML:
|
|
82
84
|
<% end %>
|
83
85
|
</div>
|
84
86
|
|
87
|
+
<!-- Optional, if this field is true, the address will be remove -->
|
88
|
+
<%= f.check_box :address_destroy %>
|
89
|
+
|
85
90
|
<%= f.submit %>
|
86
91
|
|
87
92
|
<% end %>
|
@@ -132,6 +137,12 @@ data = JT::Rails::Address.search("Eiffel Tower", "YOUR GOOGLE API KEY", {compone
|
|
132
137
|
|
133
138
|
# Use the data retrieve from Google Maps API
|
134
139
|
my_instance.load_address(:address, data)
|
140
|
+
|
141
|
+
# Use the set a nil all address fileds
|
142
|
+
my_instance.reset_address(:address)
|
143
|
+
|
144
|
+
# Use the set a nil all address fileds with HTML forms
|
145
|
+
my_instance.update({address_destroy: true})
|
135
146
|
```
|
136
147
|
|
137
148
|
## Author
|
data/jt-rails-address.gemspec
CHANGED
@@ -3,7 +3,7 @@ Gem::Specification.new do |s|
|
|
3
3
|
s.summary = "Postal addresses management in Ruby On Rails and Javascript"
|
4
4
|
s.description = "JTRailsAddress simplify postal addresses management and geocoding with Google Maps in Ruby On Rails and Javascript."
|
5
5
|
s.homepage = 'https://github.com/jonathantribouharet/jt-rails-address'
|
6
|
-
s.version = '1.
|
6
|
+
s.version = '1.3.0'
|
7
7
|
s.files = `git ls-files`.split("\n")
|
8
8
|
s.require_paths = ['lib']
|
9
9
|
s.authors = ['Jonathan TRIBOUHARET']
|
data/lib/validators.rb
CHANGED
@@ -2,10 +2,28 @@ module JT::Rails::Address::Validators
|
|
2
2
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
+
included do |base|
|
6
|
+
|
7
|
+
before_validation :check_if_reset_address
|
8
|
+
|
9
|
+
base.class_eval do
|
10
|
+
|
11
|
+
# jt_rails_address_fields is shared only by a class and its subclass
|
12
|
+
def self.jt_rails_address_fields
|
13
|
+
class_variable_set(:@@jt_rails_address_fields, []) if !class_variable_defined?(:@@jt_rails_address_fields)
|
14
|
+
class_variable_get(:@@jt_rails_address_fields)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
5
20
|
class_methods do
|
6
21
|
|
7
22
|
def has_address(prefix, options = {})
|
8
23
|
attr_accessor prefix
|
24
|
+
attr_accessor "#{prefix.to_s}_destroy"
|
25
|
+
|
26
|
+
jt_rails_address_fields << prefix.to_sym
|
9
27
|
|
10
28
|
define_singleton_method("#{prefix}_fields") do
|
11
29
|
fields = []
|
@@ -18,11 +36,22 @@ module JT::Rails::Address::Validators
|
|
18
36
|
|
19
37
|
end
|
20
38
|
|
21
|
-
def
|
22
|
-
|
39
|
+
def check_if_reset_address
|
40
|
+
for address_field in self.class.jt_rails_address_fields
|
41
|
+
if [1, true].include?(self.send("#{address_field}_destroy"))
|
42
|
+
reset_address(address_field)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def reset_address(prefix)
|
23
48
|
for field in JT::Rails::Address.fields
|
24
49
|
self["#{prefix}_#{field}"] = nil
|
25
50
|
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def load_address(prefix, data)
|
54
|
+
reset_address(prefix)
|
26
55
|
|
27
56
|
for key, value in data
|
28
57
|
self["#{prefix}_#{key}"] = value
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jt-rails-address
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan TRIBOUHARET
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graticule
|