digital_opera 0.0.13 → 0.0.14
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.
- data/Gemfile.lock +1 -1
- data/README.md +3 -0
- data/lib/digital_opera/states.rb +28 -2
- data/lib/digital_opera/version.rb +1 -1
- data/spec/lib/digital_opera/states_spec.rb +56 -0
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -8,6 +8,9 @@ independently, and then we thought...maybe someone else would find them useful t
|
|
8
8
|
|
9
9
|
If you do find this Gem to be useful, please let us know.
|
10
10
|
|
11
|
+
### Version 0.0.14
|
12
|
+
- Updated [DigitalOpera::States](https://github.com/noiseunion/do-toolbox/wiki/DigitalOpera::States) to accept a mapping parameter to define keys and values
|
13
|
+
|
11
14
|
### Version 0.0.13
|
12
15
|
- Added [DigitalOpera::States](https://github.com/noiseunion/do-toolbox/wiki/DigitalOpera::States). This file is not included by default. Be sure to add `require 'digital_opera/states'` in the application.rb
|
13
16
|
|
data/lib/digital_opera/states.rb
CHANGED
@@ -54,8 +54,34 @@ module DigitalOpera
|
|
54
54
|
['Wyoming', 'WY']
|
55
55
|
]
|
56
56
|
|
57
|
-
def self.to_collection
|
58
|
-
@collection
|
57
|
+
def self.to_collection(mapping={})
|
58
|
+
@collection = (
|
59
|
+
states = US_STATES
|
60
|
+
|
61
|
+
if mapping[:key].present? || mapping[:value].present?
|
62
|
+
states =US_STATES.map do |state|
|
63
|
+
key = state.last
|
64
|
+
value = state.first
|
65
|
+
|
66
|
+
if mapping[:value] == :abbr
|
67
|
+
value = state.last
|
68
|
+
elsif mapping[:value] == :name
|
69
|
+
value = state.first
|
70
|
+
end
|
71
|
+
|
72
|
+
if mapping[:key] == :name
|
73
|
+
key = state.first
|
74
|
+
elsif mapping[:key] == :abbr
|
75
|
+
key = state.last
|
76
|
+
end
|
77
|
+
|
78
|
+
[value, key]
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
states.sort{|a, b| a.first <=> b.first }
|
84
|
+
)
|
59
85
|
end
|
60
86
|
|
61
87
|
def self.abbreviations
|
@@ -17,6 +17,62 @@ describe DigitalOpera::States do
|
|
17
17
|
it 'should have a key matching the name' do
|
18
18
|
subject.to_collection.all?{|item| item.first[0] == item.last[0] }.should be_true
|
19
19
|
end
|
20
|
+
|
21
|
+
context 'when mapping is supplied' do
|
22
|
+
subject{ DigitalOpera::States.to_collection({key: :abbr, value: :name}) }
|
23
|
+
|
24
|
+
it 'should not raise error' do
|
25
|
+
expect{ subject }.to_not raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should have abbreviation as key' do
|
29
|
+
subject.first.last.should eq 'AL'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should have name as key' do
|
33
|
+
subject = DigitalOpera::States.to_collection({key: :name})
|
34
|
+
subject.first.last.should eq 'Alabama'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should have abbreviation as key' do
|
38
|
+
subject = DigitalOpera::States.to_collection({key: :abbr})
|
39
|
+
subject.first.last.should eq 'AL'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should have name as value' do
|
43
|
+
subject = DigitalOpera::States.to_collection({value: :name})
|
44
|
+
subject.first.first.should eq 'Alabama'
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should have abbreviation as value' do
|
48
|
+
subject = DigitalOpera::States.to_collection({value: :abbr})
|
49
|
+
subject.first.first.should eq 'AK'
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should have name as key and name as value' do
|
53
|
+
subject = DigitalOpera::States.to_collection({key: :name, value: :name})
|
54
|
+
subject.first.first.should eq 'Alabama'
|
55
|
+
subject.first.last.should eq 'Alabama'
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should have abbreviation as key and abbreviation as value' do
|
59
|
+
subject = DigitalOpera::States.to_collection({key: :abbr, value: :abbr})
|
60
|
+
subject.first.first.should eq 'AK'
|
61
|
+
subject.first.last.should eq 'AK'
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should have name as key and abbreviation as value' do
|
65
|
+
subject = DigitalOpera::States.to_collection({key: :name, value: :abbr})
|
66
|
+
subject.first.first.should eq 'AK'
|
67
|
+
subject.first.last.should eq 'Alaska'
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should have abbreviation as key and name as value' do
|
71
|
+
subject = DigitalOpera::States.to_collection({key: :abbr, value: :name})
|
72
|
+
subject.first.first.should eq 'Alabama'
|
73
|
+
subject.first.last.should eq 'AL'
|
74
|
+
end
|
75
|
+
end
|
20
76
|
end
|
21
77
|
|
22
78
|
describe '#abbreviations' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: digital_opera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-03-
|
13
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -373,7 +373,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
373
373
|
version: '0'
|
374
374
|
segments:
|
375
375
|
- 0
|
376
|
-
hash:
|
376
|
+
hash: 2192845350802676624
|
377
377
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
378
378
|
none: false
|
379
379
|
requirements:
|
@@ -382,7 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
382
382
|
version: '0'
|
383
383
|
segments:
|
384
384
|
- 0
|
385
|
-
hash:
|
385
|
+
hash: 2192845350802676624
|
386
386
|
requirements: []
|
387
387
|
rubyforge_project:
|
388
388
|
rubygems_version: 1.8.23
|