identified 0.1.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.
- checksums.yaml +7 -0
- data/data/ssn/area_data.txt +58 -0
- data/data/ssn/area_data_raw.txt +66 -0
- data/data/ssn/high_groups/april_2004_raw.txt +145 -0
- data/data/ssn/high_groups/april_2005_raw.txt +138 -0
- data/data/ssn/high_groups/april_2006_raw.txt +140 -0
- data/data/ssn/high_groups/april_2007_raw.txt +141 -0
- data/data/ssn/high_groups/april_2008_raw.txt +141 -0
- data/data/ssn/high_groups/april_2009_raw.txt +140 -0
- data/data/ssn/high_groups/april_2010_raw.txt +140 -0
- data/data/ssn/high_groups/april_2011_raw.txt +141 -0
- data/data/ssn/high_groups/august_2004_raw.txt +137 -0
- data/data/ssn/high_groups/august_2005_raw.txt +139 -0
- data/data/ssn/high_groups/august_2006_raw.txt +140 -0
- data/data/ssn/high_groups/august_2007_raw.txt +141 -0
- data/data/ssn/high_groups/august_2008_raw.txt +141 -0
- data/data/ssn/high_groups/august_2009_raw.txt +140 -0
- data/data/ssn/high_groups/august_2010_raw.txt +141 -0
- data/data/ssn/high_groups/december_2003_raw.txt +138 -0
- data/data/ssn/high_groups/december_2004_raw.txt +138 -0
- data/data/ssn/high_groups/december_2005_raw.txt +140 -0
- data/data/ssn/high_groups/december_2006_raw.txt +140 -0
- data/data/ssn/high_groups/december_2007_raw.txt +141 -0
- data/data/ssn/high_groups/december_2008_raw.txt +141 -0
- data/data/ssn/high_groups/december_2009_raw.txt +140 -0
- data/data/ssn/high_groups/december_2010_raw.txt +141 -0
- data/data/ssn/high_groups/february_2004_raw.txt +137 -0
- data/data/ssn/high_groups/february_2005_raw.txt +138 -0
- data/data/ssn/high_groups/february_2006_raw.txt +140 -0
- data/data/ssn/high_groups/february_2007_raw.txt +141 -0
- data/data/ssn/high_groups/february_2008_raw.txt +141 -0
- data/data/ssn/high_groups/february_2009_raw.txt +140 -0
- data/data/ssn/high_groups/february_2010_raw.txt +140 -0
- data/data/ssn/high_groups/february_2011_raw.txt +141 -0
- data/data/ssn/high_groups/january_2004_raw.txt +137 -0
- data/data/ssn/high_groups/january_2005_raw.txt +138 -0
- data/data/ssn/high_groups/january_2006_raw.txt +140 -0
- data/data/ssn/high_groups/january_2007_raw.txt +141 -0
- data/data/ssn/high_groups/january_2008_raw.txt +141 -0
- data/data/ssn/high_groups/january_2009_raw.txt +141 -0
- data/data/ssn/high_groups/january_2010_raw.txt +140 -0
- data/data/ssn/high_groups/january_2011_raw.txt +141 -0
- data/data/ssn/high_groups/july_2004_raw.txt +137 -0
- data/data/ssn/high_groups/july_2005_raw.txt +139 -0
- data/data/ssn/high_groups/july_2006_raw.txt +140 -0
- data/data/ssn/high_groups/july_2007_raw.txt +141 -0
- data/data/ssn/high_groups/july_2008_raw.txt +141 -0
- data/data/ssn/high_groups/july_2009_raw.txt +140 -0
- data/data/ssn/high_groups/july_2010_raw.txt +141 -0
- data/data/ssn/high_groups/june_2004_raw.txt +137 -0
- data/data/ssn/high_groups/june_2005_raw.txt +139 -0
- data/data/ssn/high_groups/june_2006_raw.txt +140 -0
- data/data/ssn/high_groups/june_2007_raw.txt +141 -0
- data/data/ssn/high_groups/june_2008_raw.txt +141 -0
- data/data/ssn/high_groups/june_2009_raw.txt +140 -0
- data/data/ssn/high_groups/june_2010_raw.txt +141 -0
- data/data/ssn/high_groups/june_2011_raw.txt +141 -0
- data/data/ssn/high_groups/june_24_2011_raw.txt +141 -0
- data/data/ssn/high_groups/march_2004_raw.txt +137 -0
- data/data/ssn/high_groups/march_2005_raw.txt +138 -0
- data/data/ssn/high_groups/march_2006_raw.txt +140 -0
- data/data/ssn/high_groups/march_2007_raw.txt +141 -0
- data/data/ssn/high_groups/march_2008_raw.txt +141 -0
- data/data/ssn/high_groups/march_2009_raw.txt +140 -0
- data/data/ssn/high_groups/march_2010_raw.txt +140 -0
- data/data/ssn/high_groups/march_2011_raw.txt +141 -0
- data/data/ssn/high_groups/may_2004_raw.txt +137 -0
- data/data/ssn/high_groups/may_2005_raw.txt +139 -0
- data/data/ssn/high_groups/may_2006_raw.txt +140 -0
- data/data/ssn/high_groups/may_2007_raw.txt +141 -0
- data/data/ssn/high_groups/may_2008_raw.txt +141 -0
- data/data/ssn/high_groups/may_2009_raw.txt +140 -0
- data/data/ssn/high_groups/may_2010_raw.txt +140 -0
- data/data/ssn/high_groups/may_2011_raw.txt +141 -0
- data/data/ssn/high_groups/november_2003_raw.txt +138 -0
- data/data/ssn/high_groups/november_2004_raw.txt +137 -0
- data/data/ssn/high_groups/november_2005_raw.txt +140 -0
- data/data/ssn/high_groups/november_2006_raw.txt +140 -0
- data/data/ssn/high_groups/november_2007_raw.txt +141 -0
- data/data/ssn/high_groups/november_2008_raw.txt +141 -0
- data/data/ssn/high_groups/november_2009_raw.txt +140 -0
- data/data/ssn/high_groups/november_2010_raw.txt +142 -0
- data/data/ssn/high_groups/october_2004_raw.txt +137 -0
- data/data/ssn/high_groups/october_2005_raw.txt +139 -0
- data/data/ssn/high_groups/october_2006_raw.txt +140 -0
- data/data/ssn/high_groups/october_2007_raw.txt +141 -0
- data/data/ssn/high_groups/october_2008_raw.txt +141 -0
- data/data/ssn/high_groups/october_2009_raw.txt +140 -0
- data/data/ssn/high_groups/october_2010_raw.txt +141 -0
- data/data/ssn/high_groups/september_2004_raw.txt +137 -0
- data/data/ssn/high_groups/september_2005_raw.txt +139 -0
- data/data/ssn/high_groups/september_2006_raw.txt +140 -0
- data/data/ssn/high_groups/september_2007_raw.txt +141 -0
- data/data/ssn/high_groups/september_2008_raw.txt +141 -0
- data/data/ssn/high_groups/september_2009_raw.txt +141 -0
- data/data/ssn/high_groups/september_2010_raw.txt +141 -0
- data/lib/identified.rb +24 -0
- data/lib/identified/errors/error.rb +5 -0
- data/lib/identified/errors/ssn/malformed_ssn_error.rb +5 -0
- data/lib/identified/ssn/area_number.rb +15 -0
- data/lib/identified/ssn/group_number.rb +27 -0
- data/lib/identified/ssn/high_group_data.rb +27 -0
- data/lib/identified/ssn/high_group_list.rb +48 -0
- data/lib/identified/ssn/issuing_state_data.rb +44 -0
- data/lib/identified/ssn/sequential_group_number.rb +43 -0
- data/lib/identified/ssn/serial_number.rb +10 -0
- data/lib/identified/ssn/ssn.rb +74 -0
- metadata +150 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Identified
|
|
2
|
+
# An alternate version of the group number indexed by the allocation sequence. 1 indicates the 1st
|
|
3
|
+
# group number issued. 70 indicates the 70th group number issued, etc.
|
|
4
|
+
class SequentialGroupNumber < DelegateClass(Fixnum)
|
|
5
|
+
# Takes a regular group number and becomes a representation sequenced by allocation order.
|
|
6
|
+
# Input values must be between 1 and 99. Output values will be between 1 and 100
|
|
7
|
+
def initialize(group_number)
|
|
8
|
+
sequential_group_number = self.class.convert_to_sequential_number(group_number)
|
|
9
|
+
super(sequential_group_number)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Converts a group number to the index of the sequence of its allocation. Valid return values
|
|
13
|
+
# are between 1 and 100.
|
|
14
|
+
def self.convert_to_sequential_number(group_number)
|
|
15
|
+
@group_index_table ||= generate_index_conversion
|
|
16
|
+
@group_index_table.fetch(group_number)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Creates the conversion table that goes from regular group number to the index of allocation
|
|
20
|
+
def self.generate_index_conversion
|
|
21
|
+
index_table = {}
|
|
22
|
+
|
|
23
|
+
# Build the lookup table (group number => sequence number).
|
|
24
|
+
allocation_sequence.each.with_index(1) do |group_number, index|
|
|
25
|
+
index_table[group_number] = index
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
index_table
|
|
29
|
+
end
|
|
30
|
+
private_class_method :generate_index_conversion
|
|
31
|
+
|
|
32
|
+
def self.allocation_sequence
|
|
33
|
+
# Group numbers are allocated in the order that follows:
|
|
34
|
+
# ODD - 01, 03, 05, 07, 09
|
|
35
|
+
# EVEN - 10 to 98
|
|
36
|
+
# EVEN - 02, 04, 06, 08
|
|
37
|
+
# ODD - 11 to 99
|
|
38
|
+
# See http://www.ssa.gov/history/ssn/geocard.html for details.
|
|
39
|
+
[*(1..9).step(2), *(10..98).step(2), *(2..8).step(2), *(11..99).step(2)]
|
|
40
|
+
end
|
|
41
|
+
private_class_method :allocation_sequence
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module Identified
|
|
2
|
+
# Represents the serial number of an SSN and performs simple validation.
|
|
3
|
+
class SerialNumber < DelegateClass(Fixnum)
|
|
4
|
+
# All non-zero serial numbers are valid regardless of when the ssn was issued.
|
|
5
|
+
# See http://www.ssa.gov/history/ssn/geocard.html
|
|
6
|
+
def valid?
|
|
7
|
+
(1..9999).include?(self)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
module Identified
|
|
2
|
+
# Represents a Social Security Number and provides validation functionality.
|
|
3
|
+
class SSN
|
|
4
|
+
RANDOMIZATION_DATE = Date.parse('2011-06-25').freeze
|
|
5
|
+
RETIRED_SSNS = %w(078-05-1120 219-09-9999)
|
|
6
|
+
SSN_REGEX = /\A\d{3}-\d{2}-\d{4}\Z/
|
|
7
|
+
SSN_REGEX_WITHOUT_DASHES = /\A(?<area>\d{3})(?<group>\d{2})(?<serial>\d{4})\Z/
|
|
8
|
+
|
|
9
|
+
attr_reader :date_issued, :area, :group, :serial
|
|
10
|
+
|
|
11
|
+
# Date is optional but should be provided to improve validation quality.
|
|
12
|
+
def initialize(ssn_string, options = {})
|
|
13
|
+
area_num, group_num, serial_num = extract_ssn_values(ssn_string)
|
|
14
|
+
|
|
15
|
+
@area = AreaNumber.new(area_num)
|
|
16
|
+
@group = GroupNumber.new(group_num)
|
|
17
|
+
@serial = SerialNumber.new(serial_num)
|
|
18
|
+
|
|
19
|
+
# Emulating keyword arguments to provide ruby 1.9.3 support.
|
|
20
|
+
if options.instance_of?(Hash)
|
|
21
|
+
@date_issued = options.delete(:date_issued)
|
|
22
|
+
else
|
|
23
|
+
fail ArgumentError, 'Unexpected argument. The second argument must be an options hash.'
|
|
24
|
+
end
|
|
25
|
+
fail ArgumentError, "Unrecgonized option(s): #{options}" if options.any?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Returns whether the ssn COULD be a valid ssn.
|
|
29
|
+
def valid?
|
|
30
|
+
area.valid? && group.valid?(area, date_issued) && serial.valid? && !retired?
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Provides an array of potential states or protectorates the ssn was issued in. This information
|
|
34
|
+
# cannot be known unless an issuance date is known and it before SSN randomizaiton. If no
|
|
35
|
+
# information is avaliable, issuing_states will return [].
|
|
36
|
+
def issuing_states
|
|
37
|
+
IssuingStateData.issuing_states(area, date_issued)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def ==(other)
|
|
41
|
+
area == other.area && group == other.group && serial == other.serial
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Uses '123-45-6789' format.
|
|
45
|
+
def to_s
|
|
46
|
+
format('%.03d-%.02d-%.04d', area, group, serial)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
private
|
|
50
|
+
|
|
51
|
+
# Determines if the ssn is one of the handful of abused / always invalid ssns.
|
|
52
|
+
def retired?
|
|
53
|
+
RETIRED_SSNS.map { |ssn_string| SSN.new(ssn_string) }.any? { |ssn| ssn == self }
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Returns the integer components of a normalized ssn string for easy mass-assignment.
|
|
57
|
+
def extract_ssn_values(ssn_string)
|
|
58
|
+
formatted_ssn = format_ssn(ssn_string)
|
|
59
|
+
formatted_ssn.split('-').map(&:to_i)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Validates / converts an inputted ssn string to the normalized 123-45-6789 format.
|
|
63
|
+
def format_ssn(ssn_string)
|
|
64
|
+
if ssn_string =~ SSN_REGEX
|
|
65
|
+
ssn_string
|
|
66
|
+
elsif ssn_string =~ SSN_REGEX_WITHOUT_DASHES
|
|
67
|
+
match = Regexp.last_match
|
|
68
|
+
"#{match[:area]}-#{match[:group]}-#{match[:serial]}"
|
|
69
|
+
else
|
|
70
|
+
fail MalformedSSNError
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: identified
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Daniel Gollahon
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2015-07-29 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Validate government document identifiers (like SSNs) with ease.
|
|
14
|
+
email: Daniel.Gollahon@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- data/ssn/area_data.txt
|
|
20
|
+
- data/ssn/area_data_raw.txt
|
|
21
|
+
- data/ssn/high_groups/april_2004_raw.txt
|
|
22
|
+
- data/ssn/high_groups/april_2005_raw.txt
|
|
23
|
+
- data/ssn/high_groups/april_2006_raw.txt
|
|
24
|
+
- data/ssn/high_groups/april_2007_raw.txt
|
|
25
|
+
- data/ssn/high_groups/april_2008_raw.txt
|
|
26
|
+
- data/ssn/high_groups/april_2009_raw.txt
|
|
27
|
+
- data/ssn/high_groups/april_2010_raw.txt
|
|
28
|
+
- data/ssn/high_groups/april_2011_raw.txt
|
|
29
|
+
- data/ssn/high_groups/august_2004_raw.txt
|
|
30
|
+
- data/ssn/high_groups/august_2005_raw.txt
|
|
31
|
+
- data/ssn/high_groups/august_2006_raw.txt
|
|
32
|
+
- data/ssn/high_groups/august_2007_raw.txt
|
|
33
|
+
- data/ssn/high_groups/august_2008_raw.txt
|
|
34
|
+
- data/ssn/high_groups/august_2009_raw.txt
|
|
35
|
+
- data/ssn/high_groups/august_2010_raw.txt
|
|
36
|
+
- data/ssn/high_groups/december_2003_raw.txt
|
|
37
|
+
- data/ssn/high_groups/december_2004_raw.txt
|
|
38
|
+
- data/ssn/high_groups/december_2005_raw.txt
|
|
39
|
+
- data/ssn/high_groups/december_2006_raw.txt
|
|
40
|
+
- data/ssn/high_groups/december_2007_raw.txt
|
|
41
|
+
- data/ssn/high_groups/december_2008_raw.txt
|
|
42
|
+
- data/ssn/high_groups/december_2009_raw.txt
|
|
43
|
+
- data/ssn/high_groups/december_2010_raw.txt
|
|
44
|
+
- data/ssn/high_groups/february_2004_raw.txt
|
|
45
|
+
- data/ssn/high_groups/february_2005_raw.txt
|
|
46
|
+
- data/ssn/high_groups/february_2006_raw.txt
|
|
47
|
+
- data/ssn/high_groups/february_2007_raw.txt
|
|
48
|
+
- data/ssn/high_groups/february_2008_raw.txt
|
|
49
|
+
- data/ssn/high_groups/february_2009_raw.txt
|
|
50
|
+
- data/ssn/high_groups/february_2010_raw.txt
|
|
51
|
+
- data/ssn/high_groups/february_2011_raw.txt
|
|
52
|
+
- data/ssn/high_groups/january_2004_raw.txt
|
|
53
|
+
- data/ssn/high_groups/january_2005_raw.txt
|
|
54
|
+
- data/ssn/high_groups/january_2006_raw.txt
|
|
55
|
+
- data/ssn/high_groups/january_2007_raw.txt
|
|
56
|
+
- data/ssn/high_groups/january_2008_raw.txt
|
|
57
|
+
- data/ssn/high_groups/january_2009_raw.txt
|
|
58
|
+
- data/ssn/high_groups/january_2010_raw.txt
|
|
59
|
+
- data/ssn/high_groups/january_2011_raw.txt
|
|
60
|
+
- data/ssn/high_groups/july_2004_raw.txt
|
|
61
|
+
- data/ssn/high_groups/july_2005_raw.txt
|
|
62
|
+
- data/ssn/high_groups/july_2006_raw.txt
|
|
63
|
+
- data/ssn/high_groups/july_2007_raw.txt
|
|
64
|
+
- data/ssn/high_groups/july_2008_raw.txt
|
|
65
|
+
- data/ssn/high_groups/july_2009_raw.txt
|
|
66
|
+
- data/ssn/high_groups/july_2010_raw.txt
|
|
67
|
+
- data/ssn/high_groups/june_2004_raw.txt
|
|
68
|
+
- data/ssn/high_groups/june_2005_raw.txt
|
|
69
|
+
- data/ssn/high_groups/june_2006_raw.txt
|
|
70
|
+
- data/ssn/high_groups/june_2007_raw.txt
|
|
71
|
+
- data/ssn/high_groups/june_2008_raw.txt
|
|
72
|
+
- data/ssn/high_groups/june_2009_raw.txt
|
|
73
|
+
- data/ssn/high_groups/june_2010_raw.txt
|
|
74
|
+
- data/ssn/high_groups/june_2011_raw.txt
|
|
75
|
+
- data/ssn/high_groups/june_24_2011_raw.txt
|
|
76
|
+
- data/ssn/high_groups/march_2004_raw.txt
|
|
77
|
+
- data/ssn/high_groups/march_2005_raw.txt
|
|
78
|
+
- data/ssn/high_groups/march_2006_raw.txt
|
|
79
|
+
- data/ssn/high_groups/march_2007_raw.txt
|
|
80
|
+
- data/ssn/high_groups/march_2008_raw.txt
|
|
81
|
+
- data/ssn/high_groups/march_2009_raw.txt
|
|
82
|
+
- data/ssn/high_groups/march_2010_raw.txt
|
|
83
|
+
- data/ssn/high_groups/march_2011_raw.txt
|
|
84
|
+
- data/ssn/high_groups/may_2004_raw.txt
|
|
85
|
+
- data/ssn/high_groups/may_2005_raw.txt
|
|
86
|
+
- data/ssn/high_groups/may_2006_raw.txt
|
|
87
|
+
- data/ssn/high_groups/may_2007_raw.txt
|
|
88
|
+
- data/ssn/high_groups/may_2008_raw.txt
|
|
89
|
+
- data/ssn/high_groups/may_2009_raw.txt
|
|
90
|
+
- data/ssn/high_groups/may_2010_raw.txt
|
|
91
|
+
- data/ssn/high_groups/may_2011_raw.txt
|
|
92
|
+
- data/ssn/high_groups/november_2003_raw.txt
|
|
93
|
+
- data/ssn/high_groups/november_2004_raw.txt
|
|
94
|
+
- data/ssn/high_groups/november_2005_raw.txt
|
|
95
|
+
- data/ssn/high_groups/november_2006_raw.txt
|
|
96
|
+
- data/ssn/high_groups/november_2007_raw.txt
|
|
97
|
+
- data/ssn/high_groups/november_2008_raw.txt
|
|
98
|
+
- data/ssn/high_groups/november_2009_raw.txt
|
|
99
|
+
- data/ssn/high_groups/november_2010_raw.txt
|
|
100
|
+
- data/ssn/high_groups/october_2004_raw.txt
|
|
101
|
+
- data/ssn/high_groups/october_2005_raw.txt
|
|
102
|
+
- data/ssn/high_groups/october_2006_raw.txt
|
|
103
|
+
- data/ssn/high_groups/october_2007_raw.txt
|
|
104
|
+
- data/ssn/high_groups/october_2008_raw.txt
|
|
105
|
+
- data/ssn/high_groups/october_2009_raw.txt
|
|
106
|
+
- data/ssn/high_groups/october_2010_raw.txt
|
|
107
|
+
- data/ssn/high_groups/september_2004_raw.txt
|
|
108
|
+
- data/ssn/high_groups/september_2005_raw.txt
|
|
109
|
+
- data/ssn/high_groups/september_2006_raw.txt
|
|
110
|
+
- data/ssn/high_groups/september_2007_raw.txt
|
|
111
|
+
- data/ssn/high_groups/september_2008_raw.txt
|
|
112
|
+
- data/ssn/high_groups/september_2009_raw.txt
|
|
113
|
+
- data/ssn/high_groups/september_2010_raw.txt
|
|
114
|
+
- lib/identified.rb
|
|
115
|
+
- lib/identified/errors/error.rb
|
|
116
|
+
- lib/identified/errors/ssn/malformed_ssn_error.rb
|
|
117
|
+
- lib/identified/ssn/area_number.rb
|
|
118
|
+
- lib/identified/ssn/group_number.rb
|
|
119
|
+
- lib/identified/ssn/high_group_data.rb
|
|
120
|
+
- lib/identified/ssn/high_group_list.rb
|
|
121
|
+
- lib/identified/ssn/issuing_state_data.rb
|
|
122
|
+
- lib/identified/ssn/sequential_group_number.rb
|
|
123
|
+
- lib/identified/ssn/serial_number.rb
|
|
124
|
+
- lib/identified/ssn/ssn.rb
|
|
125
|
+
homepage: http://rubygems.org/gems/identified
|
|
126
|
+
licenses:
|
|
127
|
+
- MIT
|
|
128
|
+
metadata: {}
|
|
129
|
+
post_install_message:
|
|
130
|
+
rdoc_options: []
|
|
131
|
+
require_paths:
|
|
132
|
+
- lib
|
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: 1.9.3
|
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
|
+
requirements:
|
|
140
|
+
- - ">="
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: '0'
|
|
143
|
+
requirements: []
|
|
144
|
+
rubyforge_project:
|
|
145
|
+
rubygems_version: 2.4.6
|
|
146
|
+
signing_key:
|
|
147
|
+
specification_version: 4
|
|
148
|
+
summary: A simple ssn validator.
|
|
149
|
+
test_files: []
|
|
150
|
+
has_rdoc:
|