ruby

rspec-mocks を irb 上で利用するメモ

001 > require 'rubygems' => false 002 > require 'rspec' => true 003 > RSpec::Mocks.setup(self) => #<RSpec::Mocks::Space:0x007ff0ee055780> 004 > o = Object.new => #<Object:0x007ff0ee059d80> 005 > o.stub(:hoge){ true } => #</object:0x007ff0ee059d80></rspec::mocks::space:0x007ff0ee055780>

Module#prepend

Module.prepend の意義を頻繁に見失って混乱するので以下の資料を読んで得た理解を纏める。間違っていたら指摘頂けると有り難い。参照: https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails元々 alias_method_chain は alias を活用した、メソッドその…

rspec の matcher を irb 上で試す

$ irb 1.9.2p290 :001 > require 'rubygems' => false 1.9.2p290 :002 > require 'rspec-expectations' => true 1.9.2p290 :003 > 1.should == 1 => true

RubyKaigi2010 企画「Rubyで扱うLDAPのススメ」無事終了しました&資料公開

人が集まるか大分不安だった企画ですが、二十数人の方々にお集まり頂きました。ご参加くだった方、ご協力いただいた谷口さん、カピバラさん、岡澤さん、いろいろとご質問に答えてくださった須藤さん、ありがとうございました。この場を借りてお礼申し上げま…

ActiveLdap::Base#find の :filter キーに渡した引数の結果、どんなフィルタが生成されるかを確認する

タイトルが長い。以前の記事で、ActiveLdap::Adapter::Base#parse_filter がフィルタのパーシングを行うという話を書いたのだけれども、これを外から確認したくなった。正確には、フィルタを手で書くのがすごく面倒で面倒で生きている意味が判らなくなったの…

[ANN]RubyKaigi2010 企画 "Ruby で扱う LDAP のススメ" にご協力頂ける方を募集しています

Ruby には LDAP を扱うライブラリが幾つかある一方、LDAP 自体のマイナーさもあってか、まとまった情報が見当たらないな、と感じています(Ruby かどうかは関係ないかもしれませんがw)これをある程度解決するために "Ruby で LDAP" な場合の選択肢とその事…

ActiveLdap の記事後編を書きました。

Rubyist Magazine 29号にて 「ActiveLdap を使ってみよう(後編)」を書きました。Rubyist Magazine 29号今回は前編の内容を下地にして、より応用的な技術を解説していきました。前回はチュートリアル的で、今回はリファレンス的な内容です。ActiveLdap を既…

インスタンス変数に、内部から getter でアクセスするのは割とよくやる手法です

