2005-02-16 Wed

Ruby でアルゴリズム はてぶ

http://www.mnet.ne.jp/~tnomura/algorithm.html

奥村晴彦さんの「C言語による最新アルゴリズム事典」技術評論社、1991年、の
C 言語プログラムの Ruby への翻訳に挑戦します。

2004-11-08 Mon

プログラミング入門 - Rubyを使って - はてぶ

http://www1.tf.chiba-u.jp/~shin/tutorial/

2004-10-09 Sat

日本語の文字列を UTF-8 に変換する はてぶ

http://namazu.org/~satoru/blog/archives/000005.html

2004-06-03 Thu

Ruby レシピブック 268 の技 はてぶ

三省堂本店で購入。

- サポートページ
  http://www.notwork.org/rubyrecipebook/

2004-05-10 Mon

rubyzip はてぶ

http://rubyzip.sourceforge.net/

ruby で zip を扱うためのライブラリ。

インストール
install.rb が付属しているが、オプションでインストール先が指定できない。
sitelibdir に zip というディレクトリを作り、そこにファイルを
コピーしているだけなので、install.rb を使わずに spec file を書く。


使い方

展開
Windows 上で作られた SJIS のファイル名のファイルは Linux 上では
文字化けするので、euc-jp でファイルを展開するには
次のようにすればよい。

  zip = Zip::ZipFile.new(INPUT.zip)
  name = NKF::nkf('-eZ', entry.name).gsub(/\s+/, "_")
    File.open(File.join(dist, name), "w") {|f| f.puts zip.read(entry.name)}
  end


圧縮
Linux 上で zip file を作ると Windows 上で化けるので、
SJIS のファイル名として圧縮するには次のようにすればよい。

  Zip::ZipFile.open("OUTPUT.zip", Zip::ZipFile::CREATE) {|zf|
    files.each do |i|
      zf.add(NKF::nkf("-s",i), i)
    end
  }


files は 圧縮するファイル (path) の配列。


その他

zip.rb の 11 行目は警告がでるのでコメントアウト。

  09 if Tempfile.superclass == SimpleDelegator
  10   require 'zip/tempfile_bugfixed'
  11   Tempfile = BugFix::Tempfile
  12 end


Referrer (Inside):
[2007-06-29-2] Linux 上で Windows 向けの zip ファイルを作る
[2007-03-06-2] 日本語のファイル名を含んだzipアーカイブが、unzipで展開すると文字化けすることがある

2004-04-26 Mon

配列のランダム化 はてぶ

ruby-list 39588 からのスレッドより

Simple に

class Array
  def randomize
    sort_by{ rand(100) }
  end

  def randomize!
    replace randomize
  end
end


速度を気にする場合

class Array
  def randomize!
    length.times do |i1|
      i2 = rand(length)
      t = self[i1]
      self[i1] = self[i2]
      self[i2] = t
    end
  end

  def randomize
    result = self.dup
    result.randomize!
    result
  end
end


2004-02-18 Wed

『Rubyソースコード完全解説』 HTML 版公開 はてぶ

To: [email protected] (ruby mailing list)
Subject: [ruby-list:39198] RHG 全章公開
From: Minero Aoki <[email protected]>
Date: Tue, 17 Feb 2004 04:20:41 +0900
Posted: Tue, 17 Feb 2004 04:20:40 +0900

青木です。

Ruby Hacking Guide こと『Rubyソースコード完全解説』の HTML 版を
全章公開しました。

  URL:
  http://i.loveruby.net/ja/rhg/

オンライン版とアーカイブしたのと両方あるので、都合のよいほうを
お使いください。

なお、この原稿は初校ベースであるため、間違いがかなりたくさんあります。
その逆に、最初のほうの章は書籍にある間違いまで直っていたりもします。


---------------------------------------------------------------
青木峰郎

2004-02-03 Tue

Tempura - TEMPlate Utility for Ruby Application はてぶ

http://www.imasy.or.jp/~hisa/ruby/tempura/

