Pryは結構前からgithubのリポジトリを追いかけている人達には認知されていましたが、RailsCastsでも紹介されたことから、Ruby界で一気に広がりを見せています。 ちなみに発音はpra'i(ぷらい)です。英単語で「覗く」などを意味します。 今回はそんな便利なPryについて少し紹介したいと思います。 Pryはirbの代わりになるREPL Pryを一言で説明すると、irbと同様にREPL環境を提供してくれます。 では、さっそくインストールしてみましょう。
Mechanizeがときどき日本語のページで文字化けするので、原因と解決方法を調べてみた。確認したバージョンは次の通り。 Ruby 1.9.1-p378と1.8.6-p111(Ubuntuのパッケージ) Mechanize 1.0.0 Nokogiri 1.4.2 libxml2 2.6.31(Ubuntuのパッケージ) エンコーディングの扱い Mechanizeの内部エンコーディングはUTF-8に固定されていて、ドキュメントのエンコーディングが何であれUTF-8に変換される。これはMechanizeがHTMLパーサに使っているNokogiriの仕様であり、Nokogiriが依存しているlibxml2の仕様でもある。そういう事情でMechanizeから取り出した文字列はすべてUTF-8になっている。Ruby 1.9だとString#encodingはEncoding::UTF_8にセットさ
今夜は、年に一度の W. V. Quine の命日イブです。 %;';;X= %q(x=1; z="%c"% 32;eval %w(w=N= Merry =128;r= z*79+$/; ;p=open" / dev/dsp ","w"rescue$_;/ / ;eval"s rand(%s)"%$*[ d=0];a=[];s=(r+z+% (%;';;X=#{z* 3}%q(#{X});e val(X)) +r*=23).l ines.map{|l|l.chop+ r};t=proc{|y|s [y][x-1,w].sca n(/\S /){s[y+1][m=x -1+$` .size ,1]== z&&a< <[$&,m, y,s[y ][m]=$/]};y};t[ 23];f =(0.. 1071) .map{|i|c,x,y =a.shuffle!. pop;s [y][x]=z
タイトルの通り,Ruby 1.9.2から$LOAD_PATHにカレントディレクトリが含まれなくなった($:も同様).この変更により,以下のような条件でrequireを使っているスクリプトが動かなくなった. スクリプトが置いてあるディレクトリdirで実行することが前提として作られている 他のスクリプトをdirからの相対パスでrequireしている $ cat foo.rb require "bar" $ cat bar.rb puts "baz" $ ruby foo.rb <internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- bar (LoadError) from <internal:lib/rubygems/custom_require>:29:in `require' from
書こう書こうと思ってたけど忘れてたのを、PerlエンジニアのためのObjective-C Blocks入門を見て思い出した。すいませんタイトルは便乗です。 試しに書いてみる Blocksってのが何者なのかはさっきの記事なりAppleのドキュメントなりを見てもらえばいいと思うんですが、まぁウケが良さそうなので付けたタイトルにのっとってRubyと比較してみる。 f = lambda {|x| puts "#{x}のこと以外は何も考えられない" } f.call("うどん") void (^f)(id) = ^(id x) { NSLog(@"世界の全てを敵に回しても、僕は%@の味方だ", x); }; f(@"うどん"); なんだ、そっくりじゃない。似てる似てる。 上がRuby版、下がObjC版。下は普通引数にはNSString*とかを使うと思うけど、まぁRuby版と挙動を合わせるためにidに
GraphVizを,rubyからあつかいませう. graphvizのインストール(下記はmacportsの例) sudo port install graphviz rubygemsで ruby-graphviz をインストール sudo gem install ruby-graphviz --remote サンプルプログラムを動かしてみる 以下をsample01.rb として保存し(もともとruby-graphvizに入っているサンプルプログラムを gems用にrequire部分を変更したもの) #!/usr/bin/ruby require "rubygems" gem "ruby-graphviz" require "graphviz" g = nil if ARGV[0] g = GraphViz::new( "G", :path => ARGV[0] ) else g = Gra
Copyright © 2009 SUGAWARA Genki Description Ruby bindings for bayon. see bayon. Install gem install bayon Example require 'bayon' docs = Bayon::Documents.new docs.cluster_size_limit = 3 docs.add_document('Jacob' , 'J-POP' => 10, 'J-R&B' => 6, 'Rock' => 4) docs.add_document('Emma' , 'Jazz' => 8, 'Reggae'=> 9) docs.add_document('Michael' , 'Classical music' => 4, 'World music' => 4) docs.add_docume
いやなブログ: 文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ に PHP がなかったので作ってみました。文字列検索置き換え系がわけ分からん。適当に preg 系でお茶を濁す。PHP はもっとちゃんとしたものを誰か作っていることでしょう。Objective-C もやらないわけにはいかないのでやってみました。 空白の部分は、該当する機能が無い、どんな機能かよく分からなかった、調べる気力が残っていなかった、のいずれかです。PHP はたぶん4.3以降〜5.xくらい。Objective-C 中の「ms」は NSMutableString です。 htmlなどのエスケープ関連も欲しいところですね。あと NSString が真価を発揮するファイルパス関連も。 Ruby (String) PHP (String 非オブジェクト) Objective-C (N
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
注意 現在ObjectiveResourceは iOS4.0 に対応できてないようです。 詳しくは こちら iPhoneはゲームのようにiPhoneだけで完結するアプリもありますが、たいていのアプリはサーバーと連携することで大きな可能性を得る事ができると思います。 その際にサーバー側のシステムとiPhone側のサーバーとの通信をどうするかは悩みどころですが、ObjectiveResource + Ruby on Rails を使うと本当に簡単にサーバー側と通信を行う事が出来ます。 サーバー側は Ruby on Rails ご存知のように、Ruby on Rails を使う事で高機能なWebサイトが短期間で構築できます。 例えば、上の画像のようなToDo を管理するようなWebアプリは 以下の様にコマンドを入力するだけで出来てしまいます。 % rails todo % cd todo % .
Ruby と MessagePack-RPC があれば、簡単なkey-valueストレージは簡単に作れます。54行で書けます(レプリケーションと負荷分散機能付き。サーバー38行、クライアント16行)。 簡単なKVSをベースにして、ログ集計や遠隔デプロイ、遠隔管理機能などの機能を追加していけば、ちょっと便利なサーバープログラムをサクサク自作できるハズ。 この分散KVSは、(keyのハッシュ値 % サーバーの台数)番目のサーバーにkeyを保存します。また、サーバーの名前順でソートしたときの「次のサーバー」と「次の次のサーバー」にデータをレプリケーションします。 すべてのサーバーで同じ設定ファイルを使います。サーバーごとの設定は引数を自分のホスト名に書き換えるだけなので、デプロイが容易です。 MessagePack-RPC for Ruby を使うと、分散しないkey-valueストレージ*1は
Ruby のサンプルプログラムを見つけましょう。 サンプルプログラムは自由に使用することができます。(詳しくは こちら) 例: Array#delete Hash Masaru(”まさる”さん)は、 Ruby のリファレンスマニュアルを読んだユーザが、 「もう少しサンプルが多ければいいのに」とか、 「このメソッドでこんなこともできるのに」と思ったときに、 ユーザ自身でサンプルプログラムを登録できるようにするために開発したシステムを利用した、 Ruby のサンプルプログラムを登録や閲覧をするためのサイトです。 String#* / yasuda-h at netlab dot jp 同じ文字列を複数並べて表示する。 47pt | 2008-08-23 02:27:19 String#% / yasuda-h at netlab dot jp 数値で文字列数を指定し、出力される内容の整形を
http://martinfowler.com/bliki/ClassInstanceVariable.html 2007/1/9 オブジェクトについて学ぶと、オブジェクトのデータには二種類あることが分かる。 インスタンス変数とクラス変数だ。 通常、インスタンス変数はオブジェクトのインスタンスごとに値が変わる。 クラス変数は(static変数とも呼ばれるが)クラスのインスタンスで共有される。つまり、すべてのインスタンスが同じ値をポイントしていた場合、クラス変数の変更はすべてのインスタンスに影響する。 クラス変数はインスタンス変数ほど頻繁に見かけるものではない。 特にミュータブルなクラス変数(mutable class variables)はほとんど見かけないだろう。 クラス変数の欠点は、継承が絡んできた場合の振る舞いにある。 クラス変数が自身のインスタンスを保持することを考えてみてもらいた
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く