snail 2.0.0 → 2.1.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 +17 -0
- data/lib/snail.rb +17 -8
- data/lib/snail/version.rb +1 -1
- data/test/snail_test.rb +30 -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: 812732750415ef2957431d92fcf8da7660d78402
|
4
|
+
data.tar.gz: 1b71a4117e610bd5c67db6b8b139c7235c9bc7b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80159381c9ad565e003cd5f001f3ad7d0125f05378235301b35306b71679bb363602538910d7dfc8f99138892c586eee8efdc61a75ce1ade8950137f18f8c32b
|
7
|
+
data.tar.gz: 2d95a236f10890ec2c1fb570e70fae2aeb6df23de9b1789a8df715325180654668aa1cb4eae07a18ef0bc6b6876cabd6c3e1942e49e7307e06a644582a157b47
|
data/README.md
CHANGED
@@ -48,6 +48,23 @@ Snail.new(
|
|
48
48
|
=> "Jon Doe\n12345 Somewhere Ln\nBENTLEY WA 6102"
|
49
49
|
```
|
50
50
|
|
51
|
+
You can override this default behavior by specifying `with_country` as `true` or `false`:
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
Snail.home_country = "Australia"
|
55
|
+
Snail.new(
|
56
|
+
:name => "Jon Doe",
|
57
|
+
:line_1 => "12345 Somewhere Ln",
|
58
|
+
:line_2 => nil,
|
59
|
+
:city => "Bentley",
|
60
|
+
:region => "WA",
|
61
|
+
:postal_code => "6102",
|
62
|
+
:country => "AU"
|
63
|
+
).to_s(with_country: true)
|
64
|
+
|
65
|
+
=> "Jon Doe\n12345 Somewhere Ln\nBentley WA 6102\nAUSTRALIA"
|
66
|
+
```
|
67
|
+
|
51
68
|
See the test cases for more.
|
52
69
|
|
53
70
|
## Fun Times
|
data/lib/snail.rb
CHANGED
@@ -5,7 +5,6 @@ require 'snail/helpers'
|
|
5
5
|
|
6
6
|
require 'cgi'
|
7
7
|
require 'active_support/core_ext/string/output_safety'
|
8
|
-
require 'yaml'
|
9
8
|
|
10
9
|
class Snail
|
11
10
|
include Snail::Initializable
|
@@ -90,12 +89,24 @@ class Snail
|
|
90
89
|
@origin ||= Snail.home_country
|
91
90
|
end
|
92
91
|
|
93
|
-
def
|
94
|
-
|
92
|
+
def international?
|
93
|
+
country && self.origin != country
|
95
94
|
end
|
96
95
|
|
97
|
-
def
|
98
|
-
|
96
|
+
def to_s(with_country: nil)
|
97
|
+
with_country = true if with_country.nil? && international?
|
98
|
+
|
99
|
+
[
|
100
|
+
name,
|
101
|
+
line_1,
|
102
|
+
line_2,
|
103
|
+
city_line,
|
104
|
+
(country_line if with_country)
|
105
|
+
].select{|line| !(line.nil? or line.empty?)}.join("\n")
|
106
|
+
end
|
107
|
+
|
108
|
+
def to_html(with_country: nil)
|
109
|
+
CGI.escapeHTML(to_s(with_country: with_country)).gsub("\n", '<br />').html_safe
|
99
110
|
end
|
100
111
|
|
101
112
|
# this method will get much larger. completeness is out of my scope at this time.
|
@@ -151,9 +162,7 @@ class Snail
|
|
151
162
|
end
|
152
163
|
|
153
164
|
def country_line
|
154
|
-
|
155
|
-
(translated_country(self.origin, country) || translated_country("US", country))
|
156
|
-
end
|
165
|
+
(translated_country(self.origin, @country) || translated_country("US", @country))
|
157
166
|
end
|
158
167
|
|
159
168
|
def translated_country(origin, country)
|
data/lib/snail/version.rb
CHANGED
data/test/snail_test.rb
CHANGED
@@ -72,20 +72,48 @@ class SnailTest < Snail::TestCase
|
|
72
72
|
assert s.city_line.match(/NY 12345/)
|
73
73
|
end
|
74
74
|
|
75
|
-
test "does not include country name for domestic addresses" do
|
75
|
+
test "does not include country name for domestic addresses by default" do
|
76
76
|
s = Snail.new(@us.merge(:origin => 'US'))
|
77
77
|
assert !s.to_s.match(/United States/i)
|
78
78
|
s = Snail.new(@ca.merge(:origin => 'CA'))
|
79
79
|
assert !s.to_s.match(/Canada/i)
|
80
80
|
end
|
81
81
|
|
82
|
-
test "includes country name for
|
82
|
+
test "includes country name for domestic addresses if with_country parameter is true" do
|
83
|
+
s = Snail.new(@us.merge(:origin => 'US'))
|
84
|
+
assert s.to_s(with_country: true).match(/United States/i)
|
85
|
+
s = Snail.new(@ca.merge(:origin => 'CA'))
|
86
|
+
assert s.to_s(with_country: true).match(/Canada/i)
|
87
|
+
end
|
88
|
+
|
89
|
+
test "does not include country name for domestic addresses if with_country parameter is false" do
|
90
|
+
s = Snail.new(@us.merge(:origin => 'US'))
|
91
|
+
assert !s.to_s(with_country: false).match(/United States/i)
|
92
|
+
s = Snail.new(@ca.merge(:origin => 'CA'))
|
93
|
+
assert !s.to_s(with_country: false).match(/Canada/i)
|
94
|
+
end
|
95
|
+
|
96
|
+
test "includes country name for international addresses by default" do
|
83
97
|
s = Snail.new(@us.merge(:origin => 'CA'))
|
84
98
|
assert s.to_s.match(/United States/i)
|
85
99
|
s = Snail.new(@ca.merge(:origin => 'US'))
|
86
100
|
assert s.to_s.match(/Canada/i)
|
87
101
|
end
|
88
102
|
|
103
|
+
test "includes country name for international addresses if with_country parameter is true" do
|
104
|
+
s = Snail.new(@us.merge(:origin => 'CA'))
|
105
|
+
assert s.to_s(with_country: true).match(/United States/i)
|
106
|
+
s = Snail.new(@ca.merge(:origin => 'US'))
|
107
|
+
assert s.to_s(with_country: true).match(/Canada/i)
|
108
|
+
end
|
109
|
+
|
110
|
+
test "does not include country name for international addresses if with_country parameter is false" do
|
111
|
+
s = Snail.new(@us.merge(:origin => 'CA'))
|
112
|
+
assert !s.to_s(with_country: false).match(/United States/i)
|
113
|
+
s = Snail.new(@ca.merge(:origin => 'US'))
|
114
|
+
assert !s.to_s(with_country: false).match(/Canada/i)
|
115
|
+
end
|
116
|
+
|
89
117
|
test "includes translated country name for international addresses" do
|
90
118
|
s = Snail.new(@us.merge(:origin => 'FR'))
|
91
119
|
assert s.to_s.match(/ÉTATS-UNIS/i)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lance Ivy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|