ssn 0.3.0 → 1.0.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.
data/.gitignore CHANGED
@@ -19,4 +19,5 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
- .rvmrc
22
+ .rvmrc
23
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --backtrace
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in ssn.gemspec
4
+ gemspec
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ guard 'rspec', :version => 2, :all_on_start => true, :all_after_pass => true, :cli => '--debugger --color --format doc' do
4
+ watch( %r{^spec/.+_spec\.rb$} )
5
+ watch( %r{^lib/(.+)\.rb$} ) { |m| "spec/#{m[1]}_spec.rb" }
6
+ watch( 'spec/spec_helper.rb' ) { "spec" }
7
+ end
@@ -29,7 +29,7 @@ Encapsulates functionality for storing an unformatted SSN but formatting the SSN
29
29
 
30
30
  Add to environment file:
31
31
 
32
- gem 'ssn', '~>0.1.0'
32
+ gem 'ssn', '~>1.0.0'
33
33
 
34
34
  Run:
35
35
 
@@ -39,7 +39,7 @@ Run:
39
39
 
40
40
  Add to environment file:
41
41
 
42
- config.gem 'ssn', :version => '~>0.1.0', :source => 'http://gemcutter.org'
42
+ config.gem 'ssn', :version => '~>1.0.0', :source => 'http://gemcutter.org'
43
43
 
44
44
  Run:
45
45
 
