Pull to refresh
34
0
Send message

Раздаём картинки рельсами после отключения Google'ом svn репозиториев

Reading time 2 min
Views 5.9K

Видимо, на неделе гугл отключил svn репозитории code.google.com.
Если вы не подключали скрипты, раздаваемые из этих репозиториев, вы могли этого не заметить, как и я.
Меня удивил увеличившийся трафик в репозиторий google-maps-utility-library-v3, но сначала я не понял, почему это может быть. Позже я увидел, что пропали изображения иконок кластеров на карте. Дело в том, что путь до иконок захардкожен в MarkerClusterer и указывает на code.google.com.


Как настроить sprockets раздавать эти картинки, читайте под катом.

Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 6

Бот для Telegram. Rails way

Reading time 6 min
Views 24K
Этот пост о библиотеке telegram-bot для написания ботов для Telegram. В числе основных целей при её создании были удобство разработки, отладки и тестирования ботов, сохранение интерфейсов минимальными, но с возможностью расширения, простота интеграции с Rails-приложением, и предоставление необходимых инструментов для написания бота. Вот что входит в состав:

  • Легковесный клиент для API ботов.
  • Базовый класс для контроллера обновлений с парсером сообщений. Сделан на основе AbstractController из ActionDispatch, предоставляет колбэки, сессии, сохранение контекста сообщений и прочее.
  • Rack-middleware для продакшена, чтобы принимать update-хуки, и поллер с автоматической загрузкой обновленного кода для удобной разработки.
  • Rake таски, хэлперы для рельсовых маршрутов и тестов.

Интересно? Для установки добавьте telegram-bot в Gemfile, подробности под катом.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 4

Рецепты тестирования Ruby и Rails приложений

Reading time 7 min
Views 22K
image

В этом посте я хотел бы рассказать о подходах, приемах и средствах подготовки тестов. Расскажу про то, как не писать лишнего, меньше дублировать код, писать тесты так, чтобы их было легко поддерживать, и как выигрывать в производительности в некоторых ситуациях.

Кому это будет интересно?

  • Если вы начали писать тесты недавно.
  • Если вы пишете тесты и считаете, что в них много копипасты, или можно значительно улучшить их.
  • Если вы пишете тесты изредка или не пишете совсем, так как вам не нравится или считаете, что это долго.
  • Если вы мастер в написании тестов. Возможно, вы узнаете некоторые тонкости или найдете несколько полезных мелочей.

Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 16

RailsStuff — набор для разработки на рельсах

Reading time 6 min
Views 9.9K
image

Недавно мы опубликовали гем RailsStuff. Это коллекция небольших модулей и утилит для выполнения самых разных частых задач: от организации контроллеров и генерации уникальных случайных значений до парсера параметров и хэлперов переводов. В этом посте я расскажу про некоторые из них:

  • ResourcesController — облегчённая и современная версия InheritedResources;
  • Трекер типов;
  • Генератор уникальных случайных значений;
  • Хэлперы переводов и основных ссылок.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 10

Elastics: простой ElasticSearch-клиент для Ruby со всем необходимым

Reading time 2 min
Views 6.7K
Года полтора назад столкнулся с проблемой выбора клиента к ElasticSearch для node.js. Тогда нашлось несколько проектов, но все были либо слишком усложненные, либо написаны абы как. Хотя казалось: все что нужно — это обертка вокруг http запроса с JSON.encode/decode, обработкой ошибок и парой хэлперов. Тогда для ноды я быстро написал небольшой модуль, который оказался очень удобным.

Недавно надо было прикрутить ES к приложению на рельсах. Часть клиентов для Ruby уже давно не поддерживается, другие слишком усложнены. При этом многие клиенты не имеют механизма управления алиасами, хотя для ES это очень важный функционал.

Я решил написать минималистичный гем, взяв за основу модуль для node.js и расширив его функционал так, чтобы были все самые необходимые инструменты для разработки, деплоя и управления. Вот что получилось.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 13

Улучшенное наследование в CoffeeScript

Reading time 3 min
Views 5.4K
CoffeeScript принёс в JS неплохую абстракцию классов, основанную на прототипах.
Реализовав известную модель наследования и дополнив её наследованием методов касса,
он позволяет легко строить иерархии классов, даже не зная о цепочках прототипов.
Но и эта модель может быть улучшена.
Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Comments 9

Сериализация в php: serialize, json, bson

Reading time 1 min
Views 17K
Выбрал функции сериализации для бд — bson. Быстрее serialize в >1.5 раза, json — в 3. Да и результат меньше всех остальных.
Найти его можно в расширении для MongoDB.
Результаты далее.
Читать дальше →
Total votes 25: ↑13 and ↓12 +1
Comments 13

MySQL репликация one-slave-multi-master

Reading time 3 min
Views 13K

Предисловие.


Понадобилось сделать репликацию несколькими мастер-серверами с mysql, чтобы данные со всех них грузились на один слэйв-сервер. Готового решения стандартными средствами не нашлось. Но так как проблема оставалась актуальной, со временем подоспел немного усложненный, но работоспособный вариант c использованием средств самой mysql.
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 14

Information

Rating
Does not participate
Works in
Registered
Activity