nytimes-style 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,9 +16,15 @@ Annotated source code: http://ascheink.github.com/nytimes-style
16
16
  >> nytimes_date Date.today
17
17
  # => "May 12, 2011"
18
18
 
19
+ >> nytimes_date Date.today, :hide_current_year => true, :day_of_week => true
20
+ # => "Wednesday, June 15"
21
+
19
22
  >> nytimes_state_abbrev 'AZ'
20
23
  # => "Ariz."
21
24
 
25
+ >> nytimes_state_name '55'
26
+ # => "Wisconsin"
27
+
22
28
  == AUTHOR
23
29
 
24
30
  Andrei Scheinkman, andrei@nytimes.com
data/index.html CHANGED
@@ -105,19 +105,25 @@ two-letter abbreviations; some are hard to tell apart on quick reading.)&rdquo;<
105
105
 
106
106
  </td>
107
107
  <td class=code>
108
- <div class='highlight'><pre> <span class="k">def</span> <span class="nf">nytimes_state_abbrev</span><span class="p">(</span><span class="n">postal_code_or_state_name</span><span class="p">)</span>
109
- <span class="n">state</span> <span class="o">=</span> <span class="n">states</span><span class="o">[</span><span class="n">postal_code_or_state_name</span><span class="o">]</span>
110
- <span class="k">raise</span> <span class="no">ArgumentError</span><span class="o">.</span><span class="n">new</span> <span class="s2">&quot;Unknown postal code or state name: </span><span class="si">#{</span><span class="n">postal_code_or_state_name</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">unless</span> <span class="n">state</span>
108
+ <div class='highlight'><pre> <span class="k">def</span> <span class="nf">nytimes_state_abbrev</span><span class="p">(</span><span class="n">state_name_or_code</span><span class="p">)</span>
109
+ <span class="n">state</span> <span class="o">=</span> <span class="n">states</span><span class="o">[</span><span class="n">state_name_or_code</span><span class="o">]</span>
110
+ <span class="k">raise</span> <span class="no">ArgumentError</span><span class="o">.</span><span class="n">new</span> <span class="s2">&quot;Unknown postal code, state name or FIPS code: </span><span class="si">#{</span><span class="n">state_name_or_code</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">unless</span> <span class="n">state</span>
111
111
  <span class="n">state</span><span class="o">[</span><span class="s1">&#39;nytimes_abbrev&#39;</span><span class="o">]</span>
112
112
  <span class="k">end</span>
113
113
 
114
+ <span class="k">def</span> <span class="nf">nytimes_state_name</span><span class="p">(</span><span class="n">state_abbrev_or_code</span><span class="p">)</span>
115
+ <span class="n">state</span> <span class="o">=</span> <span class="n">states</span><span class="o">[</span><span class="n">state_abbrev_or_code</span><span class="o">]</span>
116
+ <span class="k">raise</span> <span class="no">ArgumentError</span><span class="o">.</span><span class="n">new</span> <span class="s2">&quot;Unknown postal code, abbreviation or FIPS code: </span><span class="si">#{</span><span class="n">state_abbrev_or_code</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">unless</span> <span class="n">state</span>
117
+ <span class="n">state</span><span class="o">[</span><span class="s1">&#39;name&#39;</span><span class="o">]</span>
118
+ <span class="k">end</span>
119
+
114
120
  <span class="kp">private</span>
115
121
 
116
122
  <span class="no">STATE_DATA_FILE</span> <span class="o">=</span> <span class="no">File</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="no">File</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">__FILE__</span><span class="p">),</span> <span class="s1">&#39;nytimes-style/states.yml&#39;</span><span class="p">)</span>
117
123
 
118
124
  <span class="k">def</span> <span class="nf">states</span>
119
125
  <span class="vi">@states</span> <span class="o">||=</span> <span class="no">YAML</span><span class="o">::</span><span class="nb">load</span><span class="p">(</span><span class="no">File</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="no">STATE_DATA_FILE</span><span class="p">))</span><span class="o">.</span><span class="n">inject</span><span class="p">({})</span> <span class="k">do</span> <span class="o">|</span><span class="n">h</span><span class="p">,</span> <span class="n">state</span><span class="o">|</span>
120
- <span class="n">h</span><span class="o">.</span><span class="n">merge</span><span class="p">({</span> <span class="n">state</span><span class="o">[</span><span class="s1">&#39;postal_code&#39;</span><span class="o">]</span> <span class="o">=&gt;</span> <span class="n">state</span><span class="p">,</span> <span class="n">state</span><span class="o">[</span><span class="s1">&#39;name&#39;</span><span class="o">]</span> <span class="o">=&gt;</span> <span class="n">state</span> <span class="p">})</span>
126
+ <span class="n">h</span><span class="o">.</span><span class="n">merge</span><span class="p">({</span> <span class="n">state</span><span class="o">[</span><span class="s1">&#39;postal_code&#39;</span><span class="o">]</span> <span class="o">=&gt;</span> <span class="n">state</span><span class="p">,</span> <span class="n">state</span><span class="o">[</span><span class="s1">&#39;name&#39;</span><span class="o">]</span> <span class="o">=&gt;</span> <span class="n">state</span><span class="p">,</span> <span class="n">state</span><span class="o">[</span><span class="s1">&#39;fips_code&#39;</span><span class="o">]</span> <span class="o">=&gt;</span> <span class="n">state</span> <span class="p">})</span>
121
127
  <span class="k">end</span>
122
128
  <span class="k">end</span>
123
129
 
@@ -45,19 +45,25 @@ module Nytimes
45
45
  # > spaces between initials like N.H. Do not abbreviate Alaska, Hawaii, Idaho,
46
46
  # > Iowa, Ohio and Utah. (Do not ordinarily use the Postal Service’s
47
47
  # > two-letter abbreviations; some are hard to tell apart on quick reading.)"
48
- def nytimes_state_abbrev(postal_code_or_state_name)
49
- state = states[postal_code_or_state_name]
50
- raise ArgumentError.new "Unknown postal code or state name: #{postal_code_or_state_name}" unless state
48
+ def nytimes_state_abbrev(state_name_or_code)
49
+ state = states[state_name_or_code]
50
+ raise ArgumentError.new "Unknown postal code, state name or FIPS code: #{state_name_or_code}" unless state
51
51
  state['nytimes_abbrev']
52
52
  end
53
53
 
54
+ def nytimes_state_name(state_abbrev_or_code)
55
+ state = states[state_abbrev_or_code]
56
+ raise ArgumentError.new "Unknown postal code, abbreviation or FIPS code: #{state_abbrev_or_code}" unless state
57
+ state['name']
58
+ end
59
+
54
60
  private
55
61
 
56
62
  STATE_DATA_FILE = File.join(File.dirname(__FILE__), 'nytimes-style/states.yml')
57
63
 
58
64
  def states
59
65
  @states ||= YAML::load(File.open(STATE_DATA_FILE)).inject({}) do |h, state|
60
- h.merge({ state['postal_code'] => state, state['name'] => state })
66
+ h.merge({ state['postal_code'] => state, state['name'] => state, state['fips_code'] => state })
61
67
  end
62
68
  end
63
69
 
@@ -1,153 +1,200 @@
1
- - nytimes_abbrev: Ala.
2
- postal_code: AL
1
+ - fips_code: 1
3
2
  name: Alabama
4
- - nytimes_abbrev: Alaska
5
- postal_code: AK
3
+ nytimes_abbrev: Ala.
4
+ postal_code: AL
5
+ - fips_code: 2
6
6
  name: Alaska
7
- - nytimes_abbrev: Ariz.
8
- postal_code: AZ
7
+ nytimes_abbrev: Alaska
8
+ postal_code: AK
9
+ - fips_code: 4
9
10
  name: Arizona
10
- - nytimes_abbrev: Ark.
11
- postal_code: AR
11
+ nytimes_abbrev: Ariz.
12
+ postal_code: AZ
13
+ - fips_code: 5
12
14
  name: Arkansas
13
- - nytimes_abbrev: Calif.
14
- postal_code: CA
15
+ nytimes_abbrev: Ark.
16
+ postal_code: AR
17
+ - fips_code: 6
15
18
  name: California
16
- - nytimes_abbrev: Colo.
17
- postal_code: CO
19
+ nytimes_abbrev: Calif.
20
+ postal_code: CA
21
+ - fips_code: 8
18
22
  name: Colorado
19
- - nytimes_abbrev: Conn.
20
- postal_code: CT
23
+ nytimes_abbrev: Colo.
24
+ postal_code: CO
25
+ - fips_code: 9
21
26
  name: Connecticut
22
- - nytimes_abbrev: Del.
23
- postal_code: DE
27
+ nytimes_abbrev: Conn.
28
+ postal_code: CT
29
+ - fips_code: 10
24
30
  name: Delaware
25
- - nytimes_abbrev: D.C.
26
- postal_code: DC
27
- name: District of Columbia
28
- - nytimes_abbrev: Fla.
29
- postal_code: FL
31
+ nytimes_abbrev: Del.
32
+ postal_code: DE
33
+ - fips_code: 12
30
34
  name: Florida
31
- - nytimes_abbrev: Ga.
32
- postal_code: GA
35
+ nytimes_abbrev: Fla.
36
+ postal_code: FL
37
+ - fips_code: 13
33
38
  name: Georgia
34
- - nytimes_abbrev: Hawaii
35
- postal_code: HI
39
+ nytimes_abbrev: Ga.
40
+ postal_code: GA
41
+ - fips_code: 15
36
42
  name: Hawaii
37
- - nytimes_abbrev: Idaho
38
- postal_code: ID
43
+ nytimes_abbrev: Hawaii
44
+ postal_code: HI
45
+ - fips_code: 16
39
46
  name: Idaho
40
- - nytimes_abbrev: Ill.
41
- postal_code: IL
47
+ nytimes_abbrev: Idaho
48
+ postal_code: ID
49
+ - fips_code: 17
42
50
  name: Illinois
43
- - nytimes_abbrev: Ind.
44
- postal_code: IN
51
+ nytimes_abbrev: Ill.
52
+ postal_code: IL
53
+ - fips_code: 18
45
54
  name: Indiana
46
- - nytimes_abbrev: Iowa
47
- postal_code: IA
55
+ nytimes_abbrev: Ind.
56
+ postal_code: IN
57
+ - fips_code: 19
48
58
  name: Iowa
49
- - nytimes_abbrev: Kan.
50
- postal_code: KS
59
+ nytimes_abbrev: Iowa
60
+ postal_code: IA
61
+ - fips_code: 20
51
62
  name: Kansas
52
- - nytimes_abbrev: Ky.
53
- postal_code: KY
63
+ nytimes_abbrev: Kan.
64
+ postal_code: KS
65
+ - fips_code: 21
54
66
  name: Kentucky
55
- - nytimes_abbrev: La.
56
- postal_code: LA
67
+ nytimes_abbrev: Ky.
68
+ postal_code: KY
69
+ - fips_code: 22
57
70
  name: Louisiana
58
- - nytimes_abbrev: Me.
59
- postal_code: ME
71
+ nytimes_abbrev: La.
72
+ postal_code: LA
73
+ - fips_code: 23
60
74
  name: Maine
61
- - nytimes_abbrev: Md.
62
- postal_code: MD
75
+ nytimes_abbrev: Me.
76
+ postal_code: ME
77
+ - fips_code: 24
63
78
  name: Maryland
64
- - nytimes_abbrev: Mass.
65
- postal_code: MA
79
+ nytimes_abbrev: Md.
80
+ postal_code: MD
81
+ - fips_code: 25
66
82
  name: Massachusetts
67
- - nytimes_abbrev: Mich.
68
- postal_code: MI
83
+ nytimes_abbrev: Mass.
84
+ postal_code: MA
85
+ - fips_code: 26
69
86
  name: Michigan
70
- - nytimes_abbrev: Minn.
71
- postal_code: MN
87
+ nytimes_abbrev: Mich.
88
+ postal_code: MI
89
+ - fips_code: 27
72
90
  name: Minnesota
73
- - nytimes_abbrev: Miss.
74
- postal_code: MS
91
+ nytimes_abbrev: Minn.
92
+ postal_code: MN
93
+ - fips_code: 28
75
94
  name: Mississippi
76
- - nytimes_abbrev: Mo.
77
- postal_code: MO
95
+ nytimes_abbrev: Miss.
96
+ postal_code: MS
97
+ - fips_code: 29
78
98
  name: Missouri
79
- - nytimes_abbrev: Mont.
80
- postal_code: MT
99
+ nytimes_abbrev: Mo.
100
+ postal_code: MO
101
+ - fips_code: 30
81
102
  name: Montana
82
- - nytimes_abbrev: Neb.
83
- postal_code: NE
103
+ nytimes_abbrev: Mont.
104
+ postal_code: MT
105
+ - fips_code: 31
84
106
  name: Nebraska
85
- - nytimes_abbrev: Nev.
86
- postal_code: NV
107
+ nytimes_abbrev: Neb.
108
+ postal_code: NE
109
+ - fips_code: 32
87
110
  name: Nevada
88
- - nytimes_abbrev: N.H.
89
- postal_code: NH
111
+ nytimes_abbrev: Nev.
112
+ postal_code: NV
113
+ - fips_code: 33
90
114
  name: New Hampshire
91
- - nytimes_abbrev: N.J.
92
- postal_code: NJ
115
+ nytimes_abbrev: N.H.
116
+ postal_code: NH
117
+ - fips_code: 34
93
118
  name: New Jersey
94
- - nytimes_abbrev: N.M.
95
- postal_code: NM
119
+ nytimes_abbrev: N.J.
120
+ postal_code: NJ
121
+ - fips_code: 35
96
122
  name: New Mexico
97
- - nytimes_abbrev: N.Y.
98
- postal_code: NY
123
+ nytimes_abbrev: N.M.
124
+ postal_code: NM
125
+ - fips_code: 36
99
126
  name: New York
100
- - nytimes_abbrev: N.C.
101
- postal_code: NC
127
+ nytimes_abbrev: N.Y.
128
+ postal_code: NY
129
+ - fips_code: 37
102
130
  name: North Carolina
103
- - nytimes_abbrev: N.D.
104
- postal_code: ND
131
+ nytimes_abbrev: N.C.
132
+ postal_code: NC
133
+ - fips_code: 38
105
134
  name: North Dakota
106
- - nytimes_abbrev: Ohio
107
- postal_code: OH
135
+ nytimes_abbrev: N.D.
136
+ postal_code: ND
137
+ - fips_code: 39
108
138
  name: Ohio
109
- - nytimes_abbrev: Okla.
110
- postal_code: OK
139
+ nytimes_abbrev: Ohio
140
+ postal_code: OH
141
+ - fips_code: 40
111
142
  name: Oklahoma
112
- - nytimes_abbrev: Ore.
113
- postal_code: OR
143
+ nytimes_abbrev: Okla.
144
+ postal_code: OK
145
+ - fips_code: 41
114
146
  name: Oregon
115
- - nytimes_abbrev: Pa.
116
- postal_code: PA
147
+ nytimes_abbrev: Ore.
148
+ postal_code: OR
149
+ - fips_code: 42
117
150
  name: Pennsylvania
118
- - nytimes_abbrev: R.I.
119
- postal_code: RI
151
+ nytimes_abbrev: Pa.
152
+ postal_code: PA
153
+ - fips_code: 44
120
154
  name: Rhode Island
121
- - nytimes_abbrev: S.C.
122
- postal_code: SC
155
+ nytimes_abbrev: R.I.
156
+ postal_code: RI
157
+ - fips_code: 45
123
158
  name: South Carolina
124
- - nytimes_abbrev: S.D.
125
- postal_code: SD
159
+ nytimes_abbrev: S.C.
160
+ postal_code: SC
161
+ - fips_code: 46
126
162
  name: South Dakota
127
- - nytimes_abbrev: Tenn.
128
- postal_code: TN
163
+ nytimes_abbrev: S.D.
164
+ postal_code: SD
165
+ - fips_code: 47
129
166
  name: Tennessee
130
- - nytimes_abbrev: Tex.
131
- postal_code: TX
167
+ nytimes_abbrev: Tenn.
168
+ postal_code: TN
169
+ - fips_code: 48
132
170
  name: Texas
133
- - nytimes_abbrev: Utah
134
- postal_code: UT
171
+ nytimes_abbrev: Tex.
172
+ postal_code: TX
173
+ - fips_code: 49
135
174
  name: Utah
136
- - nytimes_abbrev: Vt.
137
- postal_code: VT
175
+ nytimes_abbrev: Utah
176
+ postal_code: UT
177
+ - fips_code: 50
138
178
  name: Vermont
139
- - nytimes_abbrev: Va.
140
- postal_code: VA
179
+ nytimes_abbrev: Vt.
180
+ postal_code: VT
181
+ - fips_code: 51
141
182
  name: Virginia
142
- - nytimes_abbrev: Wash.
143
- postal_code: WA
183
+ nytimes_abbrev: Va.
184
+ postal_code: VA
185
+ - fips_code: 53
144
186
  name: Washington
145
- - nytimes_abbrev: W.Va.
146
- postal_code: WV
187
+ nytimes_abbrev: Wash.
188
+ postal_code: WA
189
+ - fips_code: 54
147
190
  name: West Virginia
148
- - nytimes_abbrev: Wis.
149
- postal_code: WI
191
+ nytimes_abbrev: W.Va.
192
+ postal_code: WV
193
+ - fips_code: 55
150
194
  name: Wisconsin
151
- - nytimes_abbrev: Wyo.
152
- postal_code: WY
195
+ nytimes_abbrev: Wis.
196
+ postal_code: WI
197
+ - fips_code: 56
153
198
  name: Wyoming
199
+ nytimes_abbrev: Wyo.
200
+ postal_code: WY
@@ -1,5 +1,5 @@
1
1
  module Nytimes
2
2
  module Style
3
- VERSION = "0.3.0"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -21,10 +21,18 @@ class NytimesStyleTest < Test::Unit::TestCase
21
21
 
22
22
  def test_state_abbrevs
23
23
  assert_equal 'Ariz.', nytimes_state_abbrev('AZ')
24
- assert_equal 'N.H.', nytimes_state_abbrev('New Hampshire'),
24
+ assert_equal 'N.H.', nytimes_state_abbrev('New Hampshire')
25
+ assert_equal 'Wis.', nytimes_state_abbrev(55)
25
26
  assert_raise(ArgumentError) { nytimes_state_abbrev('Canada') }
26
27
  end
27
28
 
29
+ def test_state_names
30
+ assert_equal 'Arizona', nytimes_state_name('AZ')
31
+ assert_equal 'New Hampshire', nytimes_state_name('New Hampshire')
32
+ assert_equal 'Wisconsin', nytimes_state_name(55)
33
+ assert_raise(ArgumentError) { nytimes_state_name(242) }
34
+ end
35
+
28
36
  def test_numbers
29
37
  assert_equal 'five', nytimes_number(5)
30
38
  assert_equal '12', nytimes_number(12)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nytimes-style
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  - 0
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrei Scheinkman
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-09 00:00:00 -04:00
19
- default_executable:
18
+ date: 2011-06-15 00:00:00 Z
20
19
  dependencies: []
21
20
 
22
21
  description: Format numbers and dates according to The New York Times Manual of Style
@@ -38,7 +37,6 @@ files:
38
37
  - lib/nytimes-style/version.rb
39
38
  - nytimes-style.gemspec
40
39
  - test/test_nytimes_style.rb
41
- has_rdoc: true
42
40
  homepage: http://github.com/ascheink/nytimes-style
43
41
  licenses: []
44
42
 
@@ -68,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
66
  requirements: []
69
67
 
70
68
  rubyforge_project:
71
- rubygems_version: 1.3.7
69
+ rubygems_version: 1.8.5
72
70
  signing_key:
73
71
  specification_version: 3
74
72
  summary: New York Times style