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/.