maeshimaの日記

メモ書きです

2011-06-01から1ヶ月間の記事一覧

メタプログラミングRuby 4章

カレントクラス カレントクラスはカレントオブジェクト(self)とは別。Rubyのプログラムは常にカレントオブジェクトとカレントクラスを持っている。メソッドを定義したときに、そのメソッドはカレントクラスのインスタンスメソッドになる。 class MyClass def…

Rails 3.1 で annotate_models

Rails 3.1 だと annotate_models がうまくうごかないっぽい -> annotate のhead なら大丈夫だったctran/annotate_models - GitHub

groonga

db

groongaのMySQLストレージエンジンあり rubyプラグイン(rroonga)あり railsで使えるプラグイン(activegroonga)あり Try ActiveGroonga!

sunspotで検索する

Working with search - GitHubの意訳。 検索ことはじめ Sunspot.search メソッドで検索できる。引数は検索で使う一つ以上のクラス(モデル)。オプションでブロックに検索条件を書ける。一番簡単な例としては、渡したクラスのインスタンス全部を検索する物があ…

sunspot-rails-tester

justinko/sunspot-rails-tester - GitHubのREADMEの意訳。この gem は特定の箇所のテストで solr をオンにするためのもの。solr を使用せず、sunspot を stub 化することで不必要なインデックス構築を避けている。RSpec2 の spec_helper.rb の例。 $original…

sunspot_rails

sunspot_rails/README.rdoc at master from outoftime/sunspot - GitHubの意訳。Sunspot::Rails は Sunspot の Solr 検索を Rails に統合するためのプラグイン。下記のような機能を提供する。 config/sunspot.yml で sunspot の設定が出来る ActiveRecord を…

sunspot(solr)の設定方法

Advanced Fulltext Search Configuration - GitHubの意訳。デフォルトの設定だと、スペースか他の区切り文字で区切られている前提。区切りにはStandardTokenizerというのを使ってる。大文字小文字を区別させないようにするためにはLowerCaseFilterというのを…

sunspotのチュートリアル意訳

インストール solrのインストールはmacなら brew install solr でOK。Rails側はまずGemfileに gem 'sunspot_rails' を書いて bundle install。それから rails g sunspot_rails:install で config/sunspot.yml を作成。 solr のインスタンスを起動 下記の rak…

thinking_sphinx の設定

基本 config/sphinx.yml に設定を書く。下記のように database.yml っぽく environment 毎に設定を分けることが出来る。 development: port: 9312 test: port: 9312 production: port: 9312 rake ts:conf などとすると、このファイルを元に設定ファイル(conf…

ASCIIcasts - Template Inheritance

ASCIIcasts - “Episode 269 - Template Inheritance”を見て。以前、Edge Rails.info :: Template Inheritanceを見て、3.1 から 「デフォルトのビューの位置にファイルがない場合は、親のコントローラのビューを見る」という仕様が追加されるのは知ってた。で…

3.1のストリーミング機能の話

Automatic Flushing: The Rails 3.1 Plan « Katz Got Your Tongue?を読んで。3.1のストリーミング機能の実装が大体どんな感じか、非常に詳しく書かれていてためになった。Fiberを使っている手前、1.9でしか使えないのね。

thinking_sphinx の rake コマンドまとめ

インデックスとコンフィグの作成 下記のうちのどれでもOK。 rake thinking_sphinx:index rake ts:index rake ts:in デフォルトでは、インデックスの作成に加えてコンフィグファイルも生成される。インデックスの作成だけしたいときには rake thinking_sphinx…

railsがTimeに追加してる便利メソッド

ActiveSupport::TimeWithZoneに追加されてる。 today? past? future? between?

thinking_sphinx 利用時のテスト方法

transactional fixtures をオフにしないと search メソッドは値を返さないそうな。 cucumber 1.3.2 から、thinking_sphinx は cucumber と連携しやすくするためのヘルパーメソッドを用意した。features/support/env.rb に下記の二行を足す。 require 'cucumb…

attributeの変更

changed? はともかく _was とかすっかり忘れてた><attributeの変更確認 - うんたらかんたら日記

メタプログラミングRuby 第3章

ブロックは定義された場所の束縛を保持する。 束縛とはローカル変数、インスタンス変数、selfなどの情報のこと スコープゲートは module class def class を Class.new {} にしたり、def を define_method {} にしたりすることでスコープをフラットにするこ…

今週のrailscasts - Authentication in Rails 3.1

#270 Authentication in Rails 3.1 - RailsCastsを見て。 Railsでのベーシック認証 secure_password force_ssl の三つについてだった。ベーシック認証以外は知ってたので省略。 ベーシック認証 3.1 から controller に下記のように書くだけでベーシック認証…

Capybaraをコンソールで試す

こんな感じで試せる>|ruby|| session = Capybara::Session.new(:rack_test, YourApp::Application) session.visit "/" session.fill_in "login", with: "login" |

メタプログラミングRuby 第2章

似たようなメソッド群をどのようにリファクタリングするかという課題に対して、動的ディスパッチ&動的メソッドと method_missing の二つの手段で解決をはかる話。 ゴーストメソッド作成時の Object#respond_to? と Object#methods method_missing でゴース…

ATOKオン時に半角スペース

shift + space で半角スペースにできる。もしくは設定をいじると常に半角スペースを入力できる

マスクとしてグループ化

RedLine Magazine : Fireworks コレ、5分で作ります。その1を試してみて。Fireworksレッスンブックで試した機能である「マスクとしてグループ化」を完全に忘れていた。一年以上fireworks触ってなかったし仕方ないか。

homeとhouse

home うち house 一軒家 みたいな感じかな homeとhouseの違い - maeshimaの日記

今週のASCIIcasts - SASS Basics

ASCIIcasts - “Episode 268 - SASS Basics”を見て。 SCSSの仕様 ネストが出来る a:hover みたいなやつは &:hover のように & にするとネストできる $main-color: #FFFFFF; みたいに $ 使うと変数として使える 関数が用意されている。例えば darken(#FFFFFF, …