[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>,

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041394108.920587.21729.nullmailer@picachu.netlab.jp>,

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041420724.492653.22355.nullmailer@picachu.netlab.jp>,

[ruby-dev:19016] Re: ipaddr.rb

From: nobu.nakada@...
Date: 2002-12-06 05:52:39 UTC
List: ruby-dev #19016
なかだです。

At Fri, 6 Dec 2002 04:08:17 +0900,
Akinori MUSHA wrote:
>  ipaddr.rb というライブラリを rough に入れました。IP アドレスを
> 表現するクラス IPAddr を提供します。

なんとなく冗長に感じられた部分をいじってみました。

Integer(Bignum)とバイナリデータの変換が意外とめんどくさいので、
そういうメソッドがほしいと思いました。バイト数指定のpack/unpack
のn/Nのようなもの。


Index: ipaddr.rb
===================================================================
RCS file: /cvs/ruby/src/rough/lib/ipaddr.rb,v
retrieving revision 1.2
diff -u -2 -p -r1.2 ipaddr.rb
--- ipaddr.rb	5 Dec 2002 19:20:30 -0000	1.2
+++ ipaddr.rb	6 Dec 2002 05:46:54 -0000
@@ -170,4 +170,5 @@ class IPAddr
   IN4MASK = 0xffffffff
   IN6MASK = 0xffffffffffffffffffffffffffffffff
+  IN6FORMAT = (["%.4x"] * 8).join(':')
 
   def IPAddr::new_ntoh(addr)
@@ -180,9 +181,5 @@ class IPAddr
       s = addr.unpack('CCCC').join('.')
     when 16
-      n = addr.unpack('CCCCCCCCCCCCCCCC')
-      s = (0..7).map { |i|
-	j = i * 2
-	sprintf("%02x%02x", n[j], n[j + 1])
-      }.join(':')
+      s = IN6FORMAT % addr.unpack('n8')
     else
       raise ArgumentError, "unsupported address family"
@@ -267,11 +264,9 @@ class IPAddr
     case @family
     when Socket::AF_INET
-      return (0..3).map { |i|
-	(@addr >> (24 - 8 * i)) & 0xff
-      }.pack('CCCC')
+      return [@addr].pack('N')
     when Socket::AF_INET6
-      return (0..15).map { |i|
-	(@addr >> (120 - 8 * i)) & 0xff
-      }.pack('CCCCCCCCCCCCCCCC')
+      return (0..7).map { |i|
+	(@addr >> (112 - 16 * i)) & 0xffff
+      }.pack('n8')
     else
       raise "unsupported address family"
@@ -510,14 +505,11 @@ class IPAddr
     case @family
     when Socket::AF_INET
-      return (0..3).map { |i|
-	(@addr >> (24 - 8 * i)) & 0xff
-      }.reverse.join('.')
+      n = "%.4x"
     when Socket::AF_INET6
-      return (0..31).map { |i|
-	sprintf("%x", ((@addr >> (124 - 4 * i)) & 0xf))
-      }.reverse.join('.')
+      n = "%.32x"
     else
       raise "unsupported address family"
     end
+    (n % @addr).reverse!.gsub!(/.(?!$)/, '\&.')
   end
 
@@ -529,7 +521,5 @@ class IPAddr
       }.join('.')
     when Socket::AF_INET6
-      return (0..7).map { |i|
-	sprintf("%04x", ((addr >> (112 - 16 * i)) & 0xffff))
-      }.join(':')
+      return (("%.32x" % addr).gsub!(/.{4}(?!$)/, '\&:'))
     else
       raise "unsupported address family"
@@ -540,5 +530,5 @@ end
 
 if $0 == __FILE__
-  eval DATA.read
+  eval DATA.read, nil, $0, __LINE__+4
 end
 


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread