CGIKit2用日付選択コンポーネント

CGIKit2のサブコンポーネントの練習もかねて、日付選択コンポーネントを作成しました。

「日付」「日時」「時分」を選択する3種類を作成しました。

CGIKit2になって、簡単に作れるようになりましたね。

* [日付選択コンポーネント](http://www.gesource.jp/ruby/cgikit2/selectdate/)

goodic

[goodic][1]をRubyで作ってみました。ほとんど同じなのですが…。

Windowsで作ったので、入出力はShift_JISを前提にしました。

ruby goodic.rb ej python

py・thon

━━ n. 【動】ニシキヘビ; 大蛇.

ruby goodic.rb je 公園

こうえん 公園

a (public) park; 《小規模で四角形》a square.
国立[国定]公園 a national [quasi-national] park.
日比谷公園 Hibiya Park.

ruby goodic.rb jn おもむろに

おもむろに 0 【▽徐に】

(副)
落ち着いて、ゆっくりと事を始めるさま。ゆったりしたさま。
「―口を開く」

* [ページ](http://www.gesource.jp/ruby/goodic.html)
* [ソースコード](http://www.gesource.jp/ruby/goodic.rb)

[1]: http://matatabi.homeip.net/blog/setomits/68

ckgeneratecode

一通り動作するようになりましたので[ckgeneratecode][1]を公開します。

[ckgeneratecode][1]は、[CGIKit 2.x][2]用テンプレートからバインディングファイルとコードを生成するプログラムです。

私のように、先にデザイナーさんからHTMLファイルをもらい、それを元にプログラムを作っていくスタイルだと、このようなスクリプトがあると楽になると思います。

[1]: http://www.gesource.jp/ruby/cgikit2/ckgeneratecode/
[2]: http://cgikit.sourceforge.jp/cgi-bin/ja/index.cgi

REXMLでノードの階層構造を出力する

REXMLでノードの階層構造を出力する

出力例

html[xmlns=”http://www.w3.org/1999/xhtml”]
head[]
meta[content=”text/html; charset=UTF-8″,http-equiv=”Content-Type”]
title[]
body[]
h1[]
h2[]
div[]
form[name=”form1″,id=”form1″]
p[]
br[]
input[name=”textfield”,type=”text”]

ソースコード。

require ‘rexml/document’

# 要素を階層表示する
# element 要素
# level 階層レベル
def show_element(element, level)
# 空白
sp = ‘ ‘ * level
# 属性
attr = []
element.attributes.each do |name, value|
attr << "#{name}=\"#{value}\"" end # 出力 puts "#{sp}#{element.name}[#{attr.join(',')}]" # 子要素 element.each_element do |e| show_element(e, level + 1) end end if $0 == __FILE__ if ARGV.size < 1 puts "USAGE: ruby #{__FILE__} xmlfilepath" exit end doc = REXML::Document.new(File.new(ARGV[0])) show_element(doc.root, 0) end