Drupal-7, compass & bootstrap-sass, Ruby, rvm, sass

Когато работим по различни проекти, понякога се налага да се ползват различни версии на даден gem.
Конкретно това произлезе за мен с bootstrap-sass. Проекти, които са започнати преди година-две и са твърде напред с развитието няма (по една или друга причина) как да се ъпдейтнат до сегашната версия на bootstrap. Затова се налага и помощните инструменти да са със съответните версии. Ключово в случая е версията на bootstrap-sass. Така например за фреймуърка bootstrap-2.3 за Друпал-7 има тема bootstrap-7.x-2.x, а също така и gem трябва да е със съответната версия на bootstrap фреймуърка - bootstrap-sass-2.3, който е правилния за работа. За bootstrap-3 темата е bootstrap-7.x-3.x и съответно изисква да се ползва gem bootstrap-sass-3.0.

Тъй като не открих начин един compass да ползва различни (версии на) gem bootstrap-sass в едно ruby, използвах възможността с rvm да имам няколко инсталирани rubies. Така във всяка инсталиран версия на ruby инсталирах compass и различна версия на gem bootstrap-sass. Когато ми трябва конкретна версия на bootstrap-sass съответно превключвам на съответното ruby. Да, трябва да помним в коя версия на ruby каква версия на bootstrap-sass имаме. Не е фатално ако забравим, можем да проверим в директорията на съответното руби коя версия на gem bootstrap-sass сме инсталирали. Например моите са ruby-1.8 > bootstrap-sass-2.3 и ruby-1.9 > bootstrap-sass-3.0.
В домашната директория са всички rubies, които инсталираме

cd ~/.rvm/rubies

Пътя на директорията на gems, инсталирани в конкретна версия изглежда така

~/.rvm/gems/ruby-1.8.7-p374/gems

или

~/.rvm/gems/ruby-1.9.3-p484/gems

Използване на gem bootstrap-sass в темата, добави към Sass and Compass in Drupal theme Bootstrap:

# config.rb:
require 'bootstrap-sass'

не приема аргументи или нещо друго, просто използва gem-а, който е инсталиран.

Инсталиране на няколко ruby - с rvm https://rvm.io

Инсталиране на конкретна версия на ruby - https://rvm.io/rubies/installing

rvm install 1.9

Задаване на текуща работна версия на ruby, прави се за да се компилира css с различен gem bootstrap-sass - https://rvm.io/rubies/default

rvm --default 1.8

Когато инсталираме допълнителна версия, автоматично тя става активна и е зададена по подразбиране.

Проверка коя версия е активна

rvm list

Инсталиране на compass - във всяка версия на ruby! http://compass-style.org/install/

gem install compass

Инсталиране на gem bootstrap-sass избрана версия

gem install bootstrap-sass -v 3.0

Компилиране на css - изпълнява се в директорията на темата

compass watch

Бележка: Задължително е rubies да се инсталират без sudo (su). Те трябва да са инсталирани от текущия потребител, с който се работи. В случай, че вече е инсталиран ruby в системата със sudo, трябва първо да се премахне.

Бележка 2: Не пиша на ruby. Но заради използването на sass&compass си заслужава да се разбира малко от горното :). А за front-end-ъри бих казал, че е задължително.

Categories: 

Comments

или да ползвате ruby native way като добавите в темаjd файл с име Gemfile и съдържание

source 'https://rubygems.org'
 
gem 'compass', "~> 0.12.2"
 
gem 'sass-rails', '~> 3.2'
gem 'bootstrap-sass', '~> 2.3.2'