maeshimaの日記

メモ書きです

TOPLEVEL_BINDING

トップレベルのスコープの束縛が入っている組み込み定数。

irbのネスト

irbの中でirbを使う(ネストする)ことができる。このとき、コンテキストは引数に渡したオブジェクトのコンテキストに変わる。 ruby-1.9.2-p180 :001 > s = "hoge" => "hoge" ruby-1.9.2-p180 :002 > irb s ruby-1.9.2-p180 :002 > reverse => "egoh"

複数行の文字列

普通にダブルクォートで複数行の文字列を扱うことが出来る。普通複数行にまたがる文字列を使いたいときはヒアドキュメントを使う。 puts "hoge fuga" 実行結果 hoge fuga

rvm wrapper

rvm wrapperは指定した ruby と gemset でrubyを実行できるコマンドを生成する。passengerとかで使われてる。 rvm wrapper 1.9.2@hoge fuga とすると、1.9.2 で gemset hoge の状態で実行できるコマンドが生成される ./rvm/bin/fuga_ruby ./rvm/bin/fuga_irb…

javascript_include_tagは複数の引数をとれる

一つだけかと思ってた>< javascript_include_tag "common.javascript", "/elsewhere/cools" # => <script type="text/javascript" src="/javascripts/common.javascript"></script> <script type="text/javascript" src="/elsewhere/cools.js"></script>

load

loadの第二引数にtrueを指定すると、第一引数で指定したファイルの実行時に無名モジュールを作成して定数の衝突を避ける。 requireの違い require は同じファイルは一度だけしかロードしませんが、 load は無条件にロードします。また、require は拡張子 .rb…

キーバインドを設定する関数 define-key と global-set-key の違い

define-key global-map global-set-key global-set-keyは単にdefind-keyをラップしているとのこと。この二つに大きな差はないらしい。何がグローバルセットキー`の違いは`と`を定義キーのグローバルマップは、`Emacsで

sudo-ext.elがうまく動かない件

3ヶ月前にsudo-ext.elがうまくいかない><というエントリを書いたら、id:rubikitch さん、id:handlename さんからアドバイスをいただきました。ありがとうございます!!!Macでsudo-ext.elを使う場合 - handlename::blog sudo-ext.elがうまく動作しない場…

ActionView::Helpers::TextHelper

Railsはかゆいところに手が届くなー。メモ truncate(text, *args) textが:lengthで指定した文字数より大きかった場合に、:lengthで指定した文字になるまで切り詰めて、:omission(デフォルトは"...")を末尾に付ける。これどうせバイト単位で日本語だとうまく…

はじめる!Cucumber第7〜9章

シナリオアウトライン 検証シナリオのおおよその流れ(アウトライン)自体は同じまま、複数のデータの組み合わせをテストするための機能。 "シナリオ"を"シナリオアウトライン"に変更する "bob"とか"alice"のようなデータ類を""のように<>を使った文字列に変更…

ログ削除のrakeコマンド

log配下の*.logのサイズを0にするrakeコマンド rake log:clear

RailsCasts - Testing JavaScript with Jasmine

Railscasts - Testing JavaScript with Jasmineを見て。jsのユニットテスト環境 jasmineについて。基本的にRspecライクな書き方でjavascriptのユニットテストを実行することができる。すごく使えそう!!! rake jasmine でサーバ立ち上げてアクセスするとテ…

はじめる!Cucumber第6章

基礎は終わったのかも。主にシナリオをリファクタリングするテクニックについて。 背景 背景を使うと、各シナリオで共通の箇所を一箇所にまとめることに出来る。これってフィーチャ内の全てのシナリオで共通なのかな?→共通のようだ 複数のステップを呼び出…

seeds.rbについて雑感

seeds.rbはmigrationにデータを変更するコードを書くのをやめよう!という思想が入ってるらしいけど、データの初期化はともかく、運用途中でデータを変更するのは結構めんどそう。マスタデータ変更系でもseeds.rb使った方が良いんだろうかRails 2.3.4で追加…

elispの関数

やさしいEmacs-Lisp講座の第三章に出てくる関数をざっとまとめたメモ。 移動境界の検査 bobp ポイントがバッファ先頭にあればt,なければnilを返す eobp ポイントがバッファ末尾にあればt,なければnilを返す bolp ポイントが行頭にあればt,なければnilを返す …

