scrAPI をローカルでインストール

by tanabe on October 25, 2006

自分用のメモ。

でいけるはず。

  

コンソールアプリケーション用 Ruby フレームワーク SimpleConsole を使ってみた

by tanabe on October 24, 2006

Ruby の用途が、

  • 業務アプリをばりばり開発!

とかではなくて、

  • 仕事をするなかでちょっと困ったり面倒だったりするときのツール

という位置づけな自分にとって、書いているコードはいくつかオプションを指定してコンソールで走らせてやれば終了するようなものがほとんどを占めている。

そうすると、かなり毎度同じような内容を書いていたりして、DRY じゃないなー(けど、自分しか使わないようなのが多いし、ま、いっかー)と感じていた。

そうこうするところに、SimpleConsole というコンソールアプリ用のフレームワークの紹介を読み、「これで解決するんでない?」と期待を持ったので試してみることにした。

SimpleConsole って何?

紹介をざっと読む限りだと、SimpleConsole は、

  • オプションの解析とバリデーションを自動でやってくれる
  • Controller と View を簡単に作成
  • Controller の @variable が View の @variable として使える(Rails のように)
  • Rails ライクなフィルターが使える
  • コマンドとして指定したアクションと Controller のメソッドのルーティングが自動で対応。(Rails の URI が action を呼び出すように)

のあたりが売りのフレームワークらしい。

optparse で定型のおまじないを書いてオプションを受けなくて良い辺りはうれしいのかも。

DSL 的なメソッドの記法を見ても、かなり Rails を意識した作りに見える。(が、この辺は第一印象としては Rails よりも洗練されていない印象。名前とか書き方の癖とか。)



公式サイト

http://simpleconsole.rubyforge.org/

緑のコードが読みにくい。(たぶんうちの環境の問題。)

まずはインストール

gem install simpleconsole --remote

tutorial を試してみる

http://simpleconsole.rubyforge.org/tutorial.html

simcon

simcon コマンドで雛形作成。

たぶん、Rails の script/generate 相当。

Controller に @variable で設定した値は View でも @variable でアクセス可能
class Controller < SimpleConsole::Controller

  def default
    @message = "Hello World!" 
  end

end

class View < SimpleConsole::View

  def default
    puts @message
  end

end

パラメータは params[:hoge] へ自動的にセットされる(要オマジナイ)
class Controller < SimpleConsole::Controller

  params :string => {:n => :name}

  def who_am_i

    @name = params[:name]
  end

end

class View < SimpleConsole::View

  def who_am_i
    puts "Hello, #{@name}!"
  end

end

うーん、もう少し CoC なかんじになると使っているときの爽快感が上がりそう。期待。

それでも optparse を使うよりもさらに簡単にオプションを使えるのはうれしい。


使ってみて

良さそうな点。

まずは、Rails 的な便利さをコンソールでもほしい!という目的に強く共感。今のままでもそれなりに使えそうなかんじ。

さらに、フレームワークの実装コード自体も小規模なので、気になるところをこちょこちょと調整すれば自分のための便利環境が作れそう。

あとは、これをベースにすると、ちまちまと作るツール類のフォーマットがそろうので、それが実は一番うれしいかも。他人に引継ぐときにも説明しやすいし。

気になった点。

パラメータの受取りの辺りを見てみると、やや癖があったりして、個人的な感性からはちょっと違和感を感じる部分もあった。その辺の整理と、ヘルパー系の強化をしていくと良い塩梅に軽量の Ruby プログラミング用プラットフォームができそう。

  

久々更新。

by tanabe on October 24, 2006

思いがけず、間が開いちゃったなぁ。