rummelonp.comNameKazuya Takeshima Blogrummelonp.hatenablog.com Mastodon@[email protected] Twitter@rummelonp GitHub@rummelonp
ご存知の通り Ruby では仮引数の最後に '&' を前置した「ブロック引数」を宣言することで、メソッドに渡されるブロックをProcオブジェクトとして受け取ることができます。つまりメソッドに渡されたブロックを呼ぶ方法には2通りあります。 def m1 yield :m1 end def m2(&block) block.call(:m2) end m1{|a| p a } # => :m1 m2{|a| p a } # => :m2 この2通りのブロック呼び出しの違いについて触れた記事もいくらかあります。*1 *2 主にブロックが渡されていない時のエラーメッセージが違うなどの挙動の違いについて触れられていますが、この文章では両者のYARVでの実装上の差異とパフォーマンスの違いについて書きます。 最初に結論を "可能なら Proc#call ではなく yield を使おう" 「可能なら」とい
最新バージョンはコチラです。 Milkode(ミルコード)はソースコード検索エンジンです。手元にある大量のソースコードを登録し、ブラウザで閲覧したり検索することが出来ます。20000ファイル位であれば1秒位で特定の一行を見つけることが可能です。 Rubyで書かれており、使っているライブラリも含めてRubyGem経由でインストールすることが出来ます。 OSX, Unix $ sudo gem install milkode Windows(32bit) $ gem.bat install rroonga --platform x86-mingw32 $ gem.bat install milkode Windows(64bit) ※ 事前に64bit版rroongaのインストールが必要です。 $ gem.bat install milkode詳しいインストール方法はホームページをご覧下さい。
hg clone http://www.sunaga-lab.com/hgrepos/llprof # 安定版へ更新 hg update stable # 最新版へ更新 hg update
開発者の手引き¶ English version: DeveloperHowto bug report¶ Redmine Ruby master Ruby 1.8 Rubyforge の Ruby プロジェクト の Bug Tracking System Debian FreeBSD NetBSD Fedora MacPorts coding style¶ indent C は 4 Ruby は 2 tab/space Ruby コードは TABなし [ruby-dev:19388] CコードでもTABを使わずspaceだけを使う [Bug #14246] 改行コード 関数の宣言のスタイル 1.8はK&R1e、1.9 からは ANSI C style VC のバグを回避するために、ポインタを利用する無引数関数は関数定義以外にプロトタイプ宣言をすること 標準 C99 Travis/AppVe
Ruby ではメソッドの最後の式の値がそのまま返り値になります。どこで読んだのか忘れてしまいましたが「明示的に return を書くとちょっとだけ遅いので、不要なら明示的な return を書かずに返り値の式だけ書くのが Ruby 流」という言説があって、その当時試してみると確かに明示的に return を書かないほうがちょっと速いという結果だったので「不要なら明示的な return は書かないのがジャスティス」というのを信条にしてきました。 しかし先日その話をしていて、ふと 1.9 ではもうこの"常識"は通用しなくなってるんじゃないかと思いついたので確認してみました。 benchmark に使ったスクリプトと実行結果は gist に置きました。 https://gist.github.com/935934 明示的な return の有無と、さらに block の中から return する
postfix で secondly DNS を設定したところ,relay_domains を relaydomains と書いてしまっていて動かなかった. これは,「正しくない設定(存在しない設定)」をしても,単に無視する,ということではまってしまった話だと思う. shell script や ruby なんかで直接設定を書くような場合,こういうことは起こりやすいと思う.問題を狭めて,Ruby なんかで直接設定を書かせるとき,こういう間違いを起こさないような設定の書き方には,どんなものがあるか? そもそも,Ruby で設定ファイルを書かせる,ってのにやり方はどれくらいあるか. 1. 定数(nadoka がこれ) 2. ハッシュ(QuickML とかがこれ) 3. インスタンス変数(tDiary とかがこれ) 定数は,継承できるから便利だったので(継承させて使ってるのは俺だけのような気もす
動作環境 Ruby 1.8.7 / 1.9.3 / 2.0.0 / 2.1.0 or JRuby 1.7.1 RubyGems 1.4.2 or later Bundler 1.0.7 or later MongoDB 1.8.1 or later Google Chrome / Firefox / Safari 詳細は AsakusaSatellite documentation - セットアップ をご覧ください。 インストール ダウンロードページ から最新版をダウンロードし、展開してください。 展開したディレクトリを AsakusaSatellite にリネームし、以下のコマンドを実行してください。 $ cd AsakusaSatellite # 依存ライブラリのインストール $ bundle install --path .bundle --without development t
■ [Ruby] makeのコマンドライン表示を隠す なつかしい アイデアが採用された。 % make miniruby compiling ../ruby/trunk/main.c compiling ../ruby/trunk/dmydln.c compiling ../ruby/trunk/dmyencoding.c compiling ../ruby/trunk/version.c compiling ../ruby/trunk/dmyversion.c compiling miniprelude.c compiling ../ruby/trunk/array.c compiling ../ruby/trunk/bignum.c compiling ../ruby/trunk/class.c compiling ../ruby/trunk/compar.c compiling ..
Subject: [ruby-list:47694] [ANN] spreadsheet 0.6.5 リリース From: Masaomi Hatakeyama <mhatakeyama@ e e o Date: Tue, 14 Dec 2010 17:26:17 +0900 ywesee GmbH の畠山と申します。 まだマイナーバージョンアップ中ですが Ruby ライブラリspreadsheet リリース報告と自己紹介を兼ねてご報告します。 今年から spreadsheet の開発を私が引き継ぎました。 どうぞよろしくお願いします。 現在、英語ドキュメントしかありませんが日本語ドキュメントも整備中です。 (公開されている英語のドキュメントも不備が多く、整備中です。) ==紹介 * 比較的高速に .xls 形式のファイルをパースできます * Pure Ruby なので Linux からで
昔から「Rubyはドキュメントが弱い」と言われてきました。「PythonやPHPはあんなにドキュメントが揃っているのに、それに比べてRubyは。。。」というわけです。でも、待ってください。ドキュメントは記述が充実しているだけで十分ですか?簡単に目的のドキュメントにたどりつけますか? GoogleやBingなどの検索エンジンや、Amazonを筆頭とするECサイトは「探しものを見つけやすくする」ことにどんどん磨きをかけています。なぜ、ドキュメントの検索機能はそれほど進歩しないのでしょうか? ドキュメントの検索機能が、検索エンジンやECサイトでも使われているような最新の検索パターンを取り入れ、もっとリッチになればプログラミングがもっと楽しくなるはずです。それをRubyのドキュメントで実現しようとしているのがるりまサーチです。 最近、るりまサーチがよりパワーアップしたので、どう変わったかを紹介しま
FlexやRuby on Railsなどで使い方とかを自分が後でわかるようにメモしておくブログ。最近はFlex系に飽きてます。 [ruby]rdocは捨て去られてYARDになった[gem] 皆さんはrubyやrailsのドキュメントをどのように作成されていますか? rdocだとjavadocみたいなことができないーーーということに悩んでいませんか? そんなときにはこれをお試しください。 yardとは rdocの進化版 すごく綺麗なリファレンスが作成できます 参考URLとしてyardの凄さを表したのがこのページです。 => Gemリファレンス Gemに登録されているライブラリをyardで表示しています。 インストール 今回利用したのは0.6.4です。なおrdocの生成を勝手にしますが、失敗します。 gem install yard ドキュメント生成方法 RAILS等のルートディレクトリで実行
Webアプリケーションを作るとき、HTMLを生成するテンプレートエンジンをよく使いますが、これはパラメータに応じて様々なコードを生成する自動生成ツールであると言えます。 mplexは、プログラムを生成するためのテンプレートエンジンです。 実は MessagePack-RPC for C++ の実装に使っています。似たような関数をたくさんオーバーロードするために活用しています。(そろそろ可変長templateを使いたいですねぇ) 昔はeRubyを使っていたのですが、HTML用のテンプレートエンジンはソースコードがあまりに読みにくくなるので自作しました。 mplexを使うと、普通のプログラムの中にRubyのコードを埋め込むことができます: // クラスを4つ生成 %4.times do |i| class Test[%i%] { public: %if i % 2 == 0 int even;
みなさんはコードジェネレータを使った事があるでしょうか。私はあります。 SQLにHTML, JavaScript, はてはPHPまで、Rubyでコードジェネレータを使う機会は増すばかりです。 さて、Rubyでコードジェネレーションと言えばERbを使うことが多いですが、それで充分なのでしょうか。 他の選択肢はどうでしょうか。 今日は、wlangというコードジェネレータを紹介します。 template engine? 次のサンプルコードを見てください。 とてもシンプルなHTMLテンプレートエンジンのように見えます。 require 'wlang' puts WLang::instantiate(<<EOS, {:name => "O'Reilly & Animals", :animals => %w(Koala Rhino Giraffe)}, "wlang/xhtml") <h1>${nam
最終更新日: 2011/06/28 exlap_cは、Excelで扱えるxmlスプレッドシートファイル(xmlss)を作成するために設けたruby用のライブラリです。 最新のZIPアーカイブ: exlap_c130.zip(ver 1.3) ver 1.2.4 から 1.3 にかけて、かなりの修正を施しました。詳しくは exlap_c.txt を参照していただくとして、主な点は次のとおり。 構造体的Hashを採用した。これにより、cell.Font.Size のような記述が可能になった。 ワークシート内の一定の領域を扱うための ExlRangeクラスを新たに設けた。また、それに合わせて ExlSheetクラスににExlRangeに関連するメソッドをいくつか設けた。 ワークシートが空の時に、適切なxmlssを出力できなかったバグを修正。 既存のxmlssを取り込んだ時に、その文字コードがut
Rubyインターフェースを使い、ファイルのパスをゴニョゴニョするための一連のユーティリティ関数を書いてみた。それぐらい Vim script で書けよ、というものが大半*1だけど、一度使ってみたかったということもあり、練習も兼ねて。ていうか、色々と楽でいいやw*2 if has("ruby") function! util#path_expand(path) ruby << EOF path = File.expand_path(VIM.evaluate('a:path')) path.gsub!(/(["\\])/) { '\\' + $1 } VIM.command('let path = "' + path + '"') EOF return path endfunction function! util#path_split(path) ruby << EOF dir, base
組み込みクラス一覧 A〜E ARGF.class (843) Array (2016) BasicObject (154) Bignum (99) Binding (78) Class (80) Complex (527) Data (36) Dir (538) Encoding (2449) Encoding::Converter (253) Encoding::InvalidByteSequenceError (77) Encoding::UndefinedConversionError (55) Enumerator (194) Enumerator::ArithmeticSequence (84) Enumerator::Chain (36) Enumerator::Lazy (389) Enumerator::Yielder (27) Errno::EXXX (33) Excep
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く