ruby

splat演算子の非互換

RUBY_VERSION # => "1.8.7" a = *1 a # => 1 a = *[1] a # => 1 RUBY_VERSION # => "1.9.0" a = *1 a # => [1] a = *[1] a # => [1] ぬぅー、このへんはあやふやだorz

三平方の定理はMath.hypot・C言語でも使える

http://rubyist.g.hatena.ne.jp/kusakari/20081020/1224497314Rubyで三平方の定理を使う場合はMath.hypotを使う。hypotはhypotenuse(斜辺)の略。見かけないんだけど、あんま知られてないのかな。組み込みなのにね。 Math.sqrt(3**2 + 4**2) # => 5.0 Math.…

逆引きRubyをEmacsで編集するための設定

逆引きRubyをEmacsで編集するための設定を書いた。これで編集する人が増えてくれると嬉しい。http://www.namaraii.com/rubytips/?Emacs%A4%C7%CA%D4%BD%B8%A4%B9%A4%EB%A4%BF%A4%E1%A4%CE%C0%DF%C4%EA

初めてのRedmine

id:nurseさんの勧めで初めて Redmineを使ってみた。 プロジェクト「Ruby」に登録できなかったのでRedmineのチケットも登録しておいた。

逆引きRuby逝く→生き返った!

http://www.namaraii.com/diary/?date=20081018#p01逆引きRubyというRubyのTipsを集めたWikiが突然なくなった。namaraii.comの移転にともなうもので復旧予定はないらしい。572個もはてなブックマークがついてて、「便利」、「わかりやすい」等の賛辞を多くも…

ontvjapanでテレビ番組のリストを得るスクリプトを修正

ontvjapanでテレビ番組のリストを得る - http://rubikitch.com/に移転しましたスクリプトを更新。バグ修正。

Rubyのsprintfは数字を3桁ずつコンマで区切る書式指定がない件

1,000,000等と表示することは多いというのに、いちいちgsub使うのはうざい。数字の表記方法でよく使われるのだからsprintfでサポートすべきだと思うな。スクリプト言語なんだし。sprintf.cと自前で実装してるんだからさ。 "%#d" % 100000 # => "100000" "%#x…

DRb.start_serviceが激重

突然DRb.start_serviceするだけで5秒待たされるようになった。 $ time ruby -rdrb -e 'DRb.start_service' ruby -rdrb -e 'DRb.start_service' 0.02s user 0.00s system 0% cpu 5.036 total 原因不明。これじゃあdruby使えないよ><wineをコンパイルするた…

String#gsub, String#split等は文字列パターンも指定できる

正規表現のメソッドだと思われがちなString#gsubやString#split、実はパターンに文字列を指定することができる。この場合は正規表現として解釈されるのではなくて、そのまま字面通りのパターンになる。初めて知ったよ。 'a+b'.gsub('+', '-') # => "a-b" 'a.…

cheatコマンド(チートシート)のanythingインターフェース

http://blog.netswitch.jp/articles/2008/09/25/zsh-completion-for-cheatでcheatコマンドを知る。cheatコマンドは主にRuby関係のチートシートを集めたサイトのコマンドラインインターフェースのようだ。現在392個のチートシートが参照できる。zshの補完を試…

WWW::MechanizeでリダイレクトされるURLを開くと複数回戻る必要があるっぽい

http://www.ruby-lang.org/は http://www.ruby-lang.org/en/ にリダイレクトされる。 $ wget --spider http://www.ruby-lang.org/ --19:12:06-- http://www.ruby-lang.org/ => `index.html' Resolving www.ruby-lang.org... 221.186.184.68 Connecting to ww…

俺がPerlを捨ててRubyに行った理由と同じ

2008-09-03彼が全部代弁している。 # クラス名定義 package PackageName::ClassName; # 親クラス設定 use base qw(PackageName::ParentClassName); # コンストラクタ定義 sub new { my($class, @args) = @_; my $obj = bless $class->SUPER::new(), $class; …

アクセサが好きならばハッシュよりも構造体がよい

Rubyのハッシュのアクセスを手抜きする方法 | おごちゃんの雑文 それはいいんだけど、こいつはJSONをハッシュに変換する。データがアクセス出来れば結局は 何でもいいのだけど、深い階層を持ったデータだとアクセスがなかなか面倒臭い。Rubyで構造 付きのも…

rcodetools 0.8.1リリース

http://d.hatena.ne.jp/mas-higa/20080815/1218805056 の不具合報告を受けてrcodetools 0.8.1を緊急リリースしました。 Ruby1.8.7p71以降だと$0がfreezeされているので、Windows環境や「--tempfile」オプションをつけるとエラーが出てしまいました。 Unix系O…

Rubyでコード補完はrct-complete-symbolをどうぞ

