mirror of
https://github.com/ditkrg/validates_timeliness.git
synced 2026-01-24 23:06:42 +00:00
added microseconds adjustment method and added proc_args
This commit is contained in:
parent
5e08a10fb0
commit
3c9ad4a5ee
@ -49,7 +49,7 @@ module ValidatesTimeliness
|
|||||||
# yyyyy = exactly 4 digit year
|
# yyyyy = exactly 4 digit year
|
||||||
# mmm = month long name (e.g. 'Jul' or 'July')
|
# mmm = month long name (e.g. 'Jul' or 'July')
|
||||||
# ddd = Day name of 3 to 9 letters (e.g. Wed or Wednesday)
|
# ddd = Day name of 3 to 9 letters (e.g. Wed or Wednesday)
|
||||||
# u = microseconds matches 1 to 3 digits
|
# u = microseconds matches 1 to 6 digits
|
||||||
#
|
#
|
||||||
# Any other invalid combination of repeating tokens will be swallowed up
|
# Any other invalid combination of repeating tokens will be swallowed up
|
||||||
# by the next lowest length valid repeating token (e.g. yyy will be
|
# by the next lowest length valid repeating token (e.g. yyy will be
|
||||||
@ -83,14 +83,16 @@ module ValidatesTimeliness
|
|||||||
]
|
]
|
||||||
|
|
||||||
@@datetime_formats = [
|
@@datetime_formats = [
|
||||||
|
'yyyy-mm-dd hh:nn:ss.u',
|
||||||
|
'yyyy-mm-dd hh:nn:ss',
|
||||||
|
'yyyy-mm-dd h:nn',
|
||||||
'm/d/yy h:nn:ss',
|
'm/d/yy h:nn:ss',
|
||||||
'm/d/yy h:nn',
|
'm/d/yy h:nn',
|
||||||
'm/d/yy h:nn_ampm',
|
'm/d/yy h:nn_ampm',
|
||||||
'd/m/yy hh:nn:ss',
|
'd/m/yy hh:nn:ss',
|
||||||
'd/m/yy h:nn',
|
'd/m/yy h:nn',
|
||||||
'd/m/yy h:nn_ampm',
|
'd/m/yy h:nn_ampm',
|
||||||
'yyyy-mm-dd hh:nn:ss',
|
'ddd, dd mmm yyyy hh:nn:ss (zo|tz)', # RFC 822
|
||||||
'yyyy-mm-dd h:nn',
|
|
||||||
'ddd mmm d hh:nn:ss zo yyyy', # Ruby time string
|
'ddd mmm d hh:nn:ss zo yyyy', # Ruby time string
|
||||||
'yyyy-mm-ddThh:nn:ss(?:Z|zo)' # iso 8601
|
'yyyy-mm-ddThh:nn:ss(?:Z|zo)' # iso 8601
|
||||||
]
|
]
|
||||||
@ -120,10 +122,10 @@ module ValidatesTimeliness
|
|||||||
{ 'n' => [ /n{1}/, '(\d{1,2})', :min ] },
|
{ 'n' => [ /n{1}/, '(\d{1,2})', :min ] },
|
||||||
{ 'ss' => [ /s{2,}/, '(\d{2})', :sec ] },
|
{ 'ss' => [ /s{2,}/, '(\d{2})', :sec ] },
|
||||||
{ 's' => [ /s{1}/, '(\d{1,2})', :sec ] },
|
{ 's' => [ /s{1}/, '(\d{1,2})', :sec ] },
|
||||||
{ 'u' => [ /u{1,}/, '(\d{1,3})', :usec ] },
|
{ 'u' => [ /u{1,}/, '(\d{1,6})', :usec ] },
|
||||||
{ 'ampm' => [ /ampm/, '((?:a|p)\.?m\.?)', :meridian ] },
|
{ 'ampm' => [ /ampm/, '((?:a|p)\.?m\.?)', :meridian ] },
|
||||||
{ 'zo' => [ /zo/, '(?:[+-]\d{2}:?\d{2})'] },
|
{ 'zo' => [ /zo/, '(?:[+-]\d{2}:?\d{2})'] },
|
||||||
{ 'tz' => [ /tz/, '(?:\[A-Z]{1,4})' ] },
|
{ 'tz' => [ /tz/, '(?:[A-Z]{1,4})' ] },
|
||||||
{ '_' => [ /_/, '\s?' ] }
|
{ '_' => [ /_/, '\s?' ] }
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -143,7 +145,7 @@ module ValidatesTimeliness
|
|||||||
:hour => [3, 'h', 'full_hour(h,md)'],
|
:hour => [3, 'h', 'full_hour(h,md)'],
|
||||||
:min => [4, 'n', 'n'],
|
:min => [4, 'n', 'n'],
|
||||||
:sec => [5, 's', 's'],
|
:sec => [5, 's', 's'],
|
||||||
:usec => [6, 'u', 'u'],
|
:usec => [6, 'u', 'microseconds(u)'],
|
||||||
:meridian => [nil, 'md', nil]
|
:meridian => [nil, 'md', nil]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,6 +280,9 @@ module ValidatesTimeliness
|
|||||||
Date::ABBR_MONTHNAMES.index(month.capitalize) || Date::MONTHNAMES.index(month.capitalize)
|
Date::ABBR_MONTHNAMES.index(month.capitalize) || Date::MONTHNAMES.index(month.capitalize)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def microseconds(usec)
|
||||||
|
(".#{usec}".to_f * 1_000_000).to_i
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user