Ruby

Настройка бэкапов базы данных для Ruby on Rails на Ubuntu 14.04

Сейчас я опишу как для рельсового приложения настроить бэкапы базы данных на ваш аккаунт в дропбоксе.

Для начала поставим гем backup.

sudo apt-get install libxslt-dev libxml2-dev build-essential
gem install backup

Сгенерируем "модель бэкапа".

--trigger — название модели,
--storages — куда будут сохраняться бэкапы,
--databases — тип базы данных,
--encryptor — метод кодирования данных,
--compressor — метод компрессии данных,

Читать далее →

Деплой приложения Ruby On Rails на сервер с Ubuntu 14.04 (с Mac OS X)

Еще одна инструкция по деплою рельсового приложения.

Настройка окружения сервера

1. Добавляем юзера deploy с правами админа.

# server
sudo adduser deploy
sudo adduser deploy sudo
su deploy

2. Добавляем SSH-ключи на нашу локальную машину и авторизуем этот ключ на сервере с помощью утилиты ssh-copy-id, предварительно установив ее. (IPADDRESS — айпи адрес для доступа по SSH).

# local
brew install ssh-copy-id
ssh-copy-id deploy@IPADDRESS

Читать далее →

Вью хелперы и генерация страниц в Middleman

Продолжаю рассказывать о замечательной тулзе Middleman. Расскажу о двух еще очень важных вещах, а остальное можете вычитать из официальной документации.

Хелперы

Вью-хелперы можно использовать в любом шаблоне нашего приложения. Стандартные хелперы типа link_to известны всем rails-девелоперам. Хороший пример этого хелпера:

<%= link_to 'My Form', '/form.html', query: {foo: 'bar'}, fragment: 'deep' %>

Читать далее →

Установка и настройка Middleman

Middleman — удобный инструмент для генерации статических файлов из псевдодинамических исходных данных. Вы задаете набор страниц с переменными, значения этих переменных в виде массива. Эти переменные становятся доступны в шаблонах. Во время разработки middleman работает в качестве простейшего приложения на мини-фреймворке Sinatra. Потом вы просто генерируете все возможные странички и заливаете их на сервер. Вот такая получается псевдодинамика.

Читать далее →

Разработка приложения на Sinatra с использованием Shotgun

По умолчанию Sinatra не перезагружает ваше приложение при каждом вызове. Поэтому при внесении каких-либо изменений в код вашего проекта, вам нужно постоянно перезапускать веб-сервер. Чтобы избежать этого, просто установите гем Shotgun.

Делается это следующим образом:

gem install shotgun

Далее просто запускайте файл с вашим приложением с помощью этого гема:

shotgun -p 4567 my_app.rb

Читать далее →

Bundler — установка гемов в кастомную директорию

Помимо всего прочего, вы можете устанавливать все нужные гемы (и их зависимости) не в системную директорию для гемов, а в любое другое место. Хорошей практикой является установка необходимых приложению гемов в директорию этого приложения по адресу vendor/bundle.

Делается это вот такой командой:

bundle install --path vendor/bundle

Читать далее →

Bundler — обновление гемов

У обновлений версий ваших гемов есть свои тонкости и о них вы можете прочитать на официальном сайте (ссылко). Однаком здесь пробежимся быстро и по верхушкам. Главный совет - не обновляйте гемы скопом. Обновление происходит следующим способом - в Gemfile вы просто указываете новую версию гема, а потом запускаете bundle install.

Читать далее →

Bundler — группы гемов

Бывают ситуации, когда какие-либо гемы нужны при разработке и не нужны при деплое, например. В таком случае, при создании файла Gemfile, вы можете объединить эти гемы в группы. А затем при установке гемов можете указывать специальное поведение для установки этих групп. Допустим, есть такой Gemfile:

source "http://rubygems.org"
 
gem "rails", "3.0.0.rc"
gem "rack-cache", :require => "rack/cache"
gem "nokogiri", "~> 1.4.2"
 
group :development do
  gem "sqlite3-ruby"
end
 
group :production do
  gem "pg"
end

Читать далее →

Bundler — работа с гемами и их зависимостями

Заметка о работе с гемом Bundler. Он позволяет определять зависимости вашего приложения. Установим сам бандлер:

gem install bundler

Перейдем в корень вашего приложения и запустим команду:

bundle init

В корне приложения создастся файл Gemfile. Заполним его таким, например, содержимым:

source "http://rubygems.org"
 
gem "rails", "3.0.0.rc"
gem "rack-cache"
gem "nokogiri", "~> 1.4.2"

Читать далее →

RVM — Работа с разными наборами гемов (gemsets)

RVM позволяет создавать наборы гемов и использовать их в качестве разных сред для разработки. Делается это просто - каждому набору дается уникальное имя (namespace) и вся работа с гемами происходит в пределах этого неймспейса (установка, удаление, разные версии и т.д.)

Читать далее →