6. CoffeeScript. Основы
(function() {
i = 42 var i = 42;
square = (x) -> function square(x) {
x*x return x * x;
}
i = square(i) unless i < 10 if (!(x < 10)) { i = square(i); }
if i > 100 if (i > 100) {
alert(i) alert(i);
}
})();
7. CoffeeScript. Сахар
Значение аргументов по умолчанию:
fill = (liquid = "coffee") ->
alert(liquid)
Переменные в строках:
"Liquid is #{liquid}"
Диапазон:
array[0..2] # => [1, 2, 3]
"abcde"[0..2] # => "abc"
Вызовет calc, если obj и getA не undefined:
obj?.getA()?.calc()
8. CoffeeScript. Циклы
numbers = [1, 2, 3]
for i in numbers
console.log(i)
square = (i * 2 for i in numbers) #=> [1, 4, 9]
scores = ivan: 1, kolya: 2, slava: 5
for name, score of scores
console.log("#{name}: #{score}")
9. CoffeeScript. Установка
1. Добавить gem 'barista', '~> 1.0' в Gemfile
2. Вызвать bundle install
3. Вызвать rails generate barista:install
4. Положить свои скрипты в app/coffeescripts
19. Jammit
Для CSS/JS-файлов:
1. Объединяет все файлы в один
2. Убирает пробелы/комментарии, сокращает JS-код
3. Сразу сжимает GZ на максимальной компрессии,
чтобы Nginx быстро отдавал уже сжатое