auto_link

Rails3.0.6ではauto_linkの脆弱性が修正されたらしい。auto_linkは文字列中にあるURLやメールアドレスにaタグ付けて返すメソッド。あんまり使わないから忘れがちなんだけどこの際覚えよう。 post_body = "Welcome to my new blog at http://www.myblog.com/.…

空文字をカラムに代入したときの挙動

textやstringのカラムに空文字代入して保存したときにnilになるのか空文字になるのかよくわかってなかった。空文字代入のときは空文字が保存されるみたいね。integerや datetime は空文字代入したら nil になる(当たり前だけど)。

Enumerableその1

メモ Enumerable#cycle object.to_a.cycle と同じ Enumerable#drop オブジェクトの最初の n 個を捨てた配列を返す。非破壊的。Enumerable#firstと対をなすメソッド ary = [1, 2, 3] ary.drop(2) #=> [3] ary #=> [1, 2, 3] Enumerable#drop_while ブロック内…

BBモバイルポイントに接続

ずーっとつながらなくて諦めていたのだけれど、今日ローカルのDNSを使うように設定(127.0.0.1)していたのを削除してみたらつながった。 追記 firefoxだと認証ページへ遷移しない。chromeだといけた

ASCIIcasts - Decent Exposure

ASCIIcasts - “Episode 259 - Decent Exposure”を読んで。decent_exposureという、コントローラでインスタンス変数に値をセットする部分を簡単にするgemについての記事。 def show @article = Article.find(params[:id]) end のような、コントローラ中に書く…

セグメンテーション違反

アクセスが許可されていないメモリ上の位置、もしくは許可されていない方法でメモリ上の位置にアクセスしようとするときに起こる 参考 セグメンテーション違反 - Wikipedia

Redisの特徴

キーバリューストア LIST, Set(重複のない集合), SORTED SET(ソート済みの集合), HASH(連想配列)が扱える. 基本はインメモリだけどディスクでも使える。ただしいまのところディスク使うと不安定 参考 ニコニコ生放送に見る Redis 活用ノウハウ:第1回 インメ…

bundle install --local

rubygems.orgに接続せずに、vendor/cacheを使うオプション

正規表現の後方参照

なんかこんがらがるのでメモ 正規表現中で参照したい場合は\1,\2,\3... 正規表現後で参照したい場合は$1, $2, $3...

Paperclipのstyleの記述方法

resizeだけ指定したいときは文字列だけでいい has_attached_file :avatar, :style => {:large => "640x640>"} 拡張子を指定しないといけないときは配列 has_attached_file :avatar, :style => {:large => ["640x640>", "jpg"]} ハッシュでもいい。ハッシュだ…

ImageMagickの引数

メモ options size 画像の幅と高さ pseudo-image formats canvas 前はxcで指定していたらしい?sizeやdepthで指定した画像を作る。canvas:red や canvas:#FF0000といった形で色を指定する。指定しないとwhiteになる。sizeを指定しないと1ピクセルの画像にな…

jQuery.fn.end(), jQuery.fn.map()

忘れないためにメモ jQuery.fn.map() - maeshimaの日記 jQuery.fn.end() - maeshimaの日記 jQuery.extend - maeshimaの日記

git describe --contains

git

git describe --contains 渡されたコミットを含むタグを使ってコミットに名前を付けるコマンド describe --contains を何のために使うのか、も知っておくと良いですね。「あの機能が入ったこのコミットは、どのリリースに入っているのかな」つまり「どのリリ…

PaperClip::ClassMethods#has_attached_file

ドキュメントの意訳。has_attached_fileはクラスにファイル用の属性を追加する。通常はどこかに置いてあるファイルか、もしくはユーザがアップロードしたファイル。その属性はPaperclip::Attachementオブジェクトを返す。これによってファイルをモデルの普通…

datetime形式の入力を厳密にチェックしたい場合

datetime形式のパラメータは params[:hoge][:date(1i)], params[:hoge][:date(2i)], params[:hoge][:date(3i)] のように分かれてくる。このパラメータをmass assignmentでdatetime形式のカラムの属性に代入すると、railsが気を利かせて解釈してくれてDateTim…