data/Rakefile CHANGED
@@ -1,45 +1 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "ssn"
8
- gem.summary = %Q{Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.}
9
- gem.description = %Q{Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.}
10
- gem.email = "jason@lookforwardenterprises.com"
11
- gem.homepage = "http://github.com/midas/ssn"
12
- gem.authors = ["Jason Harrelson"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
14
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
- end
16
- Jeweler::GemcutterTasks.new
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
19
- end
20
-
21
- require 'spec/rake/spectask'
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << 'lib' << 'spec'
24
- spec.spec_files = FileList['spec/**/*_spec.rb']
25
- end
26
-
27
- Spec::Rake::SpecTask.new(:rcov) do |spec|
28
- spec.libs << 'lib' << 'spec'
29
- spec.pattern = 'spec/**/*_spec.rb'
30
- spec.rcov = true
31
- end
32
-
33
- task :spec => :check_dependencies
34
-
35
- task :default => :spec
36
-
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
39
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
-
41
- rdoc.rdoc_dir = 'rdoc'
42
- rdoc.title = "ssn #{version}"
43
- rdoc.rdoc_files.include('README*')
44
- rdoc.rdoc_files.include('lib/**/*.rb')
45
- end
1
+ require "bundler/gem_tasks"
data/lib/ssn.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
- require 'ssn/active_record_extensions'
4
- require 'ssn/social_security_number'
5
3
 
6
4
  module Ssn
7
- VERSION = '0.2.0'
5
+
6
+ autoload :ActiveRecordExtensions, 'ssn/active_record_extensions'
7
+ autoload :SocialSecurityNumber, 'ssn/social_security_number'
8
+ autoload :Version, 'ssn/version'
9
+
8
10
  end
9
11
 
10
- ActiveRecord::Base.send( :include, Ssn::ActiveRecordExtensions ) if defined?( ActiveRecord::Base )
12
+ ActiveRecord::Base.send( :include, Ssn::ActiveRecordExtensions ) if defined?( ActiveRecord::Base )
@@ -1,10 +1,13 @@
1
1
  module Ssn
2
+
2
3
  module ActiveRecordExtensions
4
+
3
5
  def self.included( base )
4
6
  base.extend ActsMethods
5
7
  end
6
8
 
7
9
  module ActsMethods
10
+
8
11
  def has_ssn( *args )
9
12
  options = args.extract_options!
10
13
 
@@ -21,9 +24,11 @@ module Ssn
21
24
  end
22
25
 
23
26
  alias_method :has_ssns, :has_ssn
27
+
24
28
  end
25
29
 
26
30
  module ClassMethods
31
+
27
32
  def initialize_has_ssn_from_args( args )
28
33
  if args.first.is_a? Symbol
29
34
  initialize_has_ssn_from_string args.first.to_s
@@ -35,23 +40,46 @@ module Ssn
35
40
  raise 'has_ssn can only accept a string, symbol or hash of strings or symbols'
36
41
  end
37
42
  end
43
+ private :initialize_has_ssn_from_args
38
44
 
39
45
  def initialize_has_ssn_from_string( str )
40
46
  define_method str do
41
- return raw_ssn.blank? ? nil : raw_ssn.gsub( Ssn::SocialSecurityNumber::UNFORMATTED_CAPTURE_REGEX, "\\1-\\2-\\3" )
47
+ self.send( "raw_#{str}" ).blank? ?
48
+ nil :
49
+ self.send( "raw_#{str}" ).gsub( Ssn::SocialSecurityNumber::UNFORMATTED_CAPTURE_REGEX, "\\1-\\2-\\3" )
42
50
  end
43
51
 
44
52
  define_method "#{str}=" do |value|
45
- self.raw_ssn = value.gsub( /-/, "" )
53
+ return if ssn_value_considered_blank?( value )
54
+ self.send "raw_#{str}=", value.gsub( /-/, "" )
46
55
  end
47
- end
48
56
 
49
- def initialize_has_ssn_from_hash( args )
57
+ define_method "raw_#{str}=" do |value|
58
+ return if ssn_value_considered_blank?( value )
59
+ super
60
+ end
50
61
  end
62
+ private :initialize_has_ssn_from_string
63
+
51
64
  end
52
65
 
53
66
  module InstanceMethods
54
67
 
68
+ def considered_blank_ssns
69
+ [
70
+ '000000000',
71
+ '000-00-0000'
72
+ ]
73
+ end
74
+ private :considered_blank_ssns
75
+
76
+ def ssn_value_considered_blank?( value )
77
+ considered_blank_ssns.include? value
78
+ end
79
+ private :ssn_value_considered_blank?
80
+
55
81
  end
82
+
56
83
  end
57
- end
84
+
85
+ end
@@ -1,5 +1,7 @@
1
1
  module Ssn
2
+
2
3
  class SocialSecurityNumber
4
+
3
5
  FORMATTED_REGEX = /^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$/
4
6
  UNFORMATTED_REGEX = /^[0-9]{9}$/
5
7
  UNFORMATTED_CAPTURE_REGEX = /^([0-9]{3})([0-9]{2})([0-9]{4})$/
@@ -7,22 +9,29 @@ module Ssn
7
9
  attr_reader :raw
8
10
 
9
11
  def initialize( value=nil )
10
- return if value.nil?
12
+ return if value.nil? || value.empty?
13
+ return if value == '000000000' || value == '000-00-0000'
11
14
  @raw = SocialSecurityNumber.parse( value )
12
15
  end
13
16
 
14
17
  def formatted
15
- return (raw.nil? || raw.empty?) ?
16
- '' :
17
- SocialSecurityNumber.format( raw )
18
+ SocialSecurityNumber.format raw
18
19
  end
19
20
 
20
21
  def self.parse( value )
21
- value.gsub( /-/, "" )
22
+ value.nil? ?
23
+ nil :
24
+ value.gsub( /-/, "" )
22
25
  end
23
26
 
24
27
  def self.format( value )
25
- parse( value ).gsub( UNFORMATTED_CAPTURE_REGEX,"\\1-\\2-\\3" )
28
+ parsed = parse( value )
29
+
30
+ parsed.nil? ?
31
+ nil :
32
+ parsed.gsub( UNFORMATTED_CAPTURE_REGEX,"\\1-\\2-\\3" )
26
33
  end
34
+
27
35
  end
28
- end
36
+
37
+ end
@@ -0,0 +1,3 @@
1
+ module Ssn
2
+ VERSION = "1.0.0"
3
+ end
@@ -1,12 +1,16 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
3
4
  require 'rubygems'
4
5
  require 'active_record'
6
+ require 'rails'
7
+ require 'bundler/setup'
8
+
5
9
  require 'ssn'
6
- require 'spec'
7
- require 'spec/autorun'
8
10
 
9
- Spec::Runner.configure do |config|
11
+ RSpec.configure do |config|
12
+
13
+ config.mock_with :rspec
10
14
 
11
15
  end
12
16
 
@@ -1,58 +1,65 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Ssn::SocialSecurityNumber" do
4
- before :each do
5
- @klass = Ssn::SocialSecurityNumber
6
- @instance = @klass.new
7
- end
3
+ describe Ssn::SocialSecurityNumber do
8
4
 
9
5
  it "should agree that the UNFORMATTED_REGEX is /^[0-9]{9}$/" do
10
- @klass::UNFORMATTED_REGEX.should == /^[0-9]{9}$/
6
+ described_class::UNFORMATTED_REGEX.should == /^[0-9]{9}$/
11
7
  end
12
8
 
13
9
  it "should agree that the FORMATTED_REGEX is /^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$/" do
14
- @klass::FORMATTED_REGEX.should == /^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$/
10
+ described_class::FORMATTED_REGEX.should == /^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$/
15
11
  end
16
12
 
17
13
  it "should agree that the UNFORMATTED_CAPTURE_REGEX is /^([0-9]{3})([0-9]{2})([0-9]{4})$/" do
18
- @klass::UNFORMATTED_CAPTURE_REGEX.should == /^([0-9]{3})([0-9]{2})([0-9]{4})$/
14
+ described_class::UNFORMATTED_CAPTURE_REGEX.should == /^([0-9]{3})([0-9]{2})([0-9]{4})$/
19
15
  end
20
16
 
21
17
  it "should initialize when given an unformatted SSN" do
22
- @klass.new( '123456789' ).raw.should == '123456789'
18
+ described_class.new( '123456789' ).raw.should == '123456789'
23
19
  end
24
20
 
25
21
  it "should initialize when given an unformatted SSN" do
26
- @klass.new( '123-45-6789' ).raw.should == '123456789'
22
+ described_class.new( '123-45-6789' ).raw.should == '123456789'
23
+ end
24
+
25
+ it "should initialize the SSN to empty when given 000000000" do
26
+ described_class.new( '000000000' ).raw.should be_nil
27
+ end
28
+
29
+ it "should initialize the SSN to empty when given 000-00-0000" do
30
+ described_class.new( '000-00-0000' ).raw.should be_nil
27
31
  end
28
32
 
29
33
  it "should return a formatted SSN" do
30
- @klass.new( '123456789' ).formatted.should == '123-45-6789'
34
+ described_class.new( '123456789' ).formatted.should == '123-45-6789'
31
35
  end
32
36
 
33
37
  it "should return a '' when a the SSN is blank" do
34
- @klass.new( '' ).formatted.should == ''
38
+ described_class.new( '' ).formatted.should be_nil
35
39
  end
36
40
 
37
41
  it "should return a '' when a the SSN is nil" do
38
- @klass.new.formatted.should == ''
42
+ described_class.new.formatted.should be_nil
39
43
  end
40
44
 
41
45
  context "well formed SSNs" do
46
+
42
47
  it "should parse an SSN without formatting" do
43
- @klass.parse( '123456789' ).should == '123456789'
48
+ described_class.parse( '123456789' ).should == '123456789'
44
49
  end
45
50
 
46
51
  it "should parse an SSN with formatting" do
47
- @klass.parse( '123-45-6789' ).should == '123456789'
52
+ described_class.parse( '123-45-6789' ).should == '123456789'
48
53
  end
49
54
 
50
55
  it "should format an SSN without formatting" do
51
- @klass.format( '123456789' ).should == '123-45-6789'
56
+ described_class.format( '123456789' ).should == '123-45-6789'
52
57
  end
53
58
 
54
59
  it "should format an SSN with formatting" do
55
- @klass.format( '123-45-6789' ).should == '123-45-6789'
60
+ described_class.format( '123-45-6789' ).should == '123-45-6789'
56
61
  end
62
+
57
63
  end
58
- end
64
+
65
+ end
@@ -1,7 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Ssn" do
3
+ describe Ssn do
4
+
5
+ let :user do
6
+ User.new :name => 'John Smith',
7
+ :raw_ssn => '123456789'
8
+ end
9
+
4
10
  describe "having ActiveRecord extensions" do
11
+
5
12
  it "should respond to has_ssn" do
6
13
  ActiveRecord::Base.respond_to?( :has_ssn ).should be_true
7
14
  end
@@ -9,66 +16,116 @@ describe "Ssn" do
9
16
  it "should respond to has_ssns" do
10
17
  ActiveRecord::Base.respond_to?( :has_ssns ).should be_true
11
18
  end
19
+
12
20
  end
13
21
 
14
22
  describe "when a user provides a symbol to the has_ssn method" do
15
- before :each do
16
- @user = User.new :name => 'John Smith', :raw_ssn => '123456789'
17
- end
18
23
 
19
24
  it "should respond to a getter method with the correct name" do
20
- @user.respond_to?( :ssn ).should be_true
25
+ user.respond_to?( :ssn ).should be_true
21
26
  end
22
27
 
23
28
  it "should respond to a setter method with the correct name" do
24
- @user.respond_to?( :ssn= ).should be_true
29
+ user.respond_to?( :ssn= ).should be_true
25
30
  end
26
31
 
27
32
  it "should add a length validation on the raw ssn field" do
28
- @user.raw_ssn = '1234567890'
29
- @user.save.should be_false
33
+ user.raw_ssn = '1234567890'
34
+ user.save.should be_false
30
35
  end
31
36
 
32
37
  it "should not allow any formatting in the raw ssn field" do
33
- @user.raw_ssn = '1-3456789'
34
- @user.save.should be_false
38
+ user.raw_ssn = '1-3456789'
39
+ user.save.should be_false
35
40
  end
36
41
 
37
42
  it "should not allow a mal-formed social security number" do
38
- @user.ssn = '1-3456789'
39
- @user.save.should be_false
43
+ user.ssn = '1-3456789'
44
+ user.save.should be_false
40
45
  end
46
+
41
47
  end
42
48
 
43
49
  describe "in general" do
44
- before :each do
45
- @user = User.new :name => 'John Smith', :raw_ssn => '123456789'
46
- end
47
50
 
48
51
  it "should return nil if the raw ssn is nil" do
49
- @user.raw_ssn = nil
50
- @user.save!
51
- @user.ssn.should be_nil
52
+ user.raw_ssn = nil
53
+ user.save!
54
+ user.ssn.should be_nil
52
55
  end
53
56
 
54
57
  it "should return nil if the raw ssn is ''" do
55
- @user.raw_ssn = ''
56
- @user.save!
57
- @user.ssn.should be_nil
58
+ user.raw_ssn = ''
59
+ user.save!
60
+ user.ssn.should be_nil
58
61
  end
59
62
 
60
63
  it "should return a formatted social security number" do
61
- @user.ssn.should == '123-45-6789'
64
+ user.ssn.should == '123-45-6789'
62
65
  end
63
66
 
64
67
  it "should set ssn" do
65
- @user.ssn = '234-56-7890'
66
- @user.ssn.should == '234-56-7890'
68
+ user.ssn = '234-56-7890'
69
+ user.ssn.should == '234-56-7890'
67
70
  end
68
71
 
69
72
  it "should strip formatting from a social security number" do
70
- @user.ssn = '234-56-7890'
71
- @user.raw_ssn.should == '234567890'
73
+ user.ssn = '234-56-7890'
74
+ user.raw_ssn.should == '234567890'
75
+ end
76
+
77
+ end
78
+
79
+ context 'when the ssn is set to 000000000' do
80
+
81
+ let :user do
82
+ User.new :name => 'John Smith',
83
+ :ssn => '000000000'
84
+ end
85
+
86
+ it "should agree that the ssn is nil" do
87
+ user.ssn.should be_nil
88
+ end
89
+
90
+ end
91
+
92
+ context 'when the ssn is set to 000-00-0000' do
93
+
94
+ let :user do
95
+ User.new :name => 'John Smith',
96
+ :ssn => '000-00-0000'
97
+ end
98
+
99
+ it "should agree that the ssn is nil" do
100
+ user.ssn.should be_nil
72
101
  end
102
+
73
103
  end
104
+
105
+ context 'when the raw_ssn is set to 000000000' do
106
+
107
+ let :user do
108
+ User.new :name => 'John Smith',
109
+ :raw_ssn => '000000000'
110
+ end
111
+
112
+ it "should agree that the raw_ssn is nil" do
113
+ user.raw_ssn.should be_nil
114
+ end
115
+
116
+ end
117
+
118
+ context 'when the ssn is set to 000-00-0000' do
119
+
120
+ let :user do
121
+ User.new :name => 'John Smith',
122
+ :raw_ssn => '000-00-0000'
123
+ end
124
+
125
+ it "should agree that the raw_ssn is nil" do
126
+ user.raw_ssn.should be_nil
127
+ end
128
+
129
+ end
130
+
74
131
  end
@@ -1,63 +1,32 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "ssn/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{ssn}
8
- s.version = "0.3.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Jason Harrelson"]
12
- s.date = %q{2010-11-10}
6
+ s.name = "ssn"
7
+ s.version = Ssn::VERSION
8
+ s.authors = ["C. Jason Harrelson (midas)"]
9
+ s.email = ["jason@lookforwardenterprises.com"]
10
+ s.homepage = "https://github.com/midas/ssn"
11
+ s.summary = %q{Easily use SSNs in your app.}
13
12
  s.description = %q{Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.}
