#ruby

よくつかうメソッドの nil? empty? blank? のまとめ。

nil? すべてのオブジェクトにある。nilのときにTrueを返す。 empty? 文字の長さが0のとき、配列が空のときにTrueを返す。

blank? railsの拡張。nil, “”, “ “, **, {} のいずれかでTrueを返す。

素晴らしいまとめですね!ootokageさんに感謝。

PHP使うときはempty(0)でtrueになりますが、上記のメソッドどれも0をチェックしないですね。。.zero?というのメソッドは一応あるようですが。

迷ったらここにいっぱいサンプルがあります。

0.nil? #=> false
0.zero? #= true
0.empty? #=> NoMethodError
0.blank? #=> false
0 == false #=> false

"".nil? #=> false
"".zero? #=> NoMethodError
"".empty? #=> true
"".blank? #=> true
"" == false #=> false

{}.nil? #=> false
{}.zero? #=> NoMethodError
{}.empty? #=> true
{}.blank? #=> true
{} == false #=> false

**.nil? #=> false
**.zero? #=> NoMethodError
**.empty? #=> true
**.blank? #=> true
** == false #=> false

nil.nil? #=> true
nil.zero? #=> NoMethodError
nil.empty? #=> NoMethodError
nil.blank? #=> true
nil == false #=> false

false.nil? #=> false
false.zero? #=> NoMethodError
false.empty? #=> NoMethodError
false.blank? #=> true
false == false #=> true

日本語

shared_context はその名前の通りコンテキスト (テストを行なうときの状況) を共有するための機能です。 shared_context を使うことで複数箇所にちらばる同一処理をまとめることができます。shared_context は shared_context が書かれたファイルを require することでも使えるようになるので別のスペックファイルでも使うことができます。

#git #git #conflict #merge

git pullとかgit mergeでコンフリクトとなったファイルを編集して、git add、git commitすればいいです。コミットメッセージも必要です。 git mergetoolでビジュアルのDiffソフトで差分を見れたり修正したりできます。  コミットログはこんな感じです。SVNとは違ってコミットログに残るのが何か慣れないです。

$ git log --oneline
63bc3d1 fixed merge conflict
bbfdd9e edit in master
3dcfb2f edit in work
9eedc58 made a
#mac #shortcut #tab

こんなシナリオを想像してみてください。Editorを終了しようとするときに「Don’t Save, Cancel, Save…」のダイアログが出るはずです、その時フォーカスはSaveにあり、Tabでは移動できないからしょうがなくマウスでクリックしてしまう。。これがTabで遷移して操作できたらいいなぁ〜を解決する方法です。

System Preferences -> Keyboard -> Full Keyboard AccessのAll controlsを有効に設定します!

Keyboard All controls

そこでの説明文の通り「In windows and dialogs, press Tab to move keyboard focus between All controls」、Tabであらゆるウィンドウやダイアログのキーボードフォーカスを移動することができます。

Control using tab focus

上記のようなダイアログが出るとしたら、Tab(Shift + Tab)で薄青色のフォーカスを移動して、スペースキーで該当の操作を実行できます。通常の青色はフォーカスの位置と関係なくreturnキーで操作を実行できます。

これでマウスなしでらくらく。

#rails #ruby #log

Overview

rails serverで起動する時に盛りだくさんの情報がログに出力されるので、別ファイルで自分がデバッグしたい情報だけをそこに出力する方法です。この方法でtail -f log/custom.logで監視できます

ソースコード

参考

http://robaldred.co.uk/2009/01/custom-log-files-for-your-ruby-on-rails-applications/ http://ianma.wordpress.com/2009/04/08/custom-logging-in-ruby-on-rails/

#checkbox #css #iphone #safari

Webkit-baseのブラウザ(Safari, Google Chrome)に適用します。

普通のcheckboxはiphoneのようなスマートフォンで見るときとても小さいです。checkboxはcssでheightやwidthを指定しても効かないため、ちょっとしたトリックが必要です。

実機ではこんなふうになります。2.0, 1.5, 1.0の3つのサンプルです。

#useragent #safari #safari

SafariのPreferences-> Advancedタブで”Show Develop menu in menu bar”をチェックします。

Safari-show-develop-menu-in-menu-bar

これでSafariのメニューバーのDevelopメニューでUser Agentを切り替えることができます。

Safari-change-useragent