maeshimaの日記

メモ書きです

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, …

ASCIIcasts - CoffeeScript Basics

ASCIIcasts - “Episode 267 - CoffeeScript Basics”気になったとこだけメモ this は @ に置換 三項演算子は if then else に置換が可能 coffee script 中のエラーもコンソールに出力してくれる

retry

retry 使ったことなかったけど、begin ~ rescue でとても使えそう!retry回数制限つきrescueの書き方のメモ - Hello, world! - s21g retry は、ループ以外に後述の rescue 節でも使えます。この場 合は、begin 式を始めからもう一度実行します。retry を使う…

cookieのpathは基本使わない

cookieのpathを利用してURL上のパス毎にcookieを分けるやりかたはセキュリティ的には穴がたくさんある。例えばいずれかのパスで frameset を仕込んでそこから parent.subframe.document.cookie などとすると、別のpathのcookieを読めてしまう。らしい。高木…

RDBMSでNULLは使うな

3値論理を見て。 not in や not exist でNULLを含むレコードを取り扱うと結果が直感とは反したものになる。めちゃめちゃややこしいので、この場合の挙動を覚えるよりも、おとなしくNULLを使わない習慣を付ける方が賢明だと思った。

cloneとdup

普通はdupでいいんじゃないかと思った オブジェクトのコピーについて - おもしろWEBサービス開発日記

メタプログラミングRubyのイディオム

メタプログラミングRubyでは、説明しやすくするために、各テクニックにそれぞれ名前を付けている。最初覚えるのは面倒だけど、覚えるとこれは必要な儀式だったんだなと思える。というわけでメモ。 動的ディスパッチ sendを使って動的にメソッドを利用するこ…

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

あるメソッドが定義されているかどうか調べる hoge.methods.grep /re/ のように、Enumerable#grep を使うと正規表現で調べられるので便利 オープンクラス 標準クラスにメソッド追加すると、既存のメソッドとかち合う危険性があるので、基本的にはよっぽどの…

Rails 3.1 の mass assignment

attr_accessible に :as オプションが付けられるようになったらしい。 class Project < ActiveRecord::Base attr_accessible :name, :as => :admin end のようにすると、 @project.update_attributes(params[:project], :as => :admin) のように、変更側で同…

モデル内で自分のテーブル名を返すメソッド

ActiveRecord::Base#table_name

windowsとlinuxのファイルシステム比較

Geekなぺーじ : Linuxにデフラグが無い理由

RSpecの新しい仕様

最近の記法は結構知らないので復習したい。 最近話題のRSpecのプレゼンの中で知らなかったこと - takihiroの日記

3.1.0.beta1の action_dispatch/url_for.rb のコメントの意訳

ActionDispatch::Routing モデルとかでURLを生成したい場合は、ActionController::UrlForを見るといい。 知ってると思うけど ActionController::Base#url_for はリンクを生成する。link_to や url_for は水面下で ActionController::UrlFor、特に ActionCont…

gem which

インストールしているgemのパスを表示するコマンド 例 gem which rails 参考 requireされいているRubyスクリプトを見つけて編集する方法 - Hello, world! - s21g

html2hamlでerbファイルをhamlに変換するワンライナ

ruby -e 'Dir.glob("**/*.erb").each {|file| system %Q! html2haml #{file} #{file.sub("erb", "haml")}!}'

eval(statements, binding, file, line)

第二引数で束縛を指定できる 第三引数と第四引数で、エラー時のスタックトレースで表示するファイルと行数を指定できる