トップ 最新 追記
RSS feed

ただのにっき


2013-11-28(木) [長年日記]

対話型のコンソールアプリをpryの上に構築したらだいぶ楽できた

ゆえあってちょっとした対話型のアプリ、それもWebじゃなくてLinuxコンソールで動くものを作る必要が出てきた。入力をパースしたりするのも面倒だしなーと思い、ためしにpry上のDSLみたいな感じで作ってみたらなかなかいいものが簡単にできた。うん、これは楽でいいなぁ。今後も使おう。

こんな感じのsample.rbを書いて(2013-12-03追記: pryの仕様に合わせて一部リライト):

require 'pry'

# business logic
module Sample
   def self.hello(name)
      "Hello #{name}!"
   end
end

# helloというコマンドを定義する
Pry.commands.block_command 'hello' do |*args|
   args.map{|name| output.puts Sample.hello(name)}
end

# pry標準のhelpはあえて潰してよけいなものを見せない
Pry.commands.block_command 'help' do
   output.puts "hello [name...] : say hello"
end

# プロンプトをいじると専用アプリっぽさが増す
Pry.prompt = [
   proc{"sample> "},
   proc{"sample* "},
]

puts "type 'help' to help. type 'exit' to terminate.\n\n"
pry

実行する:

$ ruby sample.rb
type 'help' for help. type 'exit' for terminate.

sample> help
hello [name...] : say hello
sample> hello hoge
Hello hoge!
sample> hello foo "bar baz"
Hello foo!
Hello bar baz!
sample> exit
$

もちろんgemにして依存関係も解決するようにしておけば、導入も簡単になってさらに良い。

Tags: ruby pry

2013-11-26(火) [長年日記]

アフタヌーンの購読を電子版に切り替えた

[写真]Nexus7(2012)で開いた月刊アフタヌーンKindle版

もうすっかり雑誌の定期購読からは遠ざかっていて、なにか欲しい記事が載ってる号を必要に応じて買うくらい。それも年に1、2回だ。例外はほぼ惰性で買い続けている月刊アフタヌーンで、「これだけは連載で読みたい」みたいな強い動機がないままに何年も買い続けている。自分でも不思議。

そんなアフタヌーンが紙と同時発売で電子化されるという。基本的にDRMのかかった本はクソの役にも立たないので買わない方針なのだけど、紙の雑誌は読み終えたら資源ごみ出すくらいで役に立たない度としてはどっこいどっこいだ。じゃあ試しに買ってみてもいいかもね。

あとはどの端末で読むかなのだけど、手持ちのKindle4は日本のマーケットには未対応なのでNexus7(2012)しか選択肢はない。で、サンプルをダウンロードしてみたら冒頭のカラーページしか入ってなくて肝心のマンガがどう見えるのかわからないというありさま。ツメが甘いよ、講談社。

ま、大人なので気にせず買ってみるわけです。柱の細かい文字は厳しいけど、吹き出しの中身はちゃんと読めるし、もちろん拡大もできるから問題ないことがわかった。今後は電子版で行ってみよう。蟲師も始まったし。あとは発売と同時に配信してくれるようになれば楽なんだけどなぁ(そしてずるずると惰性で購読し続けるという罠を希望します)。

最大の問題は、最近Nexus7のUSB端子まわりが不調で(表示上では充電状態にあるにもかかわらず)充電されてない、なんてことが頻繁にあることなんだけど。修理はASUSに直送しなきゃいけないらしいので面倒だから騙し騙し使ってるけど、いつか困ったことになるよなー、これ。

アフタヌーン 2014年1月号 [2013年11月25日発売] [雑誌] (アフタヌーンコミックス)
冬目ケイ
講談社
¥713

↑をみてみたらさっそく「高い」という評価がついてて笑ってしまった。DRMがかかってなければ紙と同じ値段でもいいけど、そうでないなら紙より不自由なものに同価格設定はないよな。おれは資源ごみに出すために電話帳サイズの雑誌を束ねて運び出す手間賃だと思ってるからかまわないけど。

Tags: ebook

2013-11-25(月) [長年日記]

RubyのCVE-2013-4164対応

(もう3日も前の話だが)rubyに新しい脆弱性があると公表されたので、使っているrubyをアップデートしなくてはならない(1.9.32.0.0ともに)。

いつものようにrbenv installでローカル環境のアップデートはさくっと済んだのだけど、最近はHerokuでいろんなものを動かしているのでそれもアップデートする必要がある。たしか以前は勝手にアップデートしてくれた記憶があるのだけど、最近は自分でアップデートのトリガーを引かないといけないそうだ(まぁそりゃそうだよな)。

手順はメールが来ていて:

$ git commit --allow-empty -m "upgrade ruby version"
$ git push heroku master

と、ようするに空のcommitを作ってpushすればそれでOK、と。でもこれをすべてのアプリについてやらんといけないわけだ……とほほ。デプロイ用のブランチを切っては上記作業を黙々と繰り返してなんとか完了……と言いたいところだけど、なんといまだにBambooで動いてるサービスを発見してしまったりして。これは後日なんとかしなくては。

Tags: ruby security

トップ 最新 追記
RSS feed