[#5880] "Linux Journal Vol.6" carries an article on Ruby — Shin-ichiro HARA <sinara@...>

原です。

16 messages 1998/01/19
[#5881] Re: "Linux Journal Vol.6" carries an article on Ruby — matz@... (Yukihiro Matsumoto) 1998/01/19

まつもと ゆきひろです

[#5905] win and unix, and so on — TAKAHASHI Masayoshi <maki@...>

高橋と申します。はじめまして。しばらくROMしてました。

27 messages 1998/01/20
[#5906] Re: win and unix, and so on — matz@... (Yukihiro Matsumoto) 1998/01/20

まつもと ゆきひろです

[#5912] Re: win and unix, and so on — WATANABE Hirofumi <watanabe@...> 1998/01/20

わたなべです.

[#5922] Re: win and unix, and so on — Shin-ichiro HARA <sinara@...> 1998/01/20

原です。

[#5951] How to use TkMenu ? — Kikutani Makoto <kikutani@...>

きくたにです。

16 messages 1998/01/21
[#5952] Re: How to use TkMenu ? — matz@... (Yukihiro Matsumoto) 1998/01/21

まつもと ゆきひろです

[#6023] Comparison with Other Languages (Re: [python-ml-jp 54] Re: Reasons why I prefer to use Python) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

8 messages 1998/01/26

[#6055] Ruby連載 第3回 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

68 messages 1998/01/28
[#6057] Re: Ruby 連載 第 3 回 — Kikutani Makoto <kikutani@...> 1998/01/28

きくたにです。

[#6060] Re: Ruby 連載 第 3 回 — matz@... (Yukihiro Matsumoto) 1998/01/28

まつもと ゆきひろです

[#6073] Re: Ruby連載 第3回 — hisanori@... 1998/01/28

松尾です。こんばんは。

[#6089] Re: Ruby連載 第3回 — matz@... (Yukihiro Matsumoto) 1998/01/29

まつもと ゆきひろです

[#6119] man/date/time — Tadayoshi Funaba <tadf@...>

こんにちは、ちょっと訊きたいことがあります。

37 messages 1998/01/29
[#6128] lib/date.rb (Re: man/date/time) — matz@... (Yukihiro Matsumoto) 1998/01/30

まつもと ゆきひろです

[#6136] Re: man/date/time — keiju@... (石塚圭樹 ) 1998/01/30

けいじゅ@日本ラショナルソフトウェアです.

[#6155] Re: man/date/time — Tadayoshi Funaba <tadf@...> 1998/01/31

>すいません. ruby-devにだけポストしていました.

[ruby-list:6005] Re: fold

From: WATANABE Hirofumi <eban@...>
Date: 1998-01-25 08:16:15 UTC
List: ruby-list #6005
わたなべです.

toyofuku@juice.or.jp <toyofuku@juice.or.jp> writes:

:  ふと思ったんですが折り曲げコマンドの fold
:を ruby で書こうと思ったらどう書くのが簡単
:ですか。

70 bytes で fold したいときは unpack(a71 a*) で分割して日本
語の泣きわかれは /.$/ がマッチするかどうかで調べるという方法
をとってます.

#nkf -f70 を呼んだほうが簡単だね. やっぱ Kconv.nkf が必要か?

いちおう簡単な禁則処理も入ってます. でもかなり遅いです.

-- 
わたなべひろふみ

class String

  head_chars = '].,:;?!)}>' +
    '、。,.・:;?!’”)〕]}〉》」』】>' +
    'ぁぃぅぇぉっゃゅょァィゥェォッャュョ'
  tail_chars = '[`({<‘“(〔[{〈《「『【<'
  HEAD_REGEXP = /^[#{head_chars}]/
  TAIL_REGEXP = /[#{tail_chars}]$/

  def fold width
    result = ''
    line = self.dup.delete!("\n")
    len = width + 1
    while line.size != 0
      left, right = line.unpack("a#{len} a*")
      if width < left.size
	if /.$/ =~ left
	  right = $& + right
	  left[-$&.size, $&.size] = ''
	else
	  right = left[-1, 1] + right
	  left[-1, 1] = ''
	end
      end
      while HEAD_REGEXP =~ right
	left << $&
	right = $'
      end
      while TAIL_REGEXP =~ left
	left = $`
	right = $& + right
      end
      if /\w+$/ =~ left
	word = $&
	before = $`
	if /^\w+/ =~ right
	  if width < word.size + $&.size
	    left << $&
	    right = $'
	  else
	    left = before
	    right = word + right
	  end
	end
      end
      result << left << "\n"
      line = right
    end
    result
  end
end

In This Thread