Pryで日本語リプサムとしてaozoraを使う


モチベーション

Pryで適当な日本語文字列が欲しいときがたまにある。そう、たまになんだけど、ある。
英語じゃない日本語なんだと。リプサムじゃない夏目漱石なんだと。

aozora

さてみなさん青空文庫はご存知かと思いますが、なんとなんと青空文庫にある文字列がリプサムとして使えるgemがあるんですよ!

おおおお!

夏目漱石は!?こころは!?

Aozora.kokoro #=> "私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない。これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。私はその人の記憶を呼び起すごとに、すぐ「"

ある!最高!素晴らしい。

Pryで使おう

シンプルに使って見る。

pry-session
2.2.3 (main)> require 'aozora'
=> true
2.2.3 (main)> Aozora.kokoro
=> "私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない。これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。私はその人の記憶 を呼び起すごとに、すぐ「"

毎回requireするのはめんどくさいので.pryrcに書く。

.pryrc
require 'aozora'
# いなかった時のハンドリングはよしなにやってください

これですぐに使える。でももはやAozoraと打つのさえめんどくさい。
なのでこうする。

.pryrc
require 'aozora'

Aozora.titles.each do |title|
  define_method(title) do |size = 100|
    Aozora.public_send(title, size)
  end
end

これでそれぞれのタイトルですぐに呼べる。

pry-session
2.2.3 (main)> kokoro
=> "私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない。これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。私はその人の記憶 を呼び起すごとに、すぐ「"
2.2.3 (main)> kokoro 10
=> "私はその人を常に先生"

いい感じ!メソッド名は...名前的に滅多に被らないと思うし多分大丈夫!

まとめ

  • pryでいい感じの日本語文字列が欲しくなったときにはaozora!
  • メソッド定義しちゃうとすぐに使えて良いよ