Padrinoをローカルインストールしてみたかった
はい Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで) のパクリ記事です.
どういうことかというと上の記事のPadrino版なので上の投稿をストックしてから出なおしてまいれということです.
どうもrbenvとかSinatoraぐらいの簡単さが丁度いいおじさんです.
いやただのRVMとかRailsとかがよくわからなくて世間から置いてけぼりおじさんなのではと思いつつそれではいけないってことでPadrinoに手を出してみようかと思ったおじさんです.(超理論)
そこで複雑なのが苦手なおじさんは何をするにも単純な方がいいのでライブラリも全部ローカルインストールおじさんなので今回もそのつもりだったわけで.
それでは早速スタートです
Padrinoのチュートリアル(日本語)を追ってイクゾーと思ったらいきなり
$ sudo gem install padrino
うnしってた.
やだやだ!ローカルインストールするんだい!
でもそういう記事見なかったので諦めかけたその時!(この間わずか5分)
Railsでググれば解決するのではという逆転の発想で調べると 上記の記事 を見つけたのでPadrinoでも出来そうだったので試してみた.
ということでhistory晒す
echo "-----padrino-----"
mkdir padrinoTest
cd padrinoTest/
bundle init
ls
echo 'gem "padrino"' >>Gemfile
cat Gemfile
bundle install --path vendor/bundle
ここまでてんぷれ
ここで参考にしたrailsの方では--skip-bundle
とか指定して勝手にbundle install
しないようにしてるわけだけどどうすればいいのかな?とチュートリアル見てると
なお、上記の -b フラグは、最後に bundler で自動的にすべての依存 gem をインストールすることを意味しています。
書いてありました.(近年稀に見るピンポイント親切)
という事で,padrinoでは-b
をつけないとbundle install
をしないらしい.
すばらしい.勝手に余計なことしないのっていいよね.
ということでチュートリアルから-b
を抜いて
bundle exec padrino g project sample_blog -t shoulda -e haml -c sass -s jquery -d activerecord
で出来ました.
あとは,bundlerが作ったファイルを消してプロジェクトディレクトリに移動して再度そこでbundle install
すると出来上がり.
チュートリアルそのままやったのでbundle install
を2回もしてたりするけど気にすんな!
rm -rf Gemfile Gemfile.lock .bundle vendor
ls
cd sample_blog/
ls
cat Gemfile
bundle install --path vendor/install
ls
emacs app/app.rb
bundle exec padrino g admin
bundle install --path vendor/bundle
bundle exec padrino rake ar:create
bundle exec padrino rake ar:migrate
bundle exec padrino rake seed
bundle exec padrino start
たいへんよくできました.
かなり簡単にできたのでもうちょっと調べれば何かしら出てきたかと思いつつもできちゃったのでもういいや.
おまけ
あとおまけでemacs app/app.rb
でいじってる部分なんだけど
チュートリアルでは以下のように追記してください的なこと書いてるんだけど
# app/app.rb
class SampleBlog < Padrino::Application
register Padrino::Rendering
register Padrino::Helpers
# Add these routes below to the app file...
get "/" do
"Hello World!"
end
get :about, :map => '/about_us' do
render :haml, "%p This is a sample blog created to demonstrate the power of Padrino!"
end
end
そんなクラスは生成されませんでした(半ギレ)
バージョンは0.12.0でした
代わりに
module SampleBlog
class App < Padrino::Application
register SassInitializer
use ActiveRecord::ConnectionAdapters::ConnectionManagement
register Padrino::Rendering
register Padrino::Mailer
register Padrino::Helpers
enable :sessions
end
end
こんなんでてきましたけど!こんなんじゃチュートリアルになんねーんだよ!
どうなってるんですかね?チュートリアルさんの情報が古いんですかね?
空気を読んでそれっぽく書いた
module SampleBlog
class App < Padrino::Application
register SassInitializer
use ActiveRecord::ConnectionAdapters::ConnectionManagement
register Padrino::Rendering
register Padrino::Mailer
register Padrino::Helpers
enable :sessions
# maybe here...
get "/" do
"Hello, Padrino!"
end
end
end
動きました(あへがお)
チュートリアルさんがいつもやさしいとは限らないということが今回一番勉強になりました.
以上参考サイトは上に書いたので省略!