Ruby

「失敗したのはおれのせいだから、もうこれ以上はやめてくれ」を実現するrspec --fail-fast (笑

以下のようにしてrspecを実行することで、1つでもspecに失敗した時点でそれ以降のspecを停止できるようです。 $ rspec --fail-fast /path/to/specrake経由だと以下のような感じですよね。 $ rake SPEC='--fail-fast /path/to/spec'あと、よく使うrspecのオプ…

「おい!ちゃんとロールバックしてるか!!」をRSpecで表現する

Railsアプリケーションのコントローラでは、なにかしらの例外が発生するとデータベースの変更をロールバックしますよね。 class ItemsController < ApplicationController def create Item.transaction do ... if エラー条件 raise ActiveRecord::Rollback e…

やってよかった、中学生Ruby教室

みなさんは全国高等専門学校プログラミングコンテスト(以下、高専プロコン)をご存じでしょうか? 簡単に言うと ロボコンの姉妹イベント ですね(ぉ なかなか良いイベントなんですよね、これが。私は松江高専の5年生のときにはじめて参加しました。そのときの…

はじめる!Ruby(Motion)でiOSアプリ開発

ついにこの日がきました。そう、iPhone・iPadアプリ(iOSアプリ)をRubyで開発できるようになったのです。 さっそく、いっしょにやってみましょう。 [STEP1] RubyMotionのインストール iOSアプリをRubyで開発するには RubyMotion が必要です。 Write cross-pla…

bundle gemべんり〜、でもね…

RubyでRubyGemsを作るときにどのような方法を使っていますか?(えっ、Railsしか使ってないって!?まぁ、そういわずに便利なコマンドライン用のツールとかを作るのも楽しいよ〜) 最近では、 Bundlerを使ってRubyGemsを作るのが簡単 ですよね。 作りたいプ…

Rubyの、たのしさ。

取り上げるのが遅くなりましたが、るびま37号が公開されました。 今回のるびまで私が印象に残っているのは 0037 号 巻頭言 、つまり高橋さんの記事です。「巻頭言」は37回も連続で続いている、るびまのテッパン記事です(笑) 今回は「Ruby のたのしさ」につ…

Rubyは、我々の秘密兵器です。

国内ソフトウェア開発者の実態調査結果を発表: http://www.idcjapan.co.jp/Press/Current/20120206Apr.html より ソフトウェア開発者がスキルを有する言語と、その中で最も使用している言語を尋ねた結果を見ると、多くの回答を集めた言語はC言語、Visual Bas…

Readline.refresh_lineの追加

ruby(MRI) 1.9にReadline.refresh_lineメソッドを追加しました。(r24020)これは、twitter:jugyoさんからご要望があり、twitter:koichirooさんからパッチをもらいました。 なお、このメソッドの使い方は[ruby-list:45922]から始まる一連のスレッドをみてくだ…

capistrano_colors

capistrano_colors とは Capistrano の実行結果を見やすいように色付けします。 例えば、以下のようになります。 インストール capistrano_colors は RubyGems を使ってインストールできます。 $ gem install capistrano_colors (環境によっては以下のコマン…

ruby 1.8系を使い続ける。

はじめに 趣味でも仕事でも ruby を使っている。趣味では ruby の 1.9 系を使えるが、仕事では使っていない。Rails が動かないからだ。だから、ruby 1.9 で Rails を動かす、のではなく、ruby 1.8 を使い続けることになる。そのためには、ruby 1.8.6 や ruby…

ruby-1.8.6、ruby-1.8.7 のパッチの候補

ruby-1.8.6 と ruby-1.8.7 の修正候補の一覧が以下の場所で公開されている。これは mput さんが管理されています。 http://svn.coderepos.org/share/docs/shyouhei/ruby%20development/revisions.txt http://coderepos.org/share/browser/docs/shyouhei/ruby…

Readline.set_screen_size と Readline.get_screen_size を追加

ruby の trunk (r22013) に Readline.set_screen_size と Readline.get_screen_size を追加しました。それぞれのメソッドを以下に説明します。 Readline.set_screen_size(rows, columns) 端末のサイズを rows で指定した行数と、columns で指定したカラム数…

ruby 1.9 の gem でのインストール時に test を行うとエラーが記録される。

はじめに ruby 1.9 向けのアプリケーション(Google Code Archive - Long-term storage for Google Code Project Hosting.)を開発している。 そろそろリリースしようと思って、gem を作成してインストールを試した。インストールがうまくいったので、test も…

trunk(r21924) で configure 時のエラーメッセージ

久しぶりに configure を実行した。以下のエラーが記録された。make できるので、configure 自体は問題なく終了しているようだが、これはなんだろう。 ragdoll$ ./configure --prefix=${HOME}/local --program-suffix=19trunk --with-readline-dir=/sw --ena…

Matsue.rb#0 の開催

明日、13:30から17:30まで、松江オープンソースラボにて、Matsue.rb#0を開催します。 Matsue.rb#0について、詳しくは以下のページをみてください。 https://matsuesns.jp/bbs/bbs_list.php?root_key=3389&bbs_id=80なお、当日はskypeのオープンチャットでや…

lib/minitest/unit.rb へのパッチ

ruby 1.9 を利用しており Rake を使用してテストしている。 以下、使用している Rakefile。 require "rake" require "rake/testtask" Rake::TestTask.new do |t| t.libs << "lib" t.libs << "test" t.test_files = FileList["test/**/*_{helper,test}.rb"] e…

ruby 1.9 の M17N 対応について

はじめに 本文書は、ruby 1.9 に導入された M17N 対応について、調査した結果や調査に関する作業ログである。 調査の目的は、私がメンテナンスしている Ruby の Readline モジュールを最近 (2008 年 10 月 25 日現在 ) 導入された Encode.default_internal …

lame-ruby - Ruby のLAME ラッパー

はじめに Ruby の拡張ライブラリの作成方法の調査と、MP3 エンコード機能を含む LAMEの調査をかねて、Ruby の LAME ラッパーを作成しています。 LAME MP3 Encoder Google Code Archive - Long-term storage for Google Code Project Hosting. まだ、PCM から…

for in else end

今日、Zope ガイドを購入した。そして、今日、読み終えた(マンガかよ)。 この本を購入したきっかけはenbug diary(2008-01-31)を読んだことです。この記事を読んで、Zope を知れば、未来を知ることができるかもしれない。と思ったのですが、この本には私が考…

takao7.net で nadoka さんを動作させる。

IRCNet に接続できないことが多いため、 IRC の bot を takao7.net で動作させることにしました。 インストール persian$ cd ~/setup persian$ svn co http://www.atdot.net/svn/nadoka/trunk nadoka-trunk 設定 nadokarc を修正します。nick は kouji_ndk …

ruby-talk:308431に回答する

内容の理解 Subject: Readline and conditional tab results based on input From: Marc Heiler <shevegen linuxmail.org> Date: Fri, 18 Jul 2008 01:44:26 +0900最初に「cd」を入力してから TAB を押すとファイルやディレクトリのパスを補完するが、不正な文字 (例えば「blabalblab</shevegen>…

Readline モジュールの RDoc の追加

数日前からちまちま作業していた Readline の RDoc をようやくコミットしました。 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/readline/readline.c?view=markup&pathrev=18420 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=…

Rubyのコミッタになりました。

2008年8月1日に念願の Ruby のコミッタになりました。これで、今年の目標の一つをかなえることができました。 まつもとさんと Readline のメンテナをゆずってくださった前田さんに感謝します。そして、 libedit に感謝します。libedit の完成度が低かったか…

古い libedit の add_history 関数がヒストリに入力した文字列を追加しない問題について

Mac OSX 10.4 の libedit の問題が Debian GNU/Linux etch の環境でも再現できることが分かりました。 この問題の詳細は、 ruby-dev:35551 からのスレッドを参照してくださいね。 havana$ cat /etc/debian_version 4.0 havana$ sudo apt-get install libedit…

Mac OSXでsvkを使ってRubyをハックする。

はじめに 最近、ruby(MRI) の Readline モジュールの libedit 対応や rdoc の記述を行っています。しかし、私は ruby のコミッタではないので、作業の成果を trunk には反映できません。パッチを作成しては ruby-dev ML に報告し、それを revert して rdoc …

Macのrubyのreadlineに不具合がある!?(8)

ruby の Readline へのパッチを作成した。パッチの概要を次に述べる。 GNU Readline を使用した場合の挙動は一切変えない。 パッチの適用前には、 EditLine(libedit) を使用する場合、次の問題がある。 libedit のバージョン (2.9より上?) によっては、 hist…

Macのrubyのreadlineに不具合がある!?(7)

パッチを作成する前に、GNU Readline を使用した場合の ruby の Readline の仕様を明確にするため単体テストを記述する。 これがあればデグレードを防げる。ext/readline/gnu-readline 以下に GNU Readline 5.2 版。 ext/readline/editline 以下に Mac OSX 1…

Macのrubyのreadlineに不具合がある!?(6)

私のパッチを ruby-dev に報告したあと、以下のことが ruby-dev([ruby-dev:35532]、[ruby-dev:35534]) で挙がった。 libedit の動作(history_base - 1)がバグなのか。バグなら将来のバージョンで修正されるのでは? libedit において、 history_get や remov…

Macのrubyのreadlineに不具合がある!?(5)

Macのrubyのreadlineに不具合がある!?(4)の続き。Ruby の Readline ライブラリをデバッグする。 問題は以下。 http://redmine.ruby-lang.org/issues/show/212Ruby の Readline ライブラリが GNU Readline を使用するようにしてコンパイルされた場合、以下…

Macのrubyのreadlineに不具合がある!?(4)

Macのrubyのreadlineに不具合がある!?(3)の続き。Editline Library (libedit) からたどることができるドキュメントを読もうと思ったが、閲覧できないようなのでソースを読むことにした。libedit/readline/readline.h 未実装のAPIが分かった。 extern KEYMA…