kawasaki.rb #22 に参加してきました #kwskrb

2015/3/25に開催されたkawasaki.rb #22に参加してきました。

Doorkeeper

Kawasaki.rb #022 - Kawasaki.rb | Doorkeeper

Togetter

togetter.com

パーフェクトRuby読書会

以降のコードはRuby 2.2.0で試しています。

3-5-12 ::を使ったメソッド呼び出し

Time::now

ドットでなく::でメソッドを呼ぶことができます。ちなみにrubocopに怒られます。

3-5-13 メソッド定義の取り消し

undefを用いることでメソッドの定義を取り消すことができます。

def greet
  puts 'hora'
end

greet # => "hora"

undef greet

greet # => undefined local variable or method `greet'

ところでこれっていつ使うんだろうという話題になり、例えばRails上でデザイナと協業する際、View側で代入メソッドを呼ばせたくない時などにundefして置く、という話を聞きました。

3-5-14 メソッドに別名をつける

aliasを用いることでメソッドに別名を付けることができます。

alias greet puts
greet "hi" #=> "hi"

また、元のメソッドをundefしても別名としたメソッドは影響を受けません。

undef puts
greet "ho" #=> "ho"

ここでは以下のコードが話題となりました。

def foo
  raise
end

alias bar foo

bar #=> `foo': unhandled exception

と、呼び出しているのはbarですが例外はfooで発生したというメッセージになっています。

さらに、

def foo
  raise
end

alias bar foo

undef foo # fooをundefしてみる

bar #=> `foo': unhandled exception

と、fooはundefしているにも関わらずfooの名前が表示されるという現象があります。

3-6-1 文字列の入出力

puts、print、sprintfなどの説明がありました。sprintfは、そのショートハンドであるString#%の方がよく使うという話をしました。

sprintf("%04d", 1) #=> "0001"
"%04d" % 1         #=> "0001"

String#%のパラメータは配列でも渡せます。

"%03dパーセント中の%02dパーセント" % [100, 50] #=> "100パーセント中の50パーセント"

なんとハッシュでも渡せるとのことでした。

"あなたは%<num>08d人目のお客様です" %  {num: 10} #=> "あなたは00000010人目のお客様です"

なんか「名前付きキャプチャ」っぽい!ということで、名前付きキャプチャの話題となりました。

/(?<num>\d+)/ =~ "10人目"
num # => "10"

個人的にはこの機能を知らなくて、いきなり変数にバインドされるというのはいくらRubyでも衝撃的でした。 ただ、

m = /(?<num>\d+)/.match("10人目")
m[:num] #=> "10"

とすればシンボルでアクセスできるので安全に取り扱うことができます。

今回の読書会はここまででした。今回はなんとも濃い内容でした。

セッション

受託開発でAnsibleを導入した話 @Peranikov

www.slideshare.net

会社でAnsibleを試して少し知見が溜まったのでしゃべりました。 触ったと言っても1日ちょっと試しただけですが、それでもきちんと動くものにはなりました。これもAnsibleのシンプルさのおかげだと思っています。

今回のスライドではtaskについてしか触れていませんが、実際にはvars(変数定義)やtemplate(テンプレートエンジンでconfigファイルを動的に変更)などの機能もあるので実運用にはかなうんじゃないかなと思います。

なにより、PostgresモジュールがAnsible自体に組み込まれているのは個人的には凄く大きいです。(外部のPlaybookに依存したりしなくて済む)

Gemの作り方 ~BacklogのAPIを利用して~ @kon_yu さん

speakerdeck.com

Gemまだ作ったことないです... RubyGemsの作り方から公開とハマりどころまで丁寧に解説されているので、実際作ることがあったら参考にしたいです。

おわりに

kawaski.rbのみなさま、NTT-AT様ありがとうございました。次回もまたよろしくおねがいします。

ちなみに函館グルメはラッキーピエロハセガワストアのやきとり弁当、カール・レイモンのソーセージがお勧めです。