Commit 67a7c282a2abfb48f2e0458109056301db24f8ed
1 parent
fbc702c7
Exists in
master
and in
28 other branches
ActionItem916: coping with other date formats
Showing
1 changed file
with
17 additions
and
2 deletions
Show diff stats
db/migrate/059_add_birth_date_to_person.rb
@@ -18,8 +18,14 @@ class AddBirthDateToPerson < ActiveRecord::Migration | @@ -18,8 +18,14 @@ class AddBirthDateToPerson < ActiveRecord::Migration | ||
18 | date_string = date_string[0..-3] + (year > (Date.today.year - 2000) ? year + 1900 : year + 2000).to_s | 18 | date_string = date_string[0..-3] + (year > (Date.today.year - 2000) ? year + 1900 : year + 2000).to_s |
19 | end | 19 | end |
20 | 20 | ||
21 | - date_string =~ (/(\d+)[^\d]+(\d+)[^\d]+(\d+)/) | ||
22 | - Date.new($3.to_i, $2.to_i, $1.to_i) | 21 | + if ! ((date_string =~ /(\d+)[^\d]+(\d+)[^\d]+(\d+)/) || (date_string =~ /^(\d\d)(\d\d)(\d\d\d\d)$/)) |
22 | + return nil | ||
23 | + end | ||
24 | + begin | ||
25 | + Date.new($3.to_i, $2.to_i, $1.to_i) | ||
26 | + rescue Exception => e | ||
27 | + nil | ||
28 | + end | ||
23 | end | 29 | end |
24 | end | 30 | end |
25 | 31 | ||
@@ -106,6 +112,15 @@ if $PROGRAM_NAME == __FILE__ | @@ -106,6 +112,15 @@ if $PROGRAM_NAME == __FILE__ | ||
106 | assert_nil date | 112 | assert_nil date |
107 | end | 113 | end |
108 | 114 | ||
115 | + should 'convert date without separators' do | ||
116 | + date = AddBirthDateToPerson::ConvertDates.convert('27071977') | ||
117 | + assert_equal [ 1977, 07, 27] , [date.year, date.month, date.day] | ||
118 | + end | ||
119 | + | ||
120 | + should 'not try to create invalid date' do | ||
121 | + assert_nil AddBirthDateToPerson::ConvertDates.convert('70/05/1987') | ||
122 | + end | ||
123 | + | ||
109 | end | 124 | end |
110 | 125 | ||
111 | end | 126 | end |