snail 2.0.0 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,13 +1,10 @@
1
1
  class Snail
2
2
  module Initializable
3
- def initialize(attrs = {}, &block)
3
+ def initialize(attrs = {})
4
4
  attrs.each do |k, v|
5
5
  m = "#{k}="
6
- if respond_to? m
7
- self.send(m, v)
8
- else
9
- raise UnknownAttribute.new(k)
10
- end
6
+ raise UnknownAttribute, k unless respond_to? m
7
+ send(m, v)
11
8
  end
12
9
  yield self if block_given?
13
10
  end
data/lib/snail/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Snail
2
- VERSION = '2.0.0'
2
+ VERSION = '2.2.3'.freeze
3
3
  end
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 international addresses" do
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)
@@ -118,12 +146,24 @@ class SnailTest < Snail::TestCase
118
146
  assert_equal "John Doe\n12345 5th St\nSomewheres NY 12345\nCANADA", s.to_s
119
147
  end
120
148
 
149
+ test "to_s ireland doesn't show a linebreak if zip is empty" do
150
+ s = Snail.new(@ie.merge(:zip => ""))
151
+ puts s.to_s
152
+ assert_equal "John Doe\n12345 5th St\nSomewheres, Dublin\nIRELAND", s.to_s
153
+ end
154
+
121
155
  test "to_html" do
122
156
  s = Snail.new(@ca)
123
157
  s.name = 'John & Jane Doe'
124
158
  assert_equal "John &amp; Jane Doe<br />12345 5th St<br />Somewheres NY 12345<br />CANADA", s.to_html
125
159
  assert s.to_html.html_safe?
126
160
  end
161
+
162
+ test "to_html ireland doesn't show a linebreak if zip is empty" do
163
+ s = Snail.new(@ie.merge(:zip => ""))
164
+ s.name = 'John & Jane Doe'
165
+ assert_equal "John &amp; Jane Doe<br />12345 5th St<br />Somewheres, Dublin<br />IRELAND", s.to_html
166
+ end
127
167
  end
128
168
 
129
169
 
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.0.0
4
+ version: 2.2.3
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-05-13 00:00:00.000000000 Z
11
+ date: 2021-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -310,8 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
310
  - !ruby/object:Gem::Version
311
311
  version: '0'
312
312
  requirements: []
313
- rubyforge_project:
314
- rubygems_version: 2.4.5
313
+ rubygems_version: 3.0.3
315
314
  signing_key:
316
315
  specification_version: 4
317
316
  summary: Easily format snail mail addresses for international delivery