Представлен релиз MVC (Model-View-Controller) web-фреймворка Ruby on Rails 4.0. В новой ветке прекращена поддержка Ruby 1.8.7 и обеспечена возможность работы только при наличии Ruby 1.9.3. При этом рекомендованной версией является Ruby 2.0.
Ключевые улучшения, добавленные в выпуске Ruby on Rails 4.0:
- В новой версии Rails основное внимание уделено развитию средств, позволяющих создавать современные web-приложения без ручного создания клиентских JSON-обработчиков на JavaScript. При этом классическая поддержка JSON-сервера сохранена и может быть использована для разработки клиентов при помощи библиотек Ember.js, Backbone.js и Angular.js;
- Представлена система кэширования "Русская матрёшка", позволяющая кэшировать данные с учётом времени жизни ключей и автоматическим управлением зависимостей для вложенных шаблонов;
- Ускорение javascript-кода, выполняемого на стороне клиента, за счёт применения технологии Turbolinks, подразумевающей компоновку клиентской части web-приложения в виде одой страницы, в которой связанных с ссылками контент загружается и отображается динамически через использование JavaScript-обработчика, на лету заменяющего содержимое тела страницы, без перезагрузки самой страницы с сервера;
- Поддержка декларативных ETags позволяет упростить контроль за актуальностью загруженных по HTTP данных;
- Реализация модуля ActionController::Live с поддержкой live-режима для постоянной потоковой передачи данных через заданные интервалы времени в рамках постоянно открытых соединений;
- Обеспечение из коробки работы c серверами, работающими в многопоточном режиме, без необходимости настройки config.threadsafe;
- Многочисленные улучшения класса Active Record. В частности улучшены средства для указания диапазонов и обеспечена более целостная структура запросов;
- Ужесточены используемые по умолчанию настройки безопасности. Включено экранирование HTML-тегов по умолчанию. Приняты патчи для усиления безопасности, предоставленные компанией Google. Сужен охват значений, подпадающих под действие Match;
- Следующие компоненты вынесены из базовой поставки и теперь распространяются в виде отдельных gem-модулей:
- Динамические методы поиска на основе хэшей (Github)
- Массовое назначение защищённых свойств для моделей Active Record (Github)
- ActiveRecord::SessionStore (Github
- Active Record Observers (Github)
- Active Resource (Github)
- Action Caching (Github)
- Page Caching (Github
- Sprockets (Github)
- Тесты производительности (Github)