LuaTinyCGI サンプル 0.0.1-alpha リリースのお知らせ

LuaTinyCGIは、Luaで伝統的なCGIアプリケーションを書くためのフレームワークです。

http://sourceforge.jp/projects/luatinycgi/

LuaTinyCGI サンプル 0.0.1-alpha をリリースします。これが初めてのリリースです。ドキュメント類は、完全に未整備です。

かなり前に、会社内のWeb稟議システムをLuaで作成しましたが、その時のベース部分をフレームワークとして整備して公開したいと思ってます。まず、いくつかサンプルを作成する中で、フレームワーク部分を整えていきたいと思ってるので、LuaTinyCGI サンプルを細々とリリースしていくつもりです。

特徴

  • apacheにCGIの設定をするだけで動くような、伝統的なCGIアプリケーションを、Luaで作成するために利用できるフレームワークです。
  • CGILuaというフレームワークのコードを利用してます。
  • 現状、view側の機能のみです。要するに、struts1の担当範囲と同じです。
  • DBアクセスに関するサポートクラスも提供予定です。(SQL大好きな感じのものになります)

サンプル

足し算ができるようになりました。

f:id:smeghead:20100612225239p:image

アクションのコードは以下のような感じです。

module(..., package.seeall)
function index(request, response)
  return {forward = "./lp/calc/index.lp"}
end
function plus(request, response)
  return {forward = "./lp/calc/plus.lp"}
end
function plus_submit(request, response)
  local env = {
    a = request.QUERY.a or 0,
    b = request.QUERY.b or 0
  }
  require "validate"
  env.errors = validate.validate {
    ['A'] = {
      [validate.required] = env.a,
      [validate.num] = env.a,
    },
    ['B'] = {
      [validate.required] = env.b,
      [validate.num] = env.b,
    },
  }
  if #env.errors > 0 then
    return {
      forward = "./lp/calc/plus.lp",
      env = env
    }
  end
  env.answer = env.a + env.b
  return {
    forward = "./lp/calc/plus.lp",
    env = env
  }
end

近代的なフレームワークと比べると、ずいぶん冗長に感じられますが、今は、こんな状態になってます。

今後は、他のもうちょっと現実的なアプリを作りながら、進めたいです。難しすぎず、サンプルに良さそうな課題を探してることろです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください