Записи категории ‘Документация’
Презентация. Как работает шардинг в MongoDB
Русский язык и \w в регулярках
Для того, чтобы выбрать все буквы, в регулярных выражениях используется выражение \w.
С русским языком такое не получится:
Самое первое что приходит на ум это:
Оппана! Вроде работает, но на самом деле, это не корректное выражение. Пример:
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю"
Буквы ё и Ё потерялись. Правильно так: /[^а-яё]/ui
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБЮйцукенгшщзхъфывапролджэёячсмитьбю"
Что же такое Railtie, Engine и Plugin?
Railtie
Railtie – это ядро фреймворка, обеспечивает возможности для расширения Rails и/или изменения процесса инициализации.
Каждый основной компонент Rails (ActionMailer, ActionController, ActionView, ActiveRecord и ActiveResource) является Railtie, так что каждый из них сам несет ответственность за свою инициализацию. Например, это освобождает Rails от каких-либо привязок к ActiveRecord, позволяя другой ORM работать с Rails.
Создание расширений для Rails не требует какой-либо реализации Railtie, но, если Вы хотите взаимодействовать с Rails во время его загрузки или после нее, Railtie – это то, что Вам нужно для такого взаимодействия. Например, чтобы реализовать в плагине одно из ниже перечисленного Вам бы понадобился Railtie:
- создать свои инициализаторы
Rails::Initializable#initializer - конфигурировать Rails или приложение, например чтобы добавить свой генератор
- добавить свои ключи в
config.*для конфигурации среды (environment) - установить подписку на события
ActiveSupport::Notifications добавить rake задачи в Rails
Соответствие MySQL и MongoDB запросов
Эта шпоргалка создана для того чтобы упростить переход с SQL баз данных на MongoDB. В ней остались не затронутыми многие особенности и возможности MongoDB, неимеющие аналогов в SQL, такие как MapReduce, например. Или те о которых я незнаю. Это просто список соответствий MySQL запросов и запросов MongoDb.
Проверка данных моделей ActiveRecord и функции обратного вызова. Первая часть.
Перевод Active Record Validations and Callbacks
Это руководство описывает цикл жизни объектов Active Record. Вы узнаете, как проверить состояние объектов прежде, чем они попадут в базу данных, и как выполнить собственный код в определенных моментах цикла жизни объекта.
Прочтя это руководство, Вы сможете:
- цикл жизни объектов Active Record
- Использовать встроенные помощники для проверки состояния данных модели
- Создавать свои собственные помощники для проверки состояния данных модели
- Работать с сообщениями об ошибках, которые генерируются в результате этих проверок
- Создавать функции обратного вызова, вызываемые на разные события происходящие в течении жизни объекта
- Создавать специальные классы, которые будут энкапсулировать общее поведение для функций обратного вызова
Создавать классы-наблюдатели, которые будут отвечать за вызов соответствующих методов в ответ на события происходящие в течении жизни объекта
Реализация google protocol buffers на php
phpbuf – реализация google protocol buffers на php.
Эта библиотека не имеет пока генераторов кода. Классы сообщений нужно писать самому. Благо что пишутся они очень просто.
Настройка Rails приложений
Перевод: Configuring Rails Applications
Это руководство описывает настройку Rails приложений, и инициализацию разных возможностей, доступных для Rails приложений . Прочтя это руководство, Вы сможете:
- Корректировать поведение своих Rails приложений
Добавлять дополнительный код, который будет выполнен на этапе загрузки приложения
Интерфейс запросов ActiveRecord
Перевод: Active Record Query Interface
Это руководство описывает различные способы получать данные от базы данных, используя ActiveRecord. Прочтя это руководство, Вы сможете:
- Искать записи в базе данных с помощью множества методов и всевозможных условий
- Определять сортировку, требуемые атрибуты, группировку и другие свойства для поиска записей
- Использовать отложенную загрузку, чтобы сократить количество запросов к базе данных, необходимых для поиска
- Использовать динамические методы поиска
- Создавать именованные области видимости (named_scope), для добавления новых средств поиска Ваших моделей
- Проверять существование определенных записей
Выполнять различные расчеты в моделях ActiveRecord
Глобальные переменные ruby
$@ # место ошибки
$_ # последняя строка прочитанная с помощью gets
$. # номер строки исполняемой интерпретатором
$& # последняя совпавшая строка при использовании регулярных выражений
$~ # последнее совпадение при использовании регулярных выражений (массив подвыражений)
$n # n-ное подвыражение в последнем совпадении при использовании регулярных выражений (тоже что и $~[n])
$= # case-insensitivity flag
$/ # input record separator
$\ # output record separator
$0 # имя исполняемого ruby файла
$* # параметры командной строки
$$ # идентификатор процесса интерпретатора
$? # код с которым завершился последний дочерний процесс
Краткое руководство по named_scope
named_scope :active, :conditions => {:active => true}
named_scope :inactive, :conditions => {:active => false}
named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago]
} }
end

(15 голосов, средний: 4.73 из 5)
(6 голосов, средний: 4.00 из 5)