14
- s.email = %q{jason@lookforwardenterprises.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/ssn.rb",
27
- "lib/ssn/active_record_extensions.rb",
28
- "lib/ssn/social_security_number.rb",
29
- "script/console",
30
- "script/environment.rb",
31
- "script/seed.rb",
32
- "spec/database.yml",
33
- "spec/spec.opts",
34
- "spec/spec_helper.rb",
35
- "spec/ssn/social_security_number_spec.rb",
36
- "spec/ssn_spec.rb",
37
- "ssn.gemspec"
38
- ]
39
- s.homepage = %q{http://github.com/midas/ssn}
40
- s.rdoc_options = ["--charset=UTF-8"]
13
+
14
+ s.rubyforge_project = "ssn"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
41
19
  s.require_paths = ["lib"]
42
- s.rubygems_version = %q{1.3.7}
43
- s.summary = %q{Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.}
44
- s.test_files = [
45
- "spec/spec_helper.rb",
46
- "spec/ssn/social_security_number_spec.rb",
47
- "spec/ssn_spec.rb"
48
- ]
49
20
 
50
- if s.respond_to? :specification_version then
51
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
52
- s.specification_version = 3
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency "rspec"
23
+ s.add_development_dependency "rails", "3.1.0"
24
+ s.add_development_dependency "sqlite3"
25
+ s.add_development_dependency "guard"
26
+ s.add_development_dependency 'rb-fsevent'
27
+ s.add_development_dependency 'growl'
28
+ s.add_development_dependency 'guard-rspec'
29
+ s.add_development_dependency 'ruby-debug'
53
30
 
54
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
55
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
56
- else
57
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
58
- end
59
- else
60
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
- end
31
+ s.add_runtime_dependency "rails"
62
32
  end
63
-
metadata CHANGED
@@ -1,22 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssn
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 3
9
9
  - 0
10
- version: 0.3.0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
- - Jason Harrelson
13
+ - C. Jason Harrelson (midas)
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-10 00:00:00 -06:00
19
- default_executable:
18
+ date: 2012-02-11 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rspec
@@ -26,33 +25,148 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 13
28
+ hash: 3
30
29
  segments:
31
- - 1
32
- - 2
33
- - 9
34
- version: 1.2.9
30
+ - 0
31
+ version: "0"
35
32
  type: :development
36
33
  version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: rails
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - "="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 3
45
+ - 1
46
+ - 0
47
+ version: 3.1.0
48
+ type: :development
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: sqlite3
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ type: :development
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: guard
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ type: :development
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: rb-fsevent
80
+ prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ type: :development
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ name: growl
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id006
106
+ - !ruby/object:Gem::Dependency
107
+ name: guard-rspec
108
+ prerelease: false
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
117
+ version: "0"
118
+ type: :development
119
+ version_requirements: *id007
120
+ - !ruby/object:Gem::Dependency
121
+ name: ruby-debug
122
+ prerelease: false
123
+ requirement: &id008 !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ type: :development
133
+ version_requirements: *id008
134
+ - !ruby/object:Gem::Dependency
135
+ name: rails
136
+ prerelease: false
137
+ requirement: &id009 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ hash: 3
143
+ segments:
144
+ - 0
145
+ version: "0"
146
+ type: :runtime
147
+ version_requirements: *id009
37
148
  description: Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.
38
- email: jason@lookforwardenterprises.com
149
+ email:
150
+ - jason@lookforwardenterprises.com
39
151
  executables: []
40
152
 
41
153
  extensions: []
42
154
 
43
- extra_rdoc_files:
44
- - LICENSE
45
- - README.rdoc
155
+ extra_rdoc_files: []
156
+
46
157
  files:
47
158
  - .document
48
159
  - .gitignore
160
+ - .rspec
161
+ - Gemfile
162
+ - Guardfile
49
163
  - LICENSE
50
164
  - README.rdoc
51
165
  - Rakefile
52
- - VERSION
53
166
  - lib/ssn.rb
54
167
  - lib/ssn/active_record_extensions.rb
55
168
  - lib/ssn/social_security_number.rb
169
+ - lib/ssn/version.rb
56
170
  - script/console
57
171
  - script/environment.rb
58
172
  - script/seed.rb
@@ -62,13 +176,12 @@ files:
62
176
  - spec/ssn/social_security_number_spec.rb
63
177
  - spec/ssn_spec.rb
64
178
  - ssn.gemspec
65
- has_rdoc: true
66
- homepage: http://github.com/midas/ssn
179
+ homepage: https://github.com/midas/ssn
67
180
  licenses: []
68
181
 
69
182
  post_install_message:
70
- rdoc_options:
71
- - --charset=UTF-8
183
+ rdoc_options: []
184
+
72
185
  require_paths:
73
186
  - lib
74
187
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -91,12 +204,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
204
  version: "0"
92
205
  requirements: []
93
206
 
94
- rubyforge_project:
95
- rubygems_version: 1.3.7
207
+ rubyforge_project: ssn
208
+ rubygems_version: 1.8.10
96
209
  signing_key:
97
210
  specification_version: 3
98
- summary: Encapsulates functionality for storing an unformatted SSN but formatting the SSN on print.
211
+ summary: Easily use SSNs in your app.
99
212
  test_files:
213
+ - spec/database.yml
214
+ - spec/spec.opts
100
215
  - spec/spec_helper.rb
101
216
  - spec/ssn/social_security_number_spec.rb
102
217
  - spec/ssn_spec.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.0