digital_opera 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- digital_opera (0.0.12)
4
+ digital_opera (0.0.13)
5
5
  coffee-rails
6
6
  rails (>= 3.1.0)
7
7
 
data/README.md CHANGED
@@ -1,13 +1,19 @@
1
- ![Digital Opera, LLC](http://digitalopera.com/wp-content/uploads/2013/10/large-logo.png)
1
+ ![Digital Opera, LLC](http://digitalopera.com/wp-content/uploads/2014/03/logo-symbol-text-orange-gary.png)
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/digital_opera.png)](http://badge.fury.io/rb/digital_opera)
4
4
 
5
- This Gem was created to store all of the crazy tricks, hacks and practices used by Digital Opera in various Ruby
6
- based projects. We figured it was easier to throw them all in a Gem than to keep copying them into projects
5
+ This Gem was created to store all of the crazy tricks, hacks and practices used by Digital Opera in various Ruby
6
+ based projects. We figured it was easier to throw them all in a Gem than to keep copying them into projects
7
7
  independently, and then we thought...maybe someone else would find them useful too!
8
8
 
9
9
  If you do find this Gem to be useful, please let us know.
10
10
 
11
+ ### Version 0.0.13
12
+ - 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
+
14
+ ### Version 0.0.12
15
+ - Bug fix in Banker - was causing float multiplication rounding error
16
+
11
17
  ### Version 0.0.10
12
18
  - Bug fix in [ellipsis.js.coffee](https://github.com/noiseunion/do-toolbox/wiki/ellipsis.js.coffee)
13
19
 
@@ -0,0 +1,85 @@
1
+ module DigitalOpera
2
+ class States
3
+ US_STATES = [
4
+ ['Alabama', 'AL'],
5
+ ['Alaska', 'AK'],
6
+ ['Arizona', 'AZ'],
7
+ ['Arkansas', 'AR'],
8
+ ['California', 'CA'],
9
+ ['Colorado', 'CO'],
10
+ ['Connecticut', 'CT'],
11
+ ['Delaware', 'DE'],
12
+ ['District of Columbia', 'DC'],
13
+ ['Florida', 'FL'],
14
+ ['Georgia', 'GA'],
15
+ ['Hawaii', 'HI'],
16
+ ['Idaho', 'ID'],
17
+ ['Illinois', 'IL'],
18
+ ['Indiana', 'IN'],
19
+ ['Iowa', 'IA'],
20
+ ['Kansas', 'KS'],
21
+ ['Kentucky', 'KY'],
22
+ ['Louisiana', 'LA'],
23
+ ['Maine', 'ME'],
24
+ ['Maryland', 'MD'],
25
+ ['Massachusetts', 'MA'],
26
+ ['Michigan', 'MI'],
27
+ ['Minnesota', 'MN'],
28
+ ['Mississippi', 'MS'],
29
+ ['Missouri', 'MO'],
30
+ ['Montana', 'MT'],
31
+ ['Nebraska', 'NE'],
32
+ ['Nevada', 'NV'],
33
+ ['New Hampshire', 'NH'],
34
+ ['New Jersey', 'NJ'],
35
+ ['New Mexico', 'NM'],
36
+ ['New York', 'NY'],
37
+ ['North Carolina', 'NC'],
38
+ ['North Dakota', 'ND'],
39
+ ['Ohio', 'OH'],
40
+ ['Oklahoma', 'OK'],
41
+ ['Oregon', 'OR'],
42
+ ['Pennsylvania', 'PA'],
43
+ ['Rhode Island', 'RI'],
44
+ ['South Carolina', 'SC'],
45
+ ['South Dakota', 'SD'],
46
+ ['Tennessee', 'TN'],
47
+ ['Texas', 'TX'],
48
+ ['Utah', 'UT'],
49
+ ['Vermont', 'VT'],
50
+ ['Virginia', 'VA'],
51
+ ['Washington', 'WA'],
52
+ ['West Virginia', 'WV'],
53
+ ['Wisconsin', 'WI'],
54
+ ['Wyoming', 'WY']
55
+ ]
56
+
57
+ def self.to_collection
58
+ @collection ||= US_STATES.sort{|a, b| a.first <=> b.first }
59
+ end
60
+
61
+ def self.abbreviations
62
+ to_hash.keys.sort
63
+ end
64
+
65
+ def self.names
66
+ to_hash.values.sort
67
+ end
68
+
69
+ def self.find_name_by_abbreviation(abbr)
70
+ to_hash[abbr.to_s.upcase]
71
+ end
72
+
73
+ def self.find_abbreviation_by_name(name)
74
+ to_hash.detect{ |k, v| v == name.to_s.capitalize }.first
75
+ end
76
+
77
+ def self.to_hash
78
+ @hash ||= (
79
+ h = {}
80
+ US_STATES.map{ |state| h[state.last] = state.first }
81
+ h
82
+ )
83
+ end
84
+ end
85
+ end
@@ -1,3 +1,3 @@
1
1
  module DigitalOpera
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+ require 'digital_opera/states'
3
+
4
+ describe DigitalOpera::States do
5
+ subject{ DigitalOpera::States }
6
+
7
+ describe '#to_collection' do
8
+ its(:to_collection){ should include ['Alabama', 'AL']}
9
+ it 'should have 51 records' do
10
+ subject.to_collection.size.should eq 51
11
+ end
12
+
13
+ it 'should have a collection of arrays' do
14
+ subject.to_collection.all?{ |item| item.is_a?(Array) }.should eq true
15
+ end
16
+
17
+ it 'should have a key matching the name' do
18
+ subject.to_collection.all?{|item| item.first[0] == item.last[0] }.should be_true
19
+ end
20
+ end
21
+
22
+ describe '#abbreviations' do
23
+ its(:abbreviations){ should be_is_a Array }
24
+ its(:abbreviations){ should include 'AK' }
25
+
26
+ it 'should have 51 records' do
27
+ subject.abbreviations.size.should eq 51
28
+ end
29
+ end
30
+
31
+ describe '#names' do
32
+ its(:names){ should be_is_a Array }
33
+ its(:names){ should include 'Wyoming' }
34
+
35
+ it 'should have 51 records' do
36
+ subject.names.size.should eq 51
37
+ end
38
+ end
39
+
40
+ describe '#find_name_by_abbreviation' do
41
+ context 'when param is a string' do
42
+ context 'when is uppercase' do
43
+ it 'should find state names' do
44
+ subject.find_name_by_abbreviation('MN').should eq 'Minnesota'
45
+ end
46
+ end
47
+
48
+ context 'when is downcase' do
49
+ it 'should find state names' do
50
+ subject.find_name_by_abbreviation('mn').should eq 'Minnesota'
51
+ end
52
+ end
53
+
54
+ context 'when is mixed case' do
55
+ it 'should find state names' do
56
+ subject.find_name_by_abbreviation('Mn').should eq 'Minnesota'
57
+ end
58
+ end
59
+ end
60
+
61
+ context 'when param is a symbol' do
62
+ context 'when is uppercase' do
63
+ it 'should find state names' do
64
+ subject.find_name_by_abbreviation(:MN).should eq 'Minnesota'
65
+ end
66
+ end
67
+
68
+ context 'when is downcase' do
69
+ it 'should find state names' do
70
+ subject.find_name_by_abbreviation(:mn).should eq 'Minnesota'
71
+ end
72
+ end
73
+
74
+ context 'when is mixed case' do
75
+ it 'should find state names' do
76
+ subject.find_name_by_abbreviation(:Mn).should eq 'Minnesota'
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ describe '#find_abbreviation_by_name' do
83
+ context 'when param is a string' do
84
+ context 'when is uppercase' do
85
+ it 'should find state names' do
86
+ subject.find_abbreviation_by_name('MINNESOTA').should eq 'MN'
87
+ end
88
+ end
89
+
90
+ context 'when is downcase' do
91
+ it 'should find state names' do
92
+ subject.find_abbreviation_by_name('minnesota').should eq 'MN'
93
+ end
94
+ end
95
+
96
+ context 'when is mixed case' do
97
+ it 'should find state names' do
98
+ subject.find_abbreviation_by_name('Minnesota').should eq 'MN'
99
+ end
100
+ end
101
+ end
102
+
103
+ context 'when param is a symbol' do
104
+ context 'when is uppercase' do
105
+ it 'should find state names' do
106
+ subject.find_abbreviation_by_name(:MINNESOTA).should eq 'MN'
107
+ end
108
+ end
109
+
110
+ context 'when is downcase' do
111
+ it 'should find state names' do
112
+ subject.find_abbreviation_by_name(:minnesota).should eq 'MN'
113
+ end
114
+ end
115
+
116
+ context 'when is mixed case' do
117
+ it 'should find state names' do
118
+ subject.find_abbreviation_by_name(:Minnesota).should eq 'MN'
119
+ end
120
+ end
121
+ end
122
+ end
123
+
124
+ describe '#to_hash' do
125
+ it 'should be a hash' do
126
+ subject.to_hash.should be_is_a(Hash)
127
+ end
128
+
129
+ it 'should have a key of abbreviation and a value of name' do
130
+ subject.to_hash['KY'].should eq 'Kentucky'
131
+ end
132
+
133
+ it 'should keys of abbreviations' do
134
+ subject.to_hash.keys.all?{|key| key.size.should eq 2 }
135
+ end
136
+
137
+ it 'should values of names' do
138
+ subject.to_hash.values.all?{|key| key.size.should > 2 }
139
+ end
140
+
141
+ it 'should have a key matching the name' do
142
+ subject.to_hash.all?{|key, value| key[0] == value[0] }.should be_true
143
+ end
144
+ end
145
+ end
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.12
4
+ version: 0.0.13
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-10 00:00:00.000000000 Z
13
+ date: 2014-03-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -291,6 +291,7 @@ files:
291
291
  - lib/digital_opera/presenter/base.rb
292
292
  - lib/digital_opera/presenter/concerns/json_serialization.rb
293
293
  - lib/digital_opera/services/s3.rb
294
+ - lib/digital_opera/states.rb
294
295
  - lib/digital_opera/token.rb
295
296
  - lib/digital_opera/version.rb
296
297
  - spec/dummy/README.rdoc
@@ -348,6 +349,7 @@ files:
348
349
  - spec/lib/digital_opera/base_extensions/object_spec.rb
349
350
  - spec/lib/digital_opera/presenter/base_spec.rb
350
351
  - spec/lib/digital_opera/services/s3_spec.rb
352
+ - spec/lib/digital_opera/states_spec.rb
351
353
  - spec/lib/digital_opera/token_spec.rb
352
354
  - spec/spec_helper.rb
353
355
  - spec/support/aws.rb
@@ -369,12 +371,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
369
371
  - - ! '>='
370
372
  - !ruby/object:Gem::Version
371
373
  version: '0'
374
+ segments:
375
+ - 0
376
+ hash: 1226064003626866430
372
377
  required_rubygems_version: !ruby/object:Gem::Requirement
373
378
  none: false
374
379
  requirements:
375
380
  - - ! '>='
376
381
  - !ruby/object:Gem::Version
377
382
  version: '0'
383
+ segments:
384
+ - 0
385
+ hash: 1226064003626866430
378
386
  requirements: []
379
387
  rubyforge_project:
380
388
  rubygems_version: 1.8.23
@@ -437,6 +445,7 @@ test_files:
437
445
  - spec/lib/digital_opera/base_extensions/object_spec.rb
438
446
  - spec/lib/digital_opera/presenter/base_spec.rb
439
447
  - spec/lib/digital_opera/services/s3_spec.rb
448
+ - spec/lib/digital_opera/states_spec.rb
440
449
  - spec/lib/digital_opera/token_spec.rb
441
450
  - spec/spec_helper.rb
442
451
  - spec/support/aws.rb