なかぱみゅレトロ

ソーシャルメディアでの記録を振り返ることは、なかなか良いと感じる今日このごろ。

明日からこいつに頑張ってもらおうと思います。

1年前の@whitech0c0の発言をするbotです。
https://github.com/mirakui/retrobot

みらくいさんありがとうございますm(__)m

1年前のじゃなくても良いけど、定期的にfacebook, hatena のデータも簡単に振り返るツール作りたい。作る。


追記1
サーバ止まって動いてなかった(´・ω・`)


追記2
サーバ起動した(╹◡╹)

動いてる。よし。

RSpecのテストコード例

FizzBuzzの例

require 'rubygems'
require 'rspec'
  
# ファイルを読み込む(定数の初期化)
require './fizzbuzz'

describe FizzBuzz do
   # テストする対象を明示する
  subject  { FizzBuzz.new }

   # context でテストケースの状況を指定する
  context "与えられた数字が3の倍数でも5の倍数でもないとき" do
     # itメソッドが1つのテストケースになる
    it "与えられた数字を返すこと" do
      subject.say(1).should == 1
    end
  end
  context "与えられた数字が3の倍数の時" do
    it { subject.say(3).should == 'Fizz' }
  end
  context "与えられた数字が5の倍数の時" do
    it { subject.say(5).should == 'Buzz' }
  end
  context "与えられた数字が3かつ5の倍数の時" do
    it { subject.say(15).should == 'FizzBuzz' }
  end
end

f:id:whitech0c0late:20130727183926p:plain

rspec 実行時にオプションで色付け(-c)したり、結果を仕様的に出力(-fs)できる。

追記
RSpecのshouldはもう古い!新しい記法expectを使おう! ということなので

require 'rubygems'
require 'rspec'

# ファイルを読み込む(定数の初期化)
require './fizzbuzz'

#FizzBuzz 与えられた数字が15のとき
describe FizzBuzz do
  # テストする対象を明示する
  subject  { FizzBuzz.new }
  # context でテストケースの状況を指定する
  context "与えられた数字が3の倍数でも5の倍数でもないとき" do
    # itメソッドが1つのテストケースになる
    it "与えられた数字を返すこと" do
      expect(subject.say(1)).to eq 1
    end 
  end 
  context "与えられた数字が3の倍数の時" do
    it { expect(subject.say(3)).to eq 'Fizz' }
  end 
  context "9の時" do
    it { expect(subject.say(9)).to eq 'Fizz' }
  end 
  context "与えられた数字が5の倍数の時" do
    it { expect(subject.say(5)).to eq 'Buzz' }
  end 
  context "与えられた数字が3かつ15の倍数の時" do
    it { expect(subject.say(15)).to eq 'FizzBuzz' }
  end 
end

こんな感じらしいです。
「9の時」ってのは無視してくださいはい。

Web開発の基礎徹底攻略 (WEB+DB PRESS plus)

Web開発の基礎徹底攻略 (WEB+DB PRESS plus)

Vimでコピペするとき

自動にインデントとかコメントアウトとかで やヴぁい。

  1. :a!
  2. ペースト
  3. esc

これでおk.

1のときに :i! だとインサートモードでペーストできる。

とりあえず、基本コマンドはほどほど慣れてきているので、
そろそろプラグインとか導入してみよう(Neobundle)
vim-surroundちょっとやってみたけど、とても良さそう。

おすすめプラグイン教えてほしいですはい。

http://qiita.com/quwa/items/019250dbca167985fe32

T or F

まず、rubyだと

「偽」になるのは nil と false だけ。

(PHPとかJSだと "" , " ", 0 , "0", null とかどれが「偽」扱いになるのかすぐ忘れる。)


判定メソッドのメモ(抜粋コピペ)。

nil?

nilとfalseを判別したい場合などに、==演算子を使わずに書ける。

empty?

「入れ物」は存在するのが前提でString や Array の中身が空の場合にtrue. 入れ物がない場合は NoMethodError

blank? (ActiveSupport)

nil? or empty? ※半角スペースだけの文字列はtrueを返す

present? (ActiveSupport)

!blank?

presence (ActiveSupport)

present? が true の場合にレシーバ自身を返す

# こういうのが…
name = params[:name].present? ? params[:name] : '名無し'
 
# presenceを使うとこうなるよ!!
name = params[:name].presence || '名無し'

これ便利!

try (ActiveSupport)

レシーバが nil でなければ指定したメソッドを呼び出す

# こういうのが…
user ? user.name : '名無し'
 
# tryメソッドを使うとこうなるよ!!
user.try(:name) || '名無し'

これも便利!!

tryは Object#sendメソッドの alias で、NilClass#try が定義されているらしいです。

class NilClass
  def try(*args)
    nil
  end
end

これだけなのにすごい。 ActiveSupportとかActiveRecordとかのコードみると勉強になりますね。 スッキリかけるし、エラーハンドリングの時とか特に意識しようと思います。

http://qiita.com/somewhatgood@github/items/b74107480ee3821784e6

http://techracho.bpsinc.jp/baba/2011_11_26/4724

http://www.techscore.com/blog/2012/12/25/activesupport-%E3%81%AE%E4%BE%BF%E5%88%A9%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-try-blank-present-presence/

http://blog.livedoor.jp/sasata299/archives/51718602.html

この方々の良くまとめられていてとても参考になりましたm(__)m