スキップしてメイン コンテンツに移動

[ruby] rails runnerで引数を拾う

railsでサイトを構築した際に、cronに登録する処理をrails runnerで書いたのですが、optparseを使用して弊害が出たのでメモ。




引数を綺麗に拾ってくれるoptparse

rubyでコマンドラインツールを作る時に便利なoptparseですが、rails runnerでoptparseを使って引数を拾う場合「-e production」の部分もしっかり仕事してくれるのでエラーが発生しました。
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.3/lib/rails/commands/runner.rb:53:in `eval': invalid option: -e (OptionParser::InvalidOption)
    from (eval):1:in `<top (required)>'
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.3/lib/rails/commands/runner.rb:53:in `eval'
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.3/lib/rails/commands/runner.rb:53:in `<top (required)>'
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:64:in `require'
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:64:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

根本的に-eをスルーするやり方は分からないですが、-eもoptparseで定義してやればとりあえずは実行できる模様。
options = {}

OptionParser.new { |o|
  o.banner = "Usage: #{$0} [options]"
  o.on("-e [value]", "未設定") { |v| options[:e] = v }
  o.on("-f", "force") { |v| options[:force] = v }
  o.on("--list", "list") { |v| options[:list] = v }
}.parse!(ARGV.dup)

-e productionなんか拾ってどうすんだって話ですが、こういう事もあるんだということで。


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。