[#22815] File.fnmatch が "*?" のパターンを正しく処理しない? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

16 messages 2004/02/06
[#22819] Re: File.fnmatch が "*?" のパターンを正しく処理しない? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/07

山本です。

[#22820] Re: File.fnmatch が "*?" のパターンを正しく処理しない? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/07

山本です。

[#22821] Re: File.fnmatch が "*?" のパターンを正しく処理しない? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/07

山本です。補足します。

[#22862] File.fnmatch と Dir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

87 messages 2004/02/13
[#22863] Re: File.fnmatch と Dir.glob — matz@... (Yukihiro Matsumoto) 2004/02/13

まつもと ゆきひろです

[#22864] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/14

山本です。

[#22873] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/14

まつもと ゆきひろです

[#22875] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/14

山本です。

[#22879] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/14

山本です。

[#22882] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/14

まつもと ゆきひろです

[#22887] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/15

山本です。

[#22901] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/16

まつもと ゆきひろです

[#22905] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/16

山本です。

[#22922] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22924] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/17

まつもと ゆきひろです

[#22925] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22926] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/17

まつもと ゆきひろです

[#22927] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22942] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22943] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/18

まつもと ゆきひろです

[#22944] Re: File.fnmatch とDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22946] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/18

まつもと ゆきひろです

[#22948] Re: File.fnmatch とDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/18

まつもと ゆきひろです

[#22949] Re: File.fnmatch とDir.glob — WATANABE Hirofumi <eban@...> 2004/02/18

わたなべです。

[#22950] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22952] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22953] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22954] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22955] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/18

山本です。

[#22960] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/19

山本です。

[#22962] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/19

山本です。

[#22970] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22972] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22974] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22977] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/20

まつもと ゆきひろです

[#22979] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22983] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/20

まつもと ゆきひろです

[#22984] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22989] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#22990] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#23000] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/20

山本です。

[#23006] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/22

山本です。

[#23007] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/23

山本です。

[#23009] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/23

まつもと ゆきひろです

[#23011] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/23

山本です。

[#23012] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/23

まつもと ゆきひろです

[#23013] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/23

山本です。

[#23014] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/24

山本です。

[#23015] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/02/24

[#23016] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/24

山本です。

[#23029] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/26

山本です。

[#23030] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/26

山本です。

[#23031] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/26

山本です。

[#23113] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/03

山本です。

[#23115] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/04

山本です。

[#23116] Re: File.fnmatchとDir.glob — matz@... (Yukihiro Matsumoto) 2004/03/04

まつもと ゆきひろです

[#23118] Re: File.fnmatchとDir.glob — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/04

山本です。

[#23121] extconf results depend on rbconfig.rb (Re: Re: File.fnmatchとDir.glob) — nobu.nakada@... 2004/03/04

なかだです。

[#22877] Process.spawn & IO.popen w/o shell — nobu.nakada@...

なかだです。

25 messages 2004/02/14
[#22883] Re: Process.spawn & IO.popen w/o shell — matz@... (Yukihiro Matsumoto) 2004/02/14

まつもと ゆきひろです

[#22884] Re: Process.spawn & IO.popen w/o shell — nobu.nakada@... 2004/02/14

なかだです。

[#22886] Re: Process.spawn & IO.popen w/o shell — matz@... (Yukihiro Matsumoto) 2004/02/14

まつもと ゆきひろです

[#22928] [BUG] make distclean が失敗する — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

45 messages 2004/02/17
[#22929] Re: [BUG] make distclean が失敗する — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22930] Re: [BUG] make distclean が失敗する — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22932] Re: [BUG] make distclean が失敗する — "U.Nakamura" <usa@...> 2004/02/17

こんにちは、なかむら(う)です。

[#22933] Re: [BUG] make distclean が失敗する — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#22934] Re: [BUG] make distclean が失敗する — "U.Nakamura" <usa@...> 2004/02/17

こんにちは、なかむら(う)です。

[#22935] Re: [BUG] make distclean が失敗する — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/17

山本です。

[#23034] --prefix and DESTDIR for bccwin32 (Re: Re: [BUG] make distclean が失敗する) — nobu.nakada@... 2004/02/26

なかだです。

[#23044] Re: --prefix and DESTDIR for bccwin32 (Re: Re: [BUG]make distclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/27

山本です。

[#23046] Re: --prefix and DESTDIR for bccwin32 (Re: Re:[BUG]make distclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/27

山本です。

[#23054] Re: --prefix and DESTDIR for bccwin32 (Re: Re:[BUG]make distclean が失敗する) — "U.Nakamura" <usa@...> 2004/02/28

こんにちは、なかむら(う)です。

[#23055] Re: --prefix and DESTDIR for bccwin32 (Re:Re:[BUG]make distclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/28

山本です。

[#23056] Re: --prefix and DESTDIR for bccwin32 (Re:Re:[BUG]makedistclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/28

山本です。

[#23059] Re: --prefix and DESTDIR for bccwin32(Re:Re:[BUG]makedistclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/28

山本です。

[#23057] Re: --prefix and DESTDIR for bccwin32 (Re:Re:[BUG]make distclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/28

山本です。

[#23067] Re: --prefix and DESTDIR for bccwin32 (Re:Re:[BUG]make distclean が失敗する) — "U.Nakamura" <usa@...> 2004/02/29

こんにちは、なかむら(う)です。

[#23071] Re: --prefix and DESTDIR for bccwin32 (Re:Re:[BUG]makedistclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/29

山本です。

[#23073] Re: --prefix and DESTDIR for bccwin32(Re:Re:[BUG]makedistclean が失敗する) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/02/29

山本です。

[#23079] enable-install-rdoc (was Re: --prefix and DESTDIR for bccwin32) — "U.Nakamura" <usa@...> 2004/03/01

こんにちは、なかむら(う)です。

[#23081] Re: enable-install-rdoc (was Re: --prefix and DESTDIR for bccwin32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/01

山本です。

[#22956] Dir#glob proposal — nobu.nakada@...

なかだです。

17 messages 2004/02/18
[#22958] Re: Dir#glob proposal — matz@... (Yukihiro Matsumoto) 2004/02/18

まつもと ゆきひろです

[#23038] Re: [ruby-cvs] ruby: * eval.c (localjump_destination): lambda should not interfere — nobu.nakada@...

なかだです。

10 messages 2004/02/27

[ruby-dev:23066] Re: rss/dublincore.rb: dc:date format

From: Kouhei Sutou <kou@...>
Date: 2004-02-28 16:49:36 UTC
List: ruby-dev #23066
須藤です.

In <02fe01c3fd91$cc6f5740$04e6a8c0@aaadom.sarion.co.jp>
  "[ruby-dev:23051] Re: rss/dublincore.rb: dc:date format" on Sat, 28 Feb 2004 09:26:18 +0900,
  "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp> wrote:
> > 元ネタのdc:dateはW3CDTFなので,今回はtime.rbを使わずRSS
> > Parserの方で自前でW3CDTF用のパーサを用意しようと思います.
> 
> 田中さんも書かれているように、いずれtime.rbが持って欲しいメソッド
> ですね。

もちろん,私もそう思います.
ただ,そうなるまでは(バリデーション付きといっているからには)
自前で用意した方がいいかなと思いました.面倒ですけど.

で,time.rbが持ってくれたらうれしいなと思って,
Time.xmlschemaとは別にTime.w3cdtfを追加したらこんな感じかな
というのを書いてみました.

> Time.iso8601がどういう目的で追加されたのか、という経緯を調べて
> いないので強くは主張できませんが、混乱を防ぐため、なひは削除に一票です。

私もaliasしなくてもいいのではないかと思います.
というのも,iso8601というぐらいだから(たとえaliasであっても)
W3CDTFも扱えるだろうと勝手に思い込んでしまったので.

Index: lib/time.rb
===================================================================
RCS file: /src/ruby/lib/time.rb,v
retrieving revision 1.18
diff -u -p -r1.18 time.rb
--- lib/time.rb	11 Feb 2004 17:36:36 -0000	1.18
+++ lib/time.rb	28 Feb 2004 16:46:58 -0000
@@ -272,25 +272,68 @@ class Time
     # See #xmlschema for more information on this format.
     #
     def xmlschema(date)
-      if /\A\s*
-          (-?\d+)-(\d\d)-(\d\d)
-          T
-          (\d\d):(\d\d):(\d\d)
-          (\.\d*)?
-          (Z|[+-]\d\d:\d\d)?
-          \s*\z/ix =~ date
-	datetime = [$1.to_i, $2.to_i, $3.to_i, $4.to_i, $5.to_i, $6.to_i] 
-	datetime << $7.to_f * 1000000 if $7
-	if $8
-	  Time.utc(*datetime) - zone_offset($8)
-	else
-	  Time.local(*datetime)
-	end
+      make_time(date) do |time_data|
+        time_data.sec
+      end
+    end
+    alias iso8601 xmlschema
+
+    #
+    # See http://www.w3.org/TR/NOTE-datetime
+    #
+    def w3cdtf(date)
+      make_time(date) do |time_data|
+        (time_data.min and time_data.zone) or
+          (time_data.min.nil? and time_data.zone.nil?)
+      end
+    end
+
+    private
+    def make_time(date)
+      if (time_data = parse_time(date)) and yield(time_data)
+        datetime = time_data.to_a
+        zone = datetime.pop
+        datetime.compact!
+        if zone
+          Time.utc(*datetime) - zone_offset(zone)
+        else
+          Time.local(*datetime)
+        end
       else
         raise ArgumentError.new("invalid date: #{date.inspect}")
       end
     end
-    alias iso8601 xmlschema
+
+    def parse_time(str)
+      if md = /\A\s*
+               (-?\d+)-(\d\d)-(\d\d)
+               (?:T
+               (\d\d):(\d\d)(?::(\d\d))?
+               (\.\d+)?
+               (Z|[+-]\d\d:\d\d)?)?
+               \s*\z/ix.match(str)
+        ParsedTime.new(*md.to_a[1..-1])
+      else
+        false
+      end
+    end
+
+    ParsedTimeBase = Struct.new(:year, :mon, :day, :hour, :min,
+                                :sec, :usec, :zone)
+    class ParsedTime < ParsedTimeBase
+      def initialize(*args)
+        super
+        self.usec = usec
+      end
+
+      def usec=(new_value)
+        if new_value
+          super(new_value.to_f * 1000000)
+        else
+          super(nil)
+        end
+      end
+		end
   end # class << self
 
   #
@@ -512,6 +555,61 @@ if __FILE__ == $0
                    Time.xmlschema("2000-01-12T12:13:14Z"))
       assert_equal(Time.utc(2001, 4, 17, 19, 23, 17, 300000),
 		   Time.xmlschema("2001-04-17T19:23:17.3Z"))
+    end
+
+    # http://www.w3.org/TR/NOTE-datetime
+    def test_w3cdtf
+      assert_equal(Time.utc(1999, 5, 31, 13, 20, 0) + 5 * 3600,
+                   Time.w3cdtf("1999-05-31T13:20:00-05:00"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-20T12:00:00")
+      }
+      assert_equal(Time.utc(2000, 1, 20, 12, 0, 0),
+                   Time.w3cdtf("2000-01-20T12:00:00Z"))
+      assert_equal(Time.utc(2000, 1, 20, 12, 0, 0) - 12 * 3600,
+                   Time.w3cdtf("2000-01-20T12:00:00+12:00"))
+      assert_equal(Time.utc(2000, 1, 20, 12, 0, 0) + 13 * 3600,
+                   Time.w3cdtf("2000-01-20T12:00:00-13:00"))
+      assert_equal(Time.utc(2000, 3, 4, 23, 0, 0) - 3 * 3600,
+                   Time.w3cdtf("2000-03-04T23:00:00+03:00"))
+      assert_equal(Time.utc(2000, 3, 4, 20, 0, 0),
+                   Time.w3cdtf("2000-03-04T20:00:00Z"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-15T00:00:00")
+      }
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-02-15T00:00:00")
+      }
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-15T12:00:00")
+      }
+      assert_equal(Time.utc(2000, 1, 16, 12, 0, 0),
+                   Time.w3cdtf("2000-01-16T12:00:00Z"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-01T12:00:00")
+      }
+      assert_equal(Time.utc(1999, 12, 31, 23, 0, 0),
+                   Time.w3cdtf("1999-12-31T23:00:00Z"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-16T12:00:00")
+      }
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2000-01-16T00:00:00")
+      }
+      assert_equal(Time.utc(2000, 1, 12, 12, 13, 14),
+                   Time.w3cdtf("2000-01-12T12:13:14Z"))
+      assert_equal(Time.utc(2001, 4, 17, 19, 23, 17, 300000),
+                   Time.w3cdtf("2001-04-17T19:23:17.3Z"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2001-04-17T19:23:17.Z")
+      }
+      assert_equal(Time.local(2001, 4, 17, 0, 0, 0, 0),
+                   Time.w3cdtf("2001-04-17"))
+      assert_equal(Time.utc(2001, 4, 17, 19, 23, 0, 0),
+                   Time.w3cdtf("2001-04-17T19:23Z"))
+      assert_raise(ArgumentError) {
+        Time.w3cdtf("2001-04-17T19:23")
+      }
     end
 
     def test_encode_xmlschema

In This Thread