quickrunを使って編集中のrspecを実行する

quickrun.vimを使ってvimで編集中のrspecを実行する方法のメモ


Vim-users.jp - Hack #172: RSpecをquickrunする (1/2):
Vim-users.jp - Hack #176: RSpecをquickrunする (2/2)

let g:quickrun_config = {}
" specファイル全体を実行する場合
"let g:quickrun_config['ruby.rspec'] = {'command': 'rspec'}
" カーソルがある行のspecを実行する場合
let g:quickrun_config['ruby.rspec'] = {'command': 'rspec', 'cmdopt': "-l {line('.')}"}
augroup RSpec
  autocmd!
  autocmd BufWinEnter,BufNewFile *_spec.rb set filetype=ruby.rspec
augroup END


出力内容をカラー表示したかったので「-c」オプションも追加してみたが、出力内容には変わらなかった。

RSpecで標準出力の内容をテストする

標準出力される内容をテストする内容を調べたところ、素晴らしいエントリーを見つけたので忘れないようにメモ


pochi's weblog

# -*- coding: utf-8 -*-

require "rspec"

class Target
  def some_method(msg)
    print msg
  end
end

# this method is written by wycats
def capture(stream)
  begin
    stream = stream.to_s
    eval "$#{stream} = StringIO.new"
    yield
    result = eval("$#{stream}").string
  ensure
    eval("$#{stream} = #{stream.upcase}")
  end
  result
end

describe "Object#capture" do
  before(:each) do
    @target = Target.new
  end

  it do
    capture(:stdout) {
      @target.some_method("test")
    }.should == "test"
  end
end


全く同じような内容の質問が Rails Best Practice にも載っていたのでそちらもメモ


Rails Best Practices | Test STDIN / STDOUT in Rspec

MySQLのプロンプトからエディタでSQLを編集する

今まで知らなかったのだけど、MySQLコマンドプロンプトから外部エディタでSQLを編集出来るみたい


mysqlコマンドをより便利に安全にするための小粒なTIPS集|サイバーエージェント 公式エンジニアブログ


MySQLコマンドラインツールのプロンプトで「edit」と入力すると、
環境変数EDITOR に設定されているエディタ(自分の場合はVim)が起動して、
SQLを入力して終了すると、そのSQLが実行される。


しかも、直前に実行したSQLが入力された状態でエディタが起動するみたいだから、
長いSQLを書いてて、実行後に何かエラーが発生して「ちょっと直したい」時には便利かも

クエリキャッシュを確認・削除する

MySQLでクエリキャッシュの確認をするには以下のコマンドを実行する

mysql> show status like 'Qcache%'
    -> ;
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 1        |
| Qcache_free_memory      | 16768408 |
| Qcache_hits             | 24       |
| Qcache_inserts          | 168      |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 25       |
| Qcache_queries_in_cache | 0        |
| Qcache_total_blocks     | 1        |
+-------------------------+----------+
8 rows in set (0.00 sec)

mysql>

削除する時は

mysql> reset query cache;

コマンドの実行時間を計測する

昨日の記事で、データのインポートに掛かる時間を計るために

/home/shizm% date
/home/shizm% コマンド
/home/shizm% date

と実行して、画面に表示される時間を目で見て処理時間を計算していた。


何ともかっこ悪い


最低でも

/home/shizm% date;コマンド;date

普通は

/home/shizm% time コマンド

と実行する。