汝の隣人のブログを愛せよ | LOVELOG これで、emacsを起動したらM-rでriロードしてから、M-cでコード補完できます。 たしかにこれでも補完ができるが、より正確な補完がしたければ M-x rct-complete-symbol をどうぞ。(require 'anything-rcodetools) してい…

rcodetools 0.8.0リリース

メーリングリストのコピペ。 rcodetools 0.8.0をリリースしました。 告知が遅くなってすみません。 rcodetools は Ruby のコードを扱うツール群です。 rcodetools には xmpfilter とエディタに依存しない開発支援ツールが含まれています。 Emacs と Vim のイ…

ontvjapanでテレビ番組のリストを得る

テレビ番組表取得スクリプトが使えなくなった - http://rubikitch.com/に移転しましたでYahoo!の番組表が使えなくなった件だが、あのサイトから情報を得るのは大変なので別のサイトを使ってみることにした。 一見どこのサイトも表形式での番組表しか提供して…

巨大な正規表現で解析するのは快感

複雑な構造のテキストを巨大な正規表現で解析するのって快感だよね。 こんな感じで正規表現のxオプションで正規表現を複数行に分けて書けるようにし、コメントも書けるようにする。そして、インデントして細かく記述していく。そしてString#scan一発で情報を…

テレビ番組表取得スクリプトが使えなくなった

今までずっとtvprog.rbでYahoo!のテレビ番組表をテキスト形式に落として使っていたのだが、大幅なデザイン変更されたせいで使えなくなってしまった。あのHTMLはかなり複雑だし、まいったものだ。

setup.rb / install.rb / extconf.rb 対応自動インストーラ setuprb を作ってみた

RubyGemsを使わないRubyスクリプトのinstallはsetup.rbが定番だ。だからsetup.rbを入れておくのが礼儀となっている。 現在のバージョン(といっても何年も前だが)は「ruby setup.rb」を実行するだけでいいのだが、パッケージ附属のsetup.rbは古いこともある…

content-typeを修正するCGIスクリプトをpolipoで使う

Yahoo!ブログの画像のcontent-typeがtext/plainになってやがるからw3mじゃ画像が見られん。なんという手抜きだ(怒) 以前もcontent-typeがおかしいと苦情を送ったのだがシカトされたし。 IEとかでtext/plainな画像が見られるのは、IEが間違っているということ…

「まるごとRuby! Vol.1」が増刷されました

かなり遅い告知ですが、まるごとRuby! Vol.1が増刷されました。 僕の記事が役立ったと言ってくれる人もいて、とても嬉しいです。ありがとうございます。

erbコマンドは行頭の%を認識するが、ERB.newのデフォルトは認識しない件

Ruby標準添付のeRuby実装のerb。これはerbコマンドにもなっていてシェルから実行できる。 たとえば、こんなeRubyスクリプトをerbで実行すると、「1 + 1 = 2」と出てくる。 % a = 1 <%=a %> + <%=a %> = <%=a+a %> 一方、ERB.new(eruby_script).resultで実行…

キーワード引数のキーワードをチェックしてみる

fluent interface 流れるようなインターフェイス - #生存戦略 、それは - subtech Ruby でキーワード引数的な Fluent Interface の実装 - #生存戦略 、それは - subtech 流れるようなインターフェースとメソッドチェーンは違うもの - yvsu pron. yas最近は流…

scriptライブラリでRubyスクリプトそのものをオブジェクトにする!

Scriptscriptというライブラリがある。これは、Rubyスクリプトファイルをオブジェクトとして扱うものだ。 gem化されてないのでインストールは手作業で。 wget http://redshift.sourceforge.net/script/script-0.3.tgz cd script-0.3 ruby install.rb config …

Procの中身を文字列で得る、それが可能なんだな

Procのソースを取り出すライブラリ:proc_source.rb - Hello, world! - s21g直リンクProcの中身が得られるなんて!まさかそんなことがと思ってソースを覗いてみた。なるほどSCRIPT_LINES__でprocの定義開始を見て、irb附属のruby-lexでprocの終わりを知る方…

String#gsubでエラー?

Ruby1.8.7-p22で ActiveSupport2.0.2 の、 String#camelizeをすると、 Ruby1.8.7だから、 String#gsub() #=&gt; Enumerable::Enumerator になっちゃうので、エラー。 - Ruby学習メモ - RubyistString#gsub() #=> Enumerable::Enumeratorになるケースってブロ…

RailsのreturningってObject#tapじゃないか!

http://d.hatena.ne.jp/takihiro/20080701/1214919182 # A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman. # # def foo # returning values = [] do # values << 'bar' # values << 'baz' # end # end # # foo # => ['bar', 'baz…

anything-dabbrev-expand.elでdabbrevの部分マッチをサポート!

anything-dabbrev-expand.elリリース - http://rubikitch.com/に移転しました昔からEmacs Lispの長いシンボルにはうんざりしていた。最近使ったシンボルはよくdabbrevで補完するのだが、数文字打ってすぐdabbrevしてしまうと、別なシンボル名に補完されてし…

httpclientでファイルのアップロードの仕方を追記

Rubyでwebにアクセスするならhttpclientが手軽 - http://rubikitch.com/に移転しましたちょうど質問があったので回答した。