LoginSignup
7
8

More than 5 years have passed since last update.

環境をよごさないでPadrino使ってみる

Posted at

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

動きました(あへがお)
チュートリアルさんがいつもやさしいとは限らないということが今回一番勉強になりました.
以上参考サイトは上に書いたので省略!

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8