ruby-changes:3636
From: ko1@a...
Date: Sat, 19 Jan 2008 17:23:48 +0900 (JST)
Subject: [ruby-changes:3636] tadf - Ruby:r15125 (trunk): * lib/date.rb, lib/date/format.rb: parse's hints as an
tadf 2008-01-19 17:23:33 +0900 (Sat, 19 Jan 2008)
New Revision: 15125
Modified files:
trunk/ChangeLog
trunk/lib/date/format.rb
trunk/lib/date.rb
Log:
* lib/date.rb, lib/date/format.rb: parse's hints as an
experimental function has been removed.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/date.rb?r1=15125&r2=15124&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/date/format.rb?r1=15125&r2=15124&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15125&r2=15124&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 15124)
+++ ChangeLog (revision 15125)
@@ -1,3 +1,8 @@
+Sat Jan 19 17:21:29 2008 Tadayoshi Funaba <tadf@d...>
+
+ * lib/date.rb, lib/date/format.rb: parse's hints as an
+ experimental function has been removed.
+
Sat Jan 19 11:21:53 2008 Nobuyoshi Nakada <nobu@r...>
* configure.in (sigsetjmp): check if available.
Index: lib/date/format.rb
===================================================================
--- lib/date/format.rb (revision 15124)
+++ lib/date/format.rb (revision 15125)
@@ -821,9 +821,6 @@
str.sub!(/\b-(\d{3})\b/n, ' ')
e.yday = $1.to_i
true
- elsif e._date && str.sub!(/('?[-+]?\d+)-('?-?\d+)/n, ' ')
- s3e(e, nil, $1, $2)
- true
end
end
@@ -838,11 +835,6 @@
e.mon = $3.to_i
e.mday = $4.to_i
true
- elsif e._jis && str.sub!(/(\d+)\.(\d+)\.(\d+)/in, ' ')
- e.year = $1.to_i + 1988
- e.mon = $2.to_i
- e.mday = $3.to_i
- true
end
end
@@ -858,57 +850,20 @@
end
end
- def self._parse_sla_jp(str, e) # :nodoc:
+ def self._parse_sla(str, e) # :nodoc:
if str.sub!(%r|('?-?\d+)/\s*('?\d+)(?:\D\s*('?-?\d+))?|n, ' ') # '
s3e(e, $1, $2, $3)
true
end
end
- def self._parse_sla_eu(str, e) # :nodoc:
- if str.sub!(%r|('?-?\d+)/\s*('?\d+)(?:\D\s*('?-?\d+))?|n, ' ') # '
- s3e(e, $3, $2, $1)
- true
- end
- end
-
- def self._parse_sla_us(str, e) # :nodoc:
- if str.sub!(%r|('?-?\d+)/\s*('?\d+)(?:\D\s*('?-?\d+))?|n, ' ') # '
- s3e(e, $3, $1, $2)
- true
- end
- end
-
- def self._parse_dot_jp(str, e) # :nodoc:
+ def self._parse_dot(str, e) # :nodoc:
if str.sub!(%r|('?-?\d+)\.\s*('?\d+)\.\s*('?-?\d+)|n, ' ') # '
s3e(e, $1, $2, $3)
true
- elsif e._date && str.sub!(%r|('?-?\d+)\.\s*('?\d+)|n, ' ') # '
- s3e(e, nil, $1, $2)
- true
end
end
- def self._parse_dot_eu(str, e) # :nodoc:
- if str.sub!(%r|('?-?\d+)\.\s*('?\d+)\.\s*('?-?\d+)|n, ' ') # '
- s3e(e, $3, $2, $1)
- true
- elsif e._date && str.sub!(%r|('?-?\d+)\.\s*('?\d+)|n, ' ') # '
- s3e(e, nil, $2, $1)
- true
- end
- end
-
- def self._parse_dot_us(str, e) # :nodoc:
- if str.sub!(%r|('?-?\d+)\.\s*('?\d+)\.\s*('?-?\d+)|n, ' ') # '
- s3e(e, $3, $1, $2)
- true
- elsif e._date && str.sub!(%r|('?-?\d+)\.\s*('?\d+)|n, ' ') # '
- s3e(e, nil, $1, $2)
- true
- end
- end
-
def self._parse_year(str, e) # :nodoc:
if str.sub!(/'(\d+)\b/n, ' ')
e.year = $1.to_i
@@ -956,24 +911,15 @@
if $3.nil? && $4
e.sec = $2[-2, 2].to_i
else
- if e._time
- e.hour = $2[ 0, 2].to_i
- else
- e.mday = $2[ 0, 2].to_i
- end
+ e.mday = $2[ 0, 2].to_i
end
when 4
if $3.nil? && $4
e.sec = $2[-2, 2].to_i
e.min = $2[-4, 2].to_i
else
- if e._time
- e.hour = $2[ 0, 2].to_i
- e.min = $2[ 2, 2].to_i
- else
- e.mon = $2[ 0, 2].to_i
- e.mday = $2[ 2, 2].to_i
- end
+ e.mon = $2[ 0, 2].to_i
+ e.mday = $2[ 2, 2].to_i
end
when 6
if $3.nil? && $4
@@ -981,15 +927,9 @@
e.min = $2[-4, 2].to_i
e.hour = $2[-6, 2].to_i
else
- if e._time || e._ofx
- e.hour = $2[ 0, 2].to_i
- e.min = $2[ 2, 2].to_i
- e.sec = $2[ 4, 2].to_i
- else
- e.year = ($1 + $2[ 0, 2]).to_i
- e.mon = $2[ 2, 2].to_i
- e.mday = $2[ 4, 2].to_i
- end
+ e.year = ($1 + $2[ 0, 2]).to_i
+ e.mon = $2[ 2, 2].to_i
+ e.mday = $2[ 4, 2].to_i
end
when 8, 10, 12, 14
if $3.nil? && $4
@@ -1080,119 +1020,34 @@
private_class_method :_parse_day, :_parse_time, # :_parse_beat,
:_parse_eu, :_parse_us, :_parse_iso, :_parse_iso2,
- :_parse_jis, :_parse_vms,
- :_parse_sla_jp, :_parse_sla_eu, :_parse_sla_us,
- :_parse_dot_jp, :_parse_dot_eu, :_parse_dot_us,
+ :_parse_jis, :_parse_vms, :_parse_sla, :_parse_dot,
:_parse_year, :_parse_mon, :_parse_mday, :_parse_ddd
- def self._parse(str, hints={})
+ def self._parse(str, comp=true)
str = str.dup
e = Format::Bag.new
- e._comp = true
+ e._comp = comp
- unless Hash === hints
- e._comp = hints
- else
- hints.each do |k, v|
- case k
- when :comp, :complete
- e._comp = v
- when :compfunc
- e._compfunc = v
- when :style, :endian, :endianness, :order
- v = {
- :jp => :jp,
- :eu => :eu,
- :us => :us,
- :big => :jp,
- :little => :eu,
- :middle => :us,
- :ymd => :jp,
- :dmy => :eu,
- :mdy => :us
- }[v]
- e._style = v
- when :date
- e._date = v
- when :time
- e._time = v
- when :jis
- e._jis = v
- when :ofx
- e._ofx = v
- else
- raise ArgumentError, 'unknown hint'
- end
- end
- end
-
str.gsub!(/[^-+',.\/:@[:alnum:]\[\]\x80-\xff]+/n, ' ')
- case e._style
- when :jp
- _parse_time(str, e) # || _parse_beat(str, e)
- _parse_eu(str, e) ||
- _parse_us(str, e) ||
- _parse_iso(str, e) ||
- _parse_jis(str, e) ||
- _parse_vms(str, e) ||
- _parse_sla_jp(str, e) ||
- _parse_dot_jp(str, e) ||
- _parse_iso2(str, e) ||
- _parse_year(str, e) ||
- _parse_mon(str, e) ||
- _parse_mday(str, e) ||
- _parse_ddd(str, e)
- _parse_day(str, e)
- when :eu
- _parse_time(str, e) # || _parse_beat(str, e)
- _parse_eu(str, e) ||
- _parse_iso(str, e) ||
- _parse_jis(str, e) ||
- _parse_vms(str, e) ||
- _parse_sla_eu(str, e) ||
- _parse_dot_eu(str, e) ||
- _parse_iso2(str, e) ||
- _parse_year(str, e) ||
- _parse_mon(str, e) ||
- _parse_mday(str, e) ||
- _parse_ddd(str, e) ||
- _parse_us(str, e)
- _parse_day(str, e)
- when :us
- _parse_time(str, e) # || _parse_beat(str, e)
- _parse_eu(str, e) ||
- _parse_us(str, e) ||
- _parse_iso(str, e) ||
- _parse_jis(str, e) ||
- _parse_vms(str, e) ||
- _parse_sla_us(str, e) ||
- _parse_dot_us(str, e) ||
- _parse_iso2(str, e) ||
- _parse_year(str, e) ||
- _parse_mon(str, e) ||
- _parse_mday(str, e) ||
- _parse_ddd(str, e)
- _parse_day(str, e)
- else
- _parse_time(str, e) # || _parse_beat(str, e)
- _parse_eu(str, e) ||
- _parse_us(str, e) ||
- _parse_iso(str, e) ||
- _parse_jis(str, e) ||
- _parse_vms(str, e) ||
- _parse_sla_jp(str, e) ||
- _parse_dot_jp(str, e) ||
- _parse_iso2(str, e) ||
- _parse_year(str, e) ||
- _parse_mon(str, e) ||
- _parse_mday(str, e) ||
- _parse_ddd(str, e)
- _parse_day(str, e)
- end
+ _parse_time(str, e) # || _parse_beat(str, e)
+ _parse_day(str, e)
+ _parse_eu(str, e) ||
+ _parse_us(str, e) ||
+ _parse_iso(str, e) ||
+ _parse_jis(str, e) ||
+ _parse_vms(str, e) ||
+ _parse_sla(str, e) ||
+ _parse_dot(str, e) ||
+ _parse_iso2(str, e) ||
+ _parse_year(str, e) ||
+ _parse_mon(str, e) ||
+ _parse_mday(str, e) ||
+ _parse_ddd(str, e)
+
if str.sub!(/\b(bc\b|bce\b|b\.c\.|b\.c\.e\.)/in, ' ')
if e.year
e.year = -e.year + 1
@@ -1214,19 +1069,21 @@
end
end
- e._compfunc ||= lambda do |y|
- if e._comp
- if y >= 0 && y <= 99
- y += if y >= 69
- then 1900 else 2000 end
+ if e._comp
+ if e.cwyear
+ if e.cwyear >= 0 && e.cwyear <= 99
+ e.cwyear += if e.cwyear >= 69
+ then 1900 else 2000 end
end
end
- y
+ if e.year
+ if e.year >= 0 && e.year <= 99
+ e.year += if e.year >= 69
+ then 1900 else 2000 end
+ end
+ end
end
- e.cwyear = e._compfunc.call(e.cwyear) if e.cwyear
- e. year = e._compfunc.call(e. year) if e. year
-
e.offset ||= zone_to_diff(e.zone) if e.zone
e.to_hash
@@ -1317,17 +1174,15 @@
-?(\d{2,})\s+ # allow minus, anyway
\d{2}:\d{2}(:\d{2})?\s*
(?:[-+]\d{4}|ut|gmt|e[sd]t|c[sd]t|m[sd]t|p[sd]t|[a-ik-z])\s*\z/inox =~ str
- _parse(str, :compfunc=>
- lambda do |y|
- if $1.size < 4
- if y < 50
- y += 2000
- elsif y < 1000
- y += 1900
- end
- end
- y
- end)
+ e = _parse(str, false)
+ if $1.size < 4
+ if e[:year] < 50
+ e[:year] += 2000
+ elsif e[:year] < 1000
+ e[:year] += 1900
+ end
+ end
+ e
end
end
@@ -1362,7 +1217,11 @@
(t
(\d{2}:\d{2}(:\d{2}([,.]\d*)?)?
(z|[-+]\d{2}(:?\d{2})?)?)?)?\s*\z/inx =~ str
- _parse(str, :jis=>true)
+ if /\A\s*\d/ =~ str
+ _parse(str.sub(/\A\s*(\d)/, 'h\1'))
+ else
+ _parse(str)
+ end
else
_iso8601(str)
end
Index: lib/date.rb
===================================================================
--- lib/date.rb (revision 15124)
+++ lib/date.rb (revision 15125)
@@ -1062,8 +1062,8 @@
# Day Number day 0.
#
# +sg+ specifies the Day of Calendar Reform.
- def self.parse(str='-4712-01-01', hints={}, sg=ITALY)
- elem = _parse(str, hints)
+ def self.parse(str='-4712-01-01', comp=true, sg=ITALY)
+ elem = _parse(str, comp)
new_by_frags(elem, sg)
end
@@ -1709,8 +1709,8 @@
# Day Number day 0.
#
# +sg+ specifies the Day of Calendar Reform.
- def self.parse(str='-4712-01-01T00:00:00+00:00', hints={}, sg=ITALY)
- elem = _parse(str, hints)
+ def self.parse(str='-4712-01-01T00:00:00+00:00', comp=true, sg=ITALY)
+ elem = _parse(str, comp)
new_by_frags(elem, sg)
end
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/