グローバルを汚さないHanami環境の立ち上げ


グローバルを汚さないHanami環境の立ち上げ

About

rbenv-binstubの使い方とhanamiをプロジェクトごとで分割するための備忘録として

Requirement

  • bundler
  • rbenv-binstubs(おすすめ)

Operation

Init project (file)

shell
mkdir project && cd project
bundle init
Gemfile
source 'https://rubygems.org'

gem 'hanami'

Installation

shell
# install with binstubs
bundle install --path=vendor/bundle --binstubs=/vendor/bin

# or not
bundle install --path=vendor/bundle

Create & Run app

shell
hanami new yourapp
mv yourapp/* ./ && mv yourapp/.* ./
rm -rf yourapp
bundle update
shell
# if set binstubs
hanami s

# or not
bundle exec hanami s

アプリケーション作成について

Create & Run app における以下のコマンド

shell
hanami new yourapp
mv yourapp/* ./ && mv yourapp/.* ./

は、rails new .のような動作をHanamiで同様にhanami new .とするとうまくいかない(参考1, 参考2)ので、ファイル移動にて無理やり同等の動作を実現します(project と yourappで違ってるけど)。

.gitなど.から始まるファイル・ディレクトリをワイルドカード*で指定させるためには

zsh
# zsh
setopt -s dotglob

# bash
shopt -s dotglob

を行うと

shell
mv yourapp/* ./

のように簡素に書くことができます。

参考

bundle exec はもういやだ
How can I get mv (or the * wildcard) to move hidden files?
shopt command in zsh