[#23168] File.fnmatch のリファクタリング — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

13 messages 2004/03/08

[#23192] File.fnmatch と Dir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/03/13
[#23194] Re: File.fnmatch と Dir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/13

まつもと ゆきひろです

[#23195] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23196] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23260] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23261] Re: File.fnmatch とDir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/30

まつもと ゆきひろです

[#23265] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23238] Re: [ruby-cvs] ruby, ruby/lib, ruby/lib/rss, ruby/sample/openssl: * lib/logger.rb: trim tail space of each line. no user visible change. — Kouhei Sutou <kou@...>

須藤です.

10 messages 2004/03/27

[ruby-dev:23183] Re: [ruby-talk:93584] date/format.rb fix

From: Tadayoshi Funaba <tadf@...5.so-net.ne.jp>
Date: 2004-03-10 11:35:24 UTC
List: ruby-dev #23183
たぶん、こんな感じにすると思います。

どの型で返すべきか判らないので、とりあえず、文字列のままにしてあります
(このままかもしれません)。

決断したら、date.rb のほうも手を入れます。今のところ parsedate.rb の振
舞いを変更するつもりはありません。

ついでに、str[fp]time のほうも対応したいところですが、考えがまとまらな
いので、今回はなにもしません。l


--- format.rb	2004-01-19 05:43:28+09	2.12
+++ format.rb	2004-03-10 20:19:41+09
@@ -227,7 +227,7 @@
   def self._parse(str, comp=false)
     str = str.dup
 
-    str.gsub!(/[^-+.\/:0-9a-z]+/ino, ' ')
+    str.gsub!(/[^-+,.\/:0-9a-z]+/ino, ' ')
 
     # day
     if str.sub!(/(#{PARSE_DAYPAT})\S*/ino, ' ')
@@ -236,7 +236,10 @@
 
     # time
     if str.sub!(
-		/(\d+):(\d+)(?::(\d+))?
+		/(\d+):(\d+)
+		 (?:
+		   :(\d+)(?:[,.](\d*))?
+		 )?
 		 (?:
 		   \s*
 		   ([ap])(?:m\b|\.m\.)
@@ -254,15 +257,18 @@
       hour = $1.to_i
       min = $2.to_i
       sec = $3.to_i if $3
-
       if $4
+        sec_fraction = $4
+      end
+
+      if $5
 	hour %= 12
-	if $4.downcase == 'p'
+	if $5.downcase == 'p'
 	  hour += 12
 	end
       end
 
-      zone = $5
+      zone = $6
     end
 
     # eu
@@ -368,7 +374,7 @@
 		      \s*
 		      T?
 		      \s*
-		      (\d{2,6})
+		      (\d{2,6})(?:[,.](\d*))?
 		    )?
 		    (?:
 		      \s*
@@ -406,7 +412,10 @@
 	  sec  = $3[ 4, 2].to_i if $3.size >= 6
 	end
       end
-      zone = $4
+      if $4
+        sec_fraction = $4
+      end
+      zone = $5
     end
 
     if str.sub!(/\b(bc\b|bce\b|b\.c\.|b\.c\.e\.)/ino, ' ')
@@ -432,6 +441,7 @@
     elem[:hour] = hour if hour
     elem[:min] = min if min
     elem[:sec] = sec if sec
+    elem[:sec_fraction] = sec_fraction if sec_fraction
     elem[:zone] = zone if zone
     offset = zone_to_diff(zone) if zone
     elem[:offset] = offset if offset

In This Thread