Tempura は, XML (XHTML など) で書かれたテンプレートと実データ
(任意のオブジェクト) を結び付け, 生きた XML 文書を生成するための,
いわゆるテンプレートライブラリです. オブジェクト指向スクリプト言語
Ruby 用のライブラリとして実装されています.

samidare で使用.

2004-01-30 Fri

相対パスを求める はてぶ

pathname を使って次のように.

require 'pathname'

path = Pathname.new("/home/fumi/test.txt")
from = Pathname.new("/home/fumi/test/1")

relative_path = path.relative_path_from(from)


=> #<Pathname:../../test.txt>


2003-11-09 Sun

lb はてぶ

http://homepage2.nifty.com/TARAI/program/products/lb/

Ruby/GtkEmbedMoz を使った 軽量ブラウザ

2003-11-03 Mon

整数同士の割り算を行い、答えの整数部分を求める はてぶ

0 方向に丸める.

1.8 系 では x.quo(y).truncate を使う

irb(main):002:0> 5 / -2
=> -3
irb(main):003:0> 5 / -2.0
=> -2.5
irb(main):004:0> 5.quo(-2).truncate
=> -2
irb(main):005:0> -5 / -2.0
=> 2.5
irb(main):006:0> -5 / -2
=> 2
irb(main):007:0> -5.quo(-2).truncate
=> 2


1.6 系では,quo がないので

 ((x+0.0)/y).truncate


2003-10-29 Wed

open-uri - very easy to use wrapper to net/http and net/ftp. はてぶ

openの中に直接URIを書けるようにする。Ruby 1.8標準塔載。

使用例

require 'open-uri'

open("http://www.ruby-lang.org/en/index.html") {|f|
  f.each_line {|line| p line}
  p f.base_uri
  p f.content_type
  p f.charset
  p f.content_encoding
  p f.last_modified
}


open-uri を使わないとこんな感じ

URI.parse("http://www.ruby-lang.org/en/").open(
  "User-Agent" => "Ruby/#{RUBY_VERSION}",
  "From" => "[email protected]",
  "Referer" => "http://www.ruby-lang.org/"
) {|f|
  ...
}


2003-10-10 Fri

The Philosophy of Ruby - A Conversation with Yukihiro Matsumoto, Part I はてぶ

http://www.artima.com/intv/ruby.html

2003-09-29 Mon

2つの文字列の先頭から等しい文字列を抜き出す はてぶ

Linuxビボ〜ろく
- 09-26 http://ponx.s5.xrea.com/bibo/20030926.html#p03
- 09-28 http://ponx.s5.xrea.com/bibo/20030928.html#p01
- 09-29 http://ponx.s5.xrea.com/bibo/20030929.html#p01
より.

def match_first(a,b)
  i = 0
  while a[i] and b[i] and a[i] == b[i]
    i+=1
  end
  a[0, i]
end


def match_first(a,b)
  a.size.times{|i|
    return(a[0,i]) if a[i] != b[i]
  } and a
end


2003-08-12 Tue

日付けの parse はてぶ

Just another Ruby porter,
http://jarp.jin.gr.jp/diary/200308b.html#200308111 より.

% ruby -rdate -rpp \
    -e 'pp Date._strptime(ARGV[0], "%d/%b/%Y:%T %Z")' \
    '11/Aug/2003:22:36:08 +0900'
{:zone=>"+0900",
 :sec=>8,
 :year=>2003,
 :hour=>22,
 :offset=>32400,
 :mday=>11,
 :min=>36,
 :mon=>8}

% ruby -rdate -e '
  p Time.mktime(*Date._strptime(ARGV[0], "%d/%b/%Y:%T %Z").
  values_at(:year, :mon, :mday, :hour, :min, :sec, :zone))' \
  '11/Aug/2003:22:36:08 +0900'
Mon Aug 11 22:36:08 JST 2003


ChangeLog 最新ページ / カテゴリ最新ページ / 前ページ 1 2 3 4 5 6 7 / page 6 (7)