Ruby

DLR で .NET Framework 上で動く Ruby 風言語 Beryl を書いてみようとした

IronRuby は衰退しました Mirah という JVM 上で動く Ruby 風言語があるそうで、ググっていたところ .NET Framework 上で動く Ruby 風言語を作りたいなーと思ってしまった。 まずは IronRuby を目コピしてみることにした。 分かったこと Linux 版の MonoDeve…

Sinatra ぐろーいんぐ

Mojolicious::Guides::Growing を Sinatra で書いてみた。 まだログインマネージャとか書けれてないので序盤の序盤だけ。 基礎 わたしたちは新しいアプリケーションを、1 つの実行可能な Ruby スクリプトからスタートします。 % mkdir ./myapp % cd ./myapp …

TreeView で データを表示させてみたと思う

Gtk::TreeView は、Gtk::TreeModel オブジェクトを表示するためのウィジェットだよ。 このウィジェットはツリー上のデータが表示できるってわけじゃなくて、Windows Forms でいう ListBox みたいなこともできるんだ。 習作として、ENV の id と value を表示…

Ruby/Tk で Hello, World! してみた

なーんにも書くことないんだけど、とりあえずやってみた。 require 'tk' TkLabel.new { text "Hello, World!" pack } Tk.mainloop

とりあえず、Ruby で .NET Framework のバージョンを調べてみた

Windows 使ってると、.NET Framework のバージョンが気になるよね。 そこで、Ruby で .NET Framework のバージョンを確かめるスクリプトを書いてみたよ!みたよ! 実はね、.NET Frameworkのバージョンを確認する方法 [atmarkit.co.jp] っていう記事を覧て書…

あなたの予想に反して、この式が評価されているでしょうか?

ということで、こういうことをしたかったんだけど: puts if ((0..12).cover? Time.now.hour then "Hello, World!" else "Good evening, World!" end これはシンタックスエラーになる。 他の方法で上のようにワンライナーで書ける方法は無いかと考えてみたと…

Ruby で SQLite ってみた

Ruby で sqlite3 を使うにはコマンドプロンプトにこんな風に打ってね。 gem install sqlite3-ruby 使う時は上の方に: require 'sqlite3' って書いとけばおk。 次は早速データベースを作成しよう。 今回の例題は SQLで集合演算[codezine.jp] の「差集合で関…

require 'zlib' で false になる

とりあえず、./ext/zlib いけ、話はそれからだ。 require 'zlib' が false を返すのは読み込みに失敗したからで、 ruby をビルドして使っているなら、 zlib.so がビルド出来ていないからだ。 まず、ruby のソースがあるディレクトリをターミナル、またはコマ…

twitter モジュール使ってつぶやいてみた

bot を作ろうと思って最近ご無沙汰してたんだけど、またググってみた。 そしたら、よさげなソースが見つかった[hisasann.com] のでついったーに つぶやくとこだけ抜き出して書いてみた。 @foo に うふふ… とつぶやかせるスクリプト: # testtweet.rb require…

makefile を自動生成するスクリプト書いてみた

makefile.in 必須w #!c:/bin/ruby/bin/ruby # -*- encoding: shift_jis # mkconf.rb require 'optparse' opt = OptionParser.new opt.version = "0.0.1" OPTS = {} DEFAULT_PREFIX = "./bin" DEFAULT_INCLUDEDIR = "./include" DEFAULT_SRCDIR = "./src" DE…

optparse が使いやすすぎるので調子に乗って mkdir 書いてみた

エンコードがアレだけど、書いてみた。 --mode 実装してないけどね! #!c:/bin/ruby/bin/ruby # -*- encoding: shift_jis -*- # mkdir.rb require 'optparse' Encoding.default_external = Encoding::Shift_JIS Encoding.default_internal = Encoding::Shift…

前に書いたアーカイヴるスクリプトを optparse 使って書き直してみた

OptionParser を作成して、on でコマンドライン引数を追加するような感じ。 くわしくはここ [doc.okkez.net]で。 #!/c:/bin/ruby # -*- encoding: shift_jis -*- # archive.rb require 'optparse' opt = OptionParser.new opt.version = "0.3.1" OPTS = {} o…

めんどくさいので Ruby でカテゴリをソートしてみた

はてなダイアリー書いてると、カテゴリーがソートされてなくてちょっとイラッ☆ってしちゃう*1よね。 幸いにも、カテゴリを編集できるみたいだから、ファイルにコピペして、ソートしてみるよ。 コピペしたのが category.list で、ソート後のファイルが sorted…

とりあえず、require 'zlib' できた

ruby 1.9.2 rc1 を make instal したらできた…。 どーいうことなの…?

RSTRING(str)->ptr と RSTRING(str)->len の ptr と len が無いんだそうだ 2

ビンゴですた。 s/RSTRING(z->input)->ptr/RSTRING_PTR(z->input)/g とかしてたんだけど、めんどくさくなって、 s/RSTRING(\(.*\))->ptr/RSTRING_PTR(\1)/g s/RSTRING(\(.*\))->len/RSTRING_LEN(\1)/g で、コンパイル通った。 出来上がったのは、zlib.so だ…

RSTRING(str)->ptr と RSTRING(str)->len の ptr と len が無いそうだ。

RSTRING は、 #define RSTRING(obj) (R_CAST(RString)(obj)) のように定義されている。 obj って、VALUE 型だったんだっけ? 多分、R_CAST だし、キャストしてるんだろう。 RString が、Ruby での文字列の実体だったのか〜。 RString 構造体は、こんな風にな…

HEAD をアーカイブるスクリプトを書いてみた

git archive なんてら〜って毎回やるのは*1めんどくさいので、書いてみた。 tag には、ver-1.0.0.0 みたいなのが入ってるの前提で。 #!/local/usr/bin/ruby # -*- encoding: shift_jis -*- # archive.rb versions = `git tag`.split( /\n/ ).delete_if { |ta…

`dirname' を書いてみた

File クラスに入ってるけど、書いてみた。 ルールはこんな感じ。 path の一番後ろのスラッシュより前を返すこと スラッシュを含まないファイル名に対しては "." を返すこと 先頭が "./" なファイル名に対しても "." を返すこと path が "C:/" のようなときは…

Ruby で which 書いてみた

which[q-e-d.net] ってのは、コマンドのパスを調べるコマンドなんだって〜。 偶然、whichコマンドを作る[atmarkit.co.jp] なんてページを発見したので、 Ruby で書き直そうと思う。 bat バージョンがこちら: @echo off for %%I in (%1 %1.com %1.exe %1.bat…

らでぃっくすを底としちゃうかもしれない その3

ついに分かった。 とりあえず、おさらいしておこう: 常用対数は底が 10 な log。 自然対数は底が E な log(ln*1 とも)。 で、底が b な lob を logb とすると logb x は: log(x) / log(b) で求められる。 log8 19 を計算してみよう。 foo = Math.log(19) / M…