なかぱみゅレトロ
ソーシャルメディアでの記録を振り返ることは、なかなか良いと感じる今日このごろ。
明日からこいつに頑張ってもらおうと思います。
明日から頑張ってつぶやきます。
— なかぱみゅレトロ (@white_retro) August 22, 2013
1年前の@whitech0c0の発言をするbotです。
https://github.com/mirakui/retrobot
みらくいさんありがとうございますm(__)m
1年前のじゃなくても良いけど、定期的にfacebook, hatena のデータも簡単に振り返るツール作りたい。作る。
追記1
サーバ止まって動いてなかった(´・ω・`)
追記2
サーバ起動した(╹◡╹)
この時間帯まいど眠い。
— なかぱみゅレトロ (@white_retro) September 18, 2013
動いてる。よし。
多重代入使って変数の交換
a = "a" b = "b" a, b = b, a a # => "b" b # => "a"
これで、tmpとかの変数いらない。
ちな
数字だったら、こんなやり方もある
a = a + b b = a - b a = a - b
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
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+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2013/07/23
- メディア: 大型本
- この商品を含むブログ (7件) を見る
Vimでコピペするとき
自動にインデントとかコメントアウトとかで やヴぁい。
- :a!
- ペースト
- esc
これでおk.
1のときに :i! だとインサートモードでペーストできる。
とりあえず、基本コマンドはほどほど慣れてきているので、
そろそろプラグインとか導入してみよう(Neobundle)
vim-surroundちょっとやってみたけど、とても良さそう。
おすすめプラグイン教えてほしいですはい。
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
この方々の良くまとめられていてとても参考になりましたm(__)m