merbのslice機能を使ってみる
merb-uiというgemを利用してmerb-sliceの機能を実装してみる
- まずはgemをインストール
bash-3.2$ sudo gem install merb-ui Password: Successfully installed merb-ui-0.4.9 1 gem installed Installing ri documentation for merb-ui-0.4.9... Installing RDoc documentation for merb-ui-0.4.9...
- merb-uiを利用することを宣言する(config/dependencies.rb)
dependency "merb-ui"
とすると、アプリのrakeタスクが以下のように表示されるはず。
bash-3.2$ rake -T | grep merb_ui rake slices:merb_ui:copy_assets # Copy public assets to host application rake slices:merb_ui:freeze # Freeze MerbUi into your app (only merb-ui/app) rake slices:merb_ui:freeze:app # Freezes MerbUi by copying all files from merb-ui/app to your application rake slices:merb_ui:freeze:app_with_gem # Freezes MerbUi as a gem and copies over merb-ui/app rake slices:merb_ui:freeze:gem # Freezes MerbUi by installing the gem into application/gems rake slices:merb_ui:freeze:models # Freeze all models into your application for easy modification rake slices:merb_ui:freeze:unpack # Freezes MerbUi by unpacking all files into your application rake slices:merb_ui:freeze:views # Freeze all views into your application for easy modification rake slices:merb_ui:install # Install MerbUi rake slices:merb_ui:migrate # Migrate the database / Migrate the database rake slices:merb_ui:patch # Copy stub files and views to host application rake slices:merb_ui:preflight # Test for any dependencies / Test for any dependencies rake slices:merb_ui:setup_directories # Setup directories rake slices:merb_ui:spec # Run slice specs within the host application context rake slices:merb_ui:spec:controller # Run all controller specs, run a spec for a specific Controller with CONTROLLER=MyController rake slices:merb_ui:spec:default # Run specs rake slices:merb_ui:spec:html # Run all specs and output the result in html rake slices:merb_ui:spec:model # Run all model specs, run a spec for a specific Model with MODEL=MyModel rake slices:merb_ui:spec:view # Run all view specs, run specs for a specific controller (and view) with CONTROLLER=MyController (VIEW=MyView) rake slices:merb_ui:stubs # Copy stub files to host application bash-3.2$
- 次は持ってきたmerb_uiを自分のアプリ内に内包するよう以下のコマンドを実行します
bash-3.2$ rake slices:merb_ui:copy_assets (in /Users/kuro/merb/slice-test) Loading init file from /Users/kuro/merb/slice-test/config/init.rb Loading /Users/kuro/merb/slice-test/config/environments/development.rb Copying assets for MerbUi - resolves any collisions
- copied public/slices/merb-ui/javascripts/keybinder.js
- copied public/slices/merb-ui/javascripts/main.js
- copied public/slices/merb-ui/images/bezel.png
- copied public/slices/merb-ui/images/glass.png
- copied public/slices/merb-ui/images/metal.png
- copied public/slices/merb-ui/images/nil.png
- copied public/slices/merb-ui/images/plastic.png
- copied public/slices/merb-ui/images/rubber.png
javascriptファイルやら画像ファイルやら持ってきてくれました。
きっとmerb-uiと呼ばれるものなのでuiで利用するんだと思います。
ですので先に簡単なひな形を作成しておきます。
ちなみにO/R mapperはactiverecord、DBはMySQLを利用するものとします。
bash-3.2$ merb-gen resource user name:string,age:integer,introduction:text --orm=activerecord
で、適当にconfig/database.ymlを編集して
bash-3.2$ rake db:create bash-3.2$ rake db:migrate
でCRUDつきのUserコントローラが出来上がりです。