2006-08-01から1ヶ月間の記事一覧

Vimで編集中のコードを実行

げげげ。こんなんできんのか。 かなりすごい。 visualモードで実行したいコードを選択して :&#39;<,&#39;>w !ruby

Inflector#constantize

Inflector#constantizeがなにやってるかようやくわかった。 Rails名前規約に沿ってるかチェックして、渡した文字列のクラスを作って返すのね。 たとえば、ActionController::Pagination#paginateで引数の文字列をもとにしてモデルのクラスをつくってますね。…

classメソッド

なぜだかclassメソッドは親クラスを教えてくれるもんだと勘違いしてた。 基本的にオブジェクトにあなたはどのクラスからできましたか?って聞くメソッドなのね。 ユーザー定義のクラスに聞いたら、ユーザー定義のクラスはメタクラスのオブジェクトだからClas…

ActionController::Pagination#paginateとかで使われてますね。 多重代入かぁ。

こんなんもありですか

irb(main):035:0> class ABC ; if 1==1 then p "hello" end end "hello" => nilARでこんな感じで書いてalias_methodしてるとこがあった。

三項演算子がいっぱいでてくる

んですよ

Hash#update

ほえー。 これでARのメソッドに渡すoptionを書き換えてるんだなあ。

あった

action_controller.rb:72: include ActionController::Pagination

ActionController::Pagination#paginate

はうはう。ページャー。 ぜんぜんわからん。 Paginationをどこでincludeしてる? paginateの第一引数をいじってActiveRecordのクラス名(Itemsとか)にしてるけど、それにclassで聞いてみたら「Class」。なのにfind使えちゃうのかい?

acts_as_treeとacts_as_nested_set

再帰テーブルの表現に使うそうだ。。

特異メソッドの表記

http://www.loveruby.net/ja/rhg/book/minimum.htmlから。 特異メソッドはどんなときに使うか。まずJavaやC++で言うスタティックメソッドのようなものを定義するときだ。 つまりインスタンスを生成しなくても使えるメソッドである。 こういうメソッドはRuby…

Module#append_featuresとModule#included

append_featuresが先に呼ばれるようだ。

ARを読んでみる3

require &#39;rubygems&#39; require_gem &#39;activerecord&#39; ActiveRecord::Base.establish_connection( :adapter => &#39;mysql&#39;, :host => &#39;localhost&#39;, :username => &#39;ypuser_d&#39;, :password => &#39;ror&#39;, :database => &#3…

なるほど、引数にアスタリスクで受け取り側は配列として扱ったり、呼び出し側は配列を展開して渡したりできるわけか。

Module#append_featuresとModule#included

なんか前に書いたことはなんか的が外れてる気がするなあ。 うまくまとめられんけど。 クラスメソッドを単に追加するだけならModule#includedの中でClass.extendさせればいいんだよなあ。 Calculationsモジュールは(mixinしないで)クラスメソッドだけ追加し…

refe便利

便利だなー

super

refeで出てこない。。 ここには載ってるな。 つか、ふつうに考えろよ>自分

String.#strip

ストリップか。ストリップストリップ。 先頭と末尾の空白文字を全て取り除きます。 空白文字の定義は " &#92;t&#92;r&#92;n&#92;f&#92;v" です。

ARを読んでみる2

接続するデータベースはMySQL。 ActiveRecord::Base.connection クラスメソッドconnectionが定義されてるのは active_record/connection_adapters/abstract/connection_specification.rb クラスメソッド:connection if @active_connection_name && (conn = …

&#92;wは英数字にマッチ

__FILE__と__LINE__

Rubyが実行中のファイル名と行番号

Object.module_eval

refeによると・・ モジュールのコンテキストで文字列 expr を評価してその結果を返します。 fname、lineno が与えられた場合は、ファイル fname、 行番号 lineno にその文字列があるかのようにコンパイルされ、 スタックトレース表示などのファイル名/行番…

クラスメソッドでクラス変数を参照するとき、&#39;@@&#39;はつけなくてもいい

ようだ。書いてみたわかった。悩んでしまった。。

ARを読もうとする試み establish_connection

お約束のestablish_connectionメソッドあたりの感想。 require &#39;rubygems&#39; require_gem &#39;activerecord&#39; ActiveRecord::Base.establish_connection( :adapter => &#39;mysql&#39;, :host => &#39;localhost&#39;, :username => &#39;rails&#3…

ARの構造をみてみる続き

自分でActiveRecord::BaseクラスやValidationsモジュールの簡易版を書いて 動かして、なんとなく分かってきた気がする。 ActiveRecord::BaseクラスでValidationsなどのmoduleをextendすると ValidationsのインスタンスメソッドはBaseクラスのクラスメソッド…

ファンクション・ベース索引

ファンクション・ベース索引を使う際に設定しておかなければならない初期化パラメータのことを忘れていた。 ファンクション・ベース索引を使用するためには、以下の設定を行うか、 SQL中に明示的にHINT句を指定する必要があります。 初期化パラメータ「QUERY…

ARの定義 ちがうみたい

moduleをクラスメソッドにするにはextendすればよいみたいなので違うみたいだ。。

ARの定義

active_record.rb ActiveRecord::Base.class_eval include ... endactive_record.rbはこうなってます。 正直、ぱっと見何やってんのかわからなかった。 なぜ、下のような定義ではないのか。 class ActiveRecord::Base include ... end (そうぞう) クラスの…

$<

csh

「$ set line = $< 知らなかったなあ。

rails.vimを使いたい

こちらをみて、幸せになれそうなrails.vimを導入。 ・・・なんでダウンロードファイルってzipなんですかね。。 zipファイルってwgetできないんですけど。。やり方がなんかあるんだろうな。 とりあえず入れてみました。 あ、sql.txtとdbext.txtがmysqlタグで…