Свежие релизы

Ember 1.7.0 and 1.8 beta released

Основные фичи релиза 1.7

Теперь роуты можно объявлять вложенными друг в друга при этом неймспейс вложенного роута добавлятся к неймспейсу родительского.

this.route('foo', function() {  
  this.route('bar', function() {
    this.route('baz', function() {
       // uses FooBarBazRoute
       // generates foo.bar.baz.index
       // generates FooBarBazIndexRoute
     });
   });
});

Вторая, более значительная фича - Query params. То есть теперь урлы в приложении могут быть такими: /?page=1&sort=last_name. При этом параметры биндятся в обе стороны на соответствующие проперти контроллера. Если произошло массовое изменение пропертей контроллера, урл будет обновлен один раз. Для значений параметров делается приведение типа - "true" для булева свойства превратится в true, "123" для числового в 123. Параметры с дефолтными значения можно не показывать в урле.

В 1.8 случилось то, что все давно ждали - в ember был переработан слой отображения и теперь в dom дерево не будут вставляться ужасные теги script.

<script id="metamorph-1-start" type="text/x-placeholder"></script>  
<script id="metamorph-1-end" type="text/x-placeholder"></script>  

Еще в 1.8 депрекейтят поддержку IE версий 6 и 7, а я даже и не знал что их еще поддерживают)

Подробнее о релизе http://emberjs.com/blog/2014/08/23/ember-1-7-0-released.html.

Ember Data v1.0.0-beta.9 released

Добавлен миксин DS.EmbeddedRecordsMixin который теперь содержит логику по сериализации/десериализации связанных объектов. Таким образом этот код теперь легко использовать в своих сериалайзерах. Подробнее можно почитать в документации http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html.

Появилась возможность склеивать find-запросы. Пример:

this.store.find('post', '1');  
this.store.find('post', '2');  
this.store.find('post', '3');

// $.ajax GET /posts/1
// $.ajax GET /posts/2
// $.ajax GET /posts/3

Теперь, с помощью склейки запросов это приведет к одному запросу:

this.store.find('post', '1');  
this.store.find('post', '2');  
this.store.find('post', '3');

// $.ajax GET /posts?ids[]=1&ids[]=2&ids[]=3

По умолчанию склейка запросов отключена, вот как ее включить:

DS.RESTAdapter.reopen({  
  coalesceFindRequests: true
});

Инфлектор стал отдельным пакетом и его можно использовать без Ember Data. Инфлектор теперь кеширует свои результаты, кеширование при необходимости можно отключить. Добавили handlebar-хелперы pluralize и singularize.

В целом обещают увеличение производительности работы приложения с Ember Data.

Это далеко не все изменения вошедшие в эту версию, подробней читайте здесь http://emberjs.com/blog/2014/08/18/ember-data-1-0-beta-9-released.html.

Rails 4.2.0 beta1

Основное нововведение - это появление в составе фреймворка Active Job. Это адаптер для систем очередей - Resque, Delayed Job, Sidekiq и других. Теперь можно запускать свои задачи на любой из поддерживаемых систем без изменения своего кода.

Active Job будет использовать в rails везде где необходимо выполнять какие-то задачи асинхронно. Первое такое место это отправка емейлов. Теперь в ActionMailer появился метод #deliver_later который добавляет задачу на отправку письма в очередь.

Для удобной передачи объектов Active Record в задачу изпользуется библиотека GlobalID - благодаря чему вам не нужно в ручную сериализовать модель для передчи в задачу, а затем десериализовывать при выполнении задачи.

Хорошо подтянули производительность работы Active Record избавившись от лишних и дублирующих запросов.

Появилась web console - это полноценная IRB консоль в браузере. Она автоматически показывается на странице с исключением, так что теперь можно сразу посмотреть состояния кода которое привело к ошибке. Просто поиграться с консолью можно в режиме разработки перейдя на урл /console.

Подробнее о релизе можно почитать здесь http://weblog.rubyonrails.org/2014/8/20/Rails-4-2-beta1/.