Антон Рябов bio photo

Антон Рябов

Не люблю бриться и у меня умный взгляд.

Email Twitter Telegram Github PGP RSS

Создание нового приложения на Rails

Понял, что часто приходится создавать новое приложение Rails, решил сделать заметку с командами. По хорошему, конечно, нужно бы написать скрипт, чтобы это дело автоматизировать.




Выбираем версию ruby

$ rvm use 2.2.0

Создаем гемсет

$ rvm gemset create my_app

переключаемся на новый гемсет

$ rvm gemset use my_app

Устанавливаем rails

$ gem install rails --no-ri --no-rdoc

Создаем новое приложение

$ rails new my_app -d postgresql

Переходим в каталог нового приложения

$ cd my_app

Закрепляем версию руби и гемсет за данным каталогом, т.е. проектом

$ rvm --ruby-version use rvm current@my_app

сохраняем исходный конфиг database.yml и редактируем database.yml

$ cp config/database.yml config/database.yml.sample

Создаем базы

$ rake db:create:all

Ну и git

git init
echo config/database.yml >> .gitignore
git add .
git ci -am "initial commit"

UPD: Скрипт я все таки сделал, но он дико заточен под меня, без параметров. Всегда создается проект с базой данных postgres и иницируется git, а также все проекты у меня лежат в каталоге ~/projects.

Сам скрипт:

#!/bin/bash

read -n 1 -p "Ты запустил скрипт с параметрами - x.x.x my_super_app (y/[a])?: " AMSURE
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2

cd ~/projects

rubyVersion=$1
appName=$2
echo -e "\x1B[33m### Try ruby version: $rubyVersion ###\x1B[39m"
echo -e "\x1B[33m### Try application name: $appName ###\x1B[39m"

if which rvm 1>/dev/null; then
  echo -e "\x1B[32m### Using RVM ###\x1B[39m"
else
  echo -e "\x1B[31m### RVM not instaled ###\x1B[39m"
  exit
fi

rvm use $rubyVersion
rvm gemset create $appName
rvm gemset use $appName
gem install rails --no-ri --no-rdoc
echo -e "\x1B[32m### Rails done! ###\x1B[39m"
rails new $appName -d postgresql
cd $appName
rvm --ruby-version use rvm current@$appName
cp config/database.yml config/database.yml.sample

#git
git init
echo config/database.yml >> .gitignore
git add .
git ci -am "Initial commit for $appName"
echo -e "\x1B[32m### All done! ###\x1B[39m"
echo -e "\x1B[33m### Do not forget edit database.yml and create DBs with 'rake db:create:all' ###\x1B[39m"
#RubyOnRails #Bash #Tutorial #TechAndDev