なんか表題が偉そうだ(笑こちら からトラバが来ていたので取り急ぎ。ポイントは以下の二つ Ruby ではインスタンス内部からインスタンスメソッドを呼ぶ場合、レシーバを省略できる メソッド呼び出しの際、括弧を省略できる なので、options はインスタンスメ…

るびまにActiveLdap の記事を書きました

表題のとおり、Rubyist Magazine に ActiveLdap の記事を書きました。Rubyist Magazine 0027 号”ActiveLdap を使ってみよう”という記事です。記載のとおりこれは前編で、後編ではより応用的な内容や詳細なAPI周りを記載していく予定です。何かご要望などあっ…

Enumerable#all? と any? が好きすぎる

Ruby のメソッドで、最近はブロックつけた Enumerable#any? と all? が大好き。なんていうか、この気の利いてる感が。いちいち嬉しくなってしまう。 Enumerable#all? ブロックの戻り値が全て真なら真を返す。 全て 'hoge' なら真。 irb> ['hoge', 'hoge'].al…

ActiveLdap::Base#find の :filter オプション

ActiveLdap は LDAP へのオブジェクト指向インターフェースを提供する Ruby ライブラリ。ActiveRecord ライクに LDAP を扱うことができます。ActiveLdap::Base#find は :filter オプションで LDAP エントリの検索条件を指定します。ActiveRecord::Base#find …

ActiveLdap 日本語チュートリアル

ActiveLdap は LDAP 上のオブジェクトを、 ActiveRecord ライクのオブジェクト指向インターフェースで操作するための Ruby ライブラリです。LDAPプログラミングは、これまで扱いが煩雑だったようですが、このライブラリはそれの解決を目指しています。日本語…

ActiveLdap インストールメモ

自分用。 cd ~/src wget wget http://downloads.sourceforge.net/ruby-ldap/ruby-ldap-0.9.7.tar.gz?use_mirror=nchc tar -xzf ruby-ldap-0.9.7.tar.gz cd ruby-ldap-0.9.7 ruby extconf.rb make su -c 'make install' # root gem install activeldap

Ruby を Subversion からチェックアウトしてコンパイル

ruby の trunk をそろそろ使い始めようと思い、CentOS 5 で試してみる $ mkdir -p ~/svn/ruby $ cd ~/svn/ruby $ svn co http://svn.ruby-lang.org/repos/ruby/trunk $ cd trunk $ ./configure --prefix=~/localってあれ。configureない。なので autoconf し…

Ruby認定技術者 Silver 取得

無事合格したのでした。内容は公開されているとおり。言語構造の基本的な事柄や組み込みライブラリの話がメイン。自分は言語を覚えるとき、言語構造から入ってライブラリをうっちゃる癖があるので勉強になりました。勉強の結果としてRuby書くのがこれまで以…

rubyの例外挙動確認メモ(コード)

振り返ったらすごく曖昧だったので。後で制御構造も復習しとこう。 class SampleError < StandardError; end def raising(num) case num when 1 raise when 2 raise 'with message' when 3 raise SampleError when 4 raise SampleError, 'with message' when…

Java のクラスファイルみたいのほしい(インデントつき)

以前RHGに投稿した文書が、インデント抜けてしまっていたので、ちょっと修正して投稿。本文の前に用語の説明 ISEQ Ruby 1.9 から実装されている中間コード。Ruby ソースは一度この形式にコンパイルされてから実行される。Javaの .class ファイルに書かれてい…

Ruby で Java のクラスファイルみたいのほしい

という自分の意見をまとめてみたhttp://qwik.jp/rhg-strikes-back/84.html前提を書いておくと、前回のRHGでYuguiさんがこの話題を取り上げてくれて、なんでこの話が出たかって言うとたぶんのみの場でこういう意見をクダ巻いていたから(たぶん)。昔から検討…

(Ruby) Module の include で クラスメソッドを追加する方法

Rails や添付ライブラリ等で利用されているテクニック。何かのクラスにある性質を追加したい場合、モジュールの include を行うわけです(代表例:include Enumberable)。素直にモジュール定義をして、クラス定義側で include するだけだと、インスタンスメ…

MP3 ファイルのタグ付けを一気にやるrubyスクリプト

自分用のちょこっとスクリプトです。動作は無保証です。(2009/07/01 追記: ちょこっと改良版書きました)インディーズというか個人製作のmp3を落としていたりするとタグが適切についていない場合があるので作りました。対象はアルバム名とアーティスト名。個…

gonzui のインストールと Ruby ソースコード検索

ソースコード検索ツールである gonzui をインストールしようとして四苦八苦しました。というか、Ruby 対応させるのが大変だった…。以下、上記のやり方を含めたうえで gonzui を動かすための手順メモです。gonzui のメンテが止まっているようなので、必要ライ…

ruby1.8 と ruby1.9 の共存

たぶんこれでできている気がします(ぉ tar -xzf ruby-1.9.0-0.tar.gz cd ruby-1.9.0-0 ./configure --program-suffix=1.9 make sudo su make installruby1.9 --version #=> ruby 1.9.0 (2007-12-25 revision 14709) [i686-linux] gem1.9 --version #=> 1.0.…

gem と require_gem の挙動の違い(2)

ぐぐっていたら、gem の挙動についてささださんのページに詳しい説明がありましたhttp://www.atdot.net/~ko1/diary/200710.html#d15うーむ、はじめから見つかればよかったのだがw

gem と require_gem の挙動の違いについて

Ruby には RubyGems というライブラリマネージャが標準的に利用されています。RubyGemsは perl でいうCPANのような存在です。この機構によってライブラリのダウンロードからインストールまでがコマンド一発で済むという非常に便利な存在となっています。実際…