SinatraベースのWebフレームワーク。RailsっぽくSinatraを使える。 Sinatraはシンプルで自由度が高いけど、機能が少なすぎる。 Railsは機能が過剰でお手軽感に欠ける。 Padrinoは機能の量とお手軽感、自由度がちょうど良い。 ドキュメント
インストール一応RVM使っておく。 $ rvm install 1.9.2$ rvm 1.9.2$ rvm gemset create padrino$ rvm 1.9.2@padrino$ gem install padrinoプロジェクト作成$ padrino g project my_project$ cd my_project$ echo "rvm 1.9.2@padrino" > .rvmrcHaml, scss, ActiveRecord, RSpec という構成 (Generators) $ padrino g project my_project -e haml -c scss -d activerecord -t rspecライブラリはBundlerで。 $ gem install bundler$ bundle installサーバ起動・終了$ padrino start$ padrino start -d -p 3000 -e development -a thin$ padrino stopthinを使う場合はGemfileに gem 'thin' を追加しておく。 Controller生成 $ padrino g controller User get:index Model生成 $ padrino g model User name:string age:integer email:string Assets PipelineでCoffeeScriptを使う以下をGemfileに追加してbundle install。 gem 'padrino-sprockets', :require => 'padrino/sprockets'gem 'coffee-script'gem 'therubyracer', :require => 'v8'public/ 以下を app/assets/ に移動(ただしfaviconはpublicに戻す) $ mkdir -p app/assets$ mv public/* app/assets/$ mv app/assets/favicon.ico public/jsとcssをそれぞれ適当に変更。 app/assets/javascripts/application.js //= require ./libs/jquery//= require ./libs/jquery-ujs//= require_tree .app/assets/stylesheets/application.css /* *= require_self *= require_tree .*/app/app.rbのconfigブロックに以下を追加 # Sprockets supportrequire 'sprockets'register Padrino::SprocketssprocketsView(layoutとか)でjsとcssを指定 %link(rel="stylesheet" type="text/css" href="/assets/application.css")%script(type="text/javascript" src="/assets/application.js"CoffeeScriptのファイル名は app/assets/javascripts/hoge.js.coffee のようにする。 するとWebでは /assets/hoge.js になる。 #= require ./libs/jquery-min.js#= require ./libs/underscore-min.js#= require ./libs/backbone-min.js#= require ./libs/json2.js#= require ./models/hoge.jswindow.application ||= {}class Router extends Backbone.Router routes: '': 'index' 〜〜〜class application.MyClass ## 他のスクリプトからこのクラスを使いたい場合 constructor: (@name) -> 〜〜〜JavaScriptライブラリをwgetPadrinoとは直接関係ないけど。 $ mkdir -p app/assets/javascripts/libs$ cd app/assets/javascripts/libsjQuery $ wget http://code.jquery.com/jquery-1.7.min.js -O jquery-min.jsBackbone.js $ wget http://documentcloud.github.com/backbone/backbone-min.jsUnderscore.js $ wget http://documentcloud.github.com/underscore/underscore-min.jsjson2.js $ wget https://raw.github.com/douglascrockford/JSON-js/master/json2.js |
