-
webフレームワークのWavesを試してみた 2008-03-13 02:39:42
あまり時間がなかったのだけど、Rubyで書かれたwebフレームワークのWavesをチュートリアルに従って試してみました。
まずはインストール。sudo gem install waves
アプリの作成。
waves blog
つづいて configuration/default.rbでDBの設定をします。Railsでいうところのconfig/database.ymlと同じかな。
module Blogs module Configurations class Default < Waves::Configurations::Default database :host => "localhost", :adapter => 'mysql', :database => 'blogs', :user => 'root', :password => '' end end endつづいてmigrationの作成。
rake schema:migration name=initial_schema
すると、schema/migrations/001_initial_schema.rbにmigrationファイルが作成される。このあたりはRailsとほぼ一緒だね。Rails同様、作りたいテーブルのカラムを定義する。
class InitialSchema < Sequel::Migration def up create_table :entries do primary_key :id text :name text :title text :summary text :content end end def down drop_table :entries end endこんな感じ。primary_keyは明示的に指定してやんないといけないのかな。Railsよりは書きやすいです。
それからmigrateの実行。rake schema:migrate
DBを確認すると、確かにentriesテーブルが作成されています。
それからコンソールで確認してみる。このirbみたいなやつはRailsにもあるけど、ぼくはほとんど使ったことがありません。
[tsukasa@] $ waves-console irb(main):001:0> M=Blog::Models => Blog::Models irb(main):002:0> M::Entry.all => []
どうやら、Blogという名前空間の下に、すべてのモジュールが存在しているよう。Blog::Modelsで、すべてのModelを指し示していて、さらにその下にEntryというクラスが存在している。Wavesも、テーブル名は複数形、モデルは単数形の名前になるみたい。
irb(main):002:0> E = Blog::Models::Entry => Blog::Models::Entry irb(main):003:0> E.create :title => "article title", :name => "tsukasa", :content => "yes", :summary => "y" => #<Blog::Models::Entry @values={:content=>"yes", :summary=>"y", :name=>"tsukasa", :title=>"article title", :id=>1}>こんな感じで、モデルのインスタンスを作成できる。
そして、てっきりmodelsディレクトリの下にentry.rbでも作られるのかと思っていたら、そんなものはなかった。ふーん。
とりあえず、今日はここまで。明日はビューをやってみよう。

コメント(
リンク元(55)