Ruby

「Rubyの普及を目指した自治体基幹業務システム構築」成果報告書をざっと読みました

以下の記事を読んで興味を持ったので「Rubyの普及を目指した自治体基幹業務システム構築」成果報告書をざっと読みました。この報告書見て、一体何人がRoRを使おうと思うか興味津々なんです。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)報告書は以下から…

1.9 trunk の proc{}[1,] 問題

先日は各種 1.9 対応用パッチを投げましたが、Ramazeさんへのパッチは追記したようにどうにもマズいものでした。各種1.9対応パッチ投げますよ! - ¬¬日常日記これを受けて manveru さんが ruby-core に投げたメールは次のものです。[ruby-core:18560] Re: [A…

Rubinius は出来る子!という話

以下の記事を読みました。lambdaの動作 - はてなかよっ!それはさすがにどうだろう、と思うわけですが、でも我々には Rubinius という素晴らしい武器があるではないですか! class Foo Map = { 'key1' => lambda { |bar| puts bar p MethodContext.current.s…

各種1.9対応パッチ投げますよ!

ruby1.9 に対応してる gem は少な過ぎると思うわけです。いや、だって trust/untrust 使いたいんだから(せっかく作ってもらったのに使わなかったらもったいない!)、1.9 じゃなきゃダメなの。そういうわけだからあちこちパッチ投げますよ! Ramaze さん Ra…

Rubinius のコミット権をもらっちゃうよ!な話

先日 Rubinius にパッチを送りました。Rubinius に Module#include のパッチ送ってみました - ¬¬日常日記パッチは無事に採用されたようです、ありがとうございました。なんか色々と勘違いしているような気がして心配していたのですが、取り込まれて良かった…

for in else end 的な話

以下の記事を読みました。2008-09-09 for in else end私は Ruby の for 構文は全く使いません。なので for in else end みたいなのが増えてもきっと使わないと思います。だけど記事にあるような場面ってしばしばありますよね。というわけで代替策を考えてみ…

Rubinius の変なところ:モジュールまわりをいじっていて気付いたところ篇

keita% ./shotgun/rubinius -e "module ::A; end" An exception has occurred: Missing or uninitialized constant: A (NameError) Backtrace: Module(Class)#const_missing at kernel/core/module.rb:713 Object#__script__ {} at (eval):1 Kernel(Module)#…

Rubinius に Module#include のパッチ送ってみました

前に Rubinius の Module#inlcude がおかしいから直すって書いたきり、直してないのを思い出しました。Rubinius で循環継承 - ¬¬日常日記有言実行ということでとりあえずパッチを作りました(パッチは LightHouse のトラッカーに送ればいいみたいですね)。こ…

Ruby で Notation3 パーサな ruby-n3 を作りました

Notation3 こと n3 の Ruby で書かれたパーサ ruby-n3 を作りました。strscan と racc でみやびに実装しました。http://github.com/keita/ruby-n3/tree/master(野心をいだいたので改名しました)n3 は、RDF とかで知識書き下したいなぁー、でも XML なんか…

Ruby のコマンドラインオプションを復習しました!

ダオカオス☆技術局こういうのはワンライナーで十分だよね。と思いつつも、Perl の時は多少なりともワンライナーで書いていたのに Ruby では全然書いてなくて、それでもってオプション指定しようとして戸惑いました。これはマズい!と思ったので、慌てて復習…

Selfish で BankAccount

Selfish で BankAccount を書いてみました。BankAccountただしまた setter の記法を変更してしまいました。というのも、BankAccount を書いていて「これはマズい!」と思ったからです。どこがマズいのかというと、まず getter と setter の区別が表面的につ…

ブロックの self を差し替えたい、という話

Selfish では Self を真似るため(本当の目的は delegation を行なうため)にメソッドをオブジェクトとして持つ必要があります。Self のメソッドオブジェクトはコードにおける暗黙の self の差し替えが可能です。でもなぜそうした目的のためにわざわざ Selfi…

Selfish にメソッドオブジェクトを追加しました

Selfish のスロットの値割り当て方法を変更 - ¬¬日常日記昨日は id:miura1729 さんのおかげで Selfish がぐっと Self っぽくなったので、これに刺激を受けてさらにメソッドオブジェクトをきちんと実装してみました。そんなわけでメソッドの書き方も変更にな…

Selfish のスロットの値割り当て方法を変更

「 Selfish: Ruby で Self 的プロトタイプベース!」の変更案 - miura1729の日記id:miura1729 さんの変更案がとっても素敵なので、こちらを採用させて頂くことにしました。誠にありがとうございました!そうですよね、代入の"="なんて邪悪!この変更のおかげ…

要素代入演算子式に関する落とし穴

Ruby の要素代入演算子(演算子でいいのかな?)は定義が可能です。 class A def x=(a) return 1 end end 上の定義は A.new.x = y の形で y の値にかかわらず常に 1 を返すように意図したつもりですが、実際には上手くいきません。 A.new.x = 5 #=> 5 A.new.x …

Selfish: Ruby で Self 的プロトタイプベース!

Ruby に Self 的なプロトタイプベースオブジェクト環境を導入する Selfish というものを作りました。http://github.com/keita/selfish/tree/masterこれは、Self に興味があるけど試せない人のために、Ruby でそれっぽい感じに Self の雰囲気を再現しようとい…

脆弱性って何かを知りませんでした!

以前セーフレベル4関係で送ったパッチが脆弱性ということで報告されててまぁびっくり。Rubyに複数の脆弱性なぜびっくりかと言うと、私はこれらを脆弱性だと認識していなかったからです(特に untrace_var のは)。「セキュリティーホール」とかの言葉とごっ…

delegation って何?

DelegateClass の謎 - ¬¬日常日記さて、このように Ruby の DelegateClass は良く分からない事でいっぱいです。しかし そもそも「delegation って何?」ということを理解していないと、MLで聞くことも出来ませんので delegation について調べてみることにし…

DelegateClass の謎

DelegateClass に起因するスペックテスト問題 - ¬¬日常日記というわけで、さて本論の DelegateClass の謎について書いてみたいと思います。まず前提として、私は delegation というものが何か今はまだよく分かっていません。だから、謎は謎のままです。今後…

DelegateClass に起因するスペックテスト問題

私の大好きな Bacon さん(一応 RSpec クローンですけど、記法が色々違うので注意して下さい)で DelegateClass を使って定義したクラスのオブジェクトの振舞いを定めていて気付きました。RSpec についても同様の状況ですので、DelegateClass を使う場合には…

Rubinius で循環継承

先日は Smalltalk で循環継承を起こして遊びました。ProtoObject の謎と superclass - ¬¬日常日記しかし CRuby では循環するような継承関係を作ることは出来ません(と思います、私がソースを読んだ限りでは無理だと結論しました)。CRuby においては継承関…

ruby-pathtraq を作成しました

長い沈黙を破ってついに待望の Pathtraq API が登場したようです。やったね!マウント アンマウント | パソコン豆知識そこで Ruby の Pathtraq API のラッパーライブラリであるところの ruby-pathtraq を作りました。API 自体はとっても簡単だからわざわざラ…

libedit(editline)の闇を垣間見る

[ruby-dev:35551] [Ruby 1.8 - Bug #212] Issues with Readline in Mac OS X話の流れをまとめると次のような感じ。 Mac OSX で Ruby の Readline モジュールのヒストリ機能がなんか変ですよ 高尾さんがパッチを作って下さった なんか色々大丈夫? それで高尾…

sqlite3-ruby 1.2.2 の gem のパーミッションが変な話

http://slashdot.jp/developers/comments.pl?sid=410440&cid=1384452 最近RoR始めたんだけど、標準のデータベースsqlite3がうまく扱えなかった。 原因は、sqlite3-rubyのGEMのパーミッションが腐ってるからだった。 いくらなんでも、品質悪過ぎ。 #RoRが悪…

Ruby Issue Tracking System のアカウントを作成しました

前に気付いたけど、かなりどうでもいいから見なかったことにしているバグというかミスを、なんとなく報告しておこうと思いました。良く分かってないのですが、最近そういうのは ITS で報告するのが流行りなのでしょうか。とにかく一度 RedMine というものに…

AsmXml のラッパーライブラリ ruby-asm-xml を作成しました

AsmXml のラッパーライブラリ ruby-asm-xml を作成しました。http://github.com/keita/ruby-asm-xml/tree/masterrubyforge にはついさっきプロジェクト申請したばかりなので、まだ gem とかはありません。というか手抜き版なので現時点ではとりあえず動くよ…

ruby-termios の gem の不思議

RTask は Curses なプログラムで Readline を使用しますので、拡張ライブラリの termios が必須となりました。 http://arika.org/ruby/termios http://rubyforge.org/projects/termios/ それで rubyforge の方で公開されているパッケージの一覧を見たら gem …

RTask ver.010 をリリースしました!

Home · keita/rtask Wiki · GitHub gemのリリースをとっても簡単にする RTask を作りました - ¬¬日常日記 最近すっかり gem を作っていないので放置していた RTask ですが、実はライブラリの rubyforge が 1.0.0 にバージョンアップした時に API が変わっち…

Curses なプログラムで Readline を使う方法

Curses を使用したプログラムの中で Readline を利用したい場面というのは多々あると思うのですが、何も考えずに次のようにすると何を入力しても文字が表示されません。 require "curses" require "readline" Curses.init_screen # 入力が端末に印字されない…

StarRuby を使ってニュースを表示する Oshirase.rb を作成しました

http://www.starruby.info/ja/ Ruby のゲーム開発の現状と自作ゲームライブラリ Star Ruby - 星一 - ニコニコ動画 StarRuby はとても素晴らしくて、なにが素晴らしいかというと、私のように何も分かっていない人でもとっても簡単にアプリケーションが組める…