• Grape: не рельсами едиными, ч. 2

      В первом своем посте про Grape я быстренько проскакал по основным его возможностям, за что заслуженно был засыпан упреками в излишней сжатости подачи материала. По результатам публикации прошлого поста я пообещал практический пример применения фреймворка, а также сравнительные бенчмарки.

      Сегодня мы приступим к созданию примера — разработаем API, которое умеет:
      — регистрировать пользователя
      — активировать его по email
      — обновлять данные авторизованного пользователя
      — возвращать профиль авторизованного пользователя

      Читать дальше →
    • Как мы Select2 в хелпер заворачивали

        Думаю, многие знакомы с Select2. Всё в нём замечательно: и элементы красивые, и кастомизации вагон, и c ajax работает и ещё много много полезного делать умеет. Только проблема одна: инициализация довольно громоздкая (js писать надо, экшн иметь для ajax-овой подгрузки результатов и так далее). Это было не шибко удобно и решили мы сделать свою надстройку для Select2, в которой и js писать не надо, да и за пределы вьюхи уходить почти не придётся. О том как мы это делали и что получилось читайте под катом.

        Читать дальше →
        • +10
        • 20,9k
        • 7
      • Sails.js: первые шаги

          Небольшой рассказ о начальном погружении в Node.js и опыте работы с Rails-like фреймворком Sails.js

          Эта статья не претендует на внимание искушенных разработчиков, поскольку является лишь описанием некоторых впечатлений начинающего Rails-разработчика о Node.js. Надеюсь, кому-нибудь будет полезно.
          Читать дальше →
          • +3
          • 25,4k
          • 3
        • Полиморфные сквозные ассоциации в Ruby on Rails

          В статье идет речь о методе создания полиморфизма для связей many-to-many в Ruby on Rails.

          Задача


          Допустим, что необходимо разработать систему управления грузовым транспортом. В нашем распоряжении имеются несколько видов этого транспорта: поезда, вертолеты, грузовики и баржи. И известно, что каждое средство осуществляет перевозку только в строго определенные населенные пункты. Например, часть грузовиков катается по центральной части России, часть по южной, вертолеты работают в Сибири и на Камчатке, поезда вообще ограничены железнодорожным полотном и так далее.
          Каждый вид транспорта в разрабатываемой системе будет представлен своим классом: Train, Copter, Truck, Ship соответственно.
          Населенные пункты (города, поселки, научные станции, тут нас интересует не размер, а географические координаты), куда осуществляется перевозка, представлены классом Location.
          Стоит условие: к каждой единице транспорта может быть привязано сколько угодно Location. В свою очередь к каждому населенному пункту может быть привязано сколько угодно единиц транспорта разных видов.

          Читать дальше →
        • Ruby: cheatsheet для изучения. Часть 1

          • Tutorial
          Еще когда учился в школе, и интересовался языками, я считал, что нужно покупать две книги по любому языку: первую — «для чайников» и вторую — «мастер». В первой нужно было прочитать все hints — а остальное пролистать, а вторая — настольная (сейчас ее заменил Google). И подход вполне работал. Теперь, с развитием интернета, такой формат куда-то улетучился, и при самостоятельном изучении нужно по крупицам собирать данные — все материалы либо уже «pro», либо наоборот — азы, без «самого сока» и многих на практике важных вещей, или же — все сразу и в кучу на >9999 страницах.

          Это — статья-roadmap-cheatsheet для изучающих Ruby и Rails (Rails и Gems запланированы на вторую часть). Вместо того, чтобы рассказывать очередной how-to я постараюсь расписать все те вещи, которые, на мой взгляд, можно изложить кратко и емко, с упором на то, что программисту пришедшему с других языков и платформ может показаться не очевидным, антипоисковым и просто затратным по времени на изучение без подсказок — на остальное просто дам ссылки (и есть Google — но ведь не всегда, особенно в начале пути, очевидно что у него нужно спрашивать). Не смотря на то, что в природе существует множество туториалов/кастов/книг/чего угодно по чему угодно — именно такого формата мне самому всегда не хватает. И по сути, это те вещи, которые чаще всего рассказываю при вопросах «а как оно вообще?», «с чего начать?», «а как делается такая вот штука?», «а какой gem лучше?» — теперь буду кидать ссылку сюда) Кстати, пока работал над этой статьей на Хабре появилась похожая про Python — видимо, идея витает в воздухе.
          Читать дальше →
        • NodeSchool — интерактивные уроки по Node.Js

            image

            Все мы знаем теоретический курс по node.js, недавно выпущенный Ильей Кантором. Отличный материал, свежий, полный и к тому же на русском. Но он теоретический, а нам-то хочется все потрогать, попробовать самим, получая реальный опыт. В этом нам поможет, недавно стартовавший, бесплатный проект NodeSchool.
            Читать дальше →
            • +34
            • 33,6k
            • 5
          • Почему Meteor погубит Ruby on Rails

            • Перевод

            От переводчика: перевожу не ради холивара, сам RoR не знаю, но чувствую исходящее от специалистов по RoR положительное к нему отношение, мельком видел красоту и самого языка и фреймворка, но здесь не об этом. Цель перевода еще раз обратить внимание на Meteor, который развивается семимильными шагами — в начале 2014 ждем релиз 1.0. В англоязычном Интернете все кипит, а у нас тишина — лишь несколько статей.

            Почему Meteor?


            Помню как начинал заниматься Rails в 2004 году — это было «волшебное время» — и, конечно, я помню, что меня по крайней мере раз в неделю спрашивали, почему же стоит использовать rails. Я всегда отвечал одинаково: разработчикам нравится этот фреймворк, потому что он позволяет делать работу быстро и с удовольствием. К этому моменту я чуть больше месяца вплотную проработал с Meteor и готов ответить на вопрос: «Почему Meteor?» — который мне тоже часто стали задавать.
            Читать дальше →
          • Паттерны проектирования в Ruby: Шаблонный метод

            • Перевод
            • Tutorial

            Введение


            В то время как область разработки софта растет, мы разработчики постоянно пытаемся ухватиться за новейшие технологии. К счастью, ремесло написания поддерживаемого кода языко-независимо и в этой серии постов мы сфокусируемся на мощном наборе вечных инструментов: паттернах проектирования.



            Я настроятельно рекомендую книгу Russ Olsen — Design Patterns in Ruby. Наш цикл постов будет черпать вдохновение оттуда и будет чем-то вроде краткой выжимки. Таким образом, если вам понравится то что вы читаете (а я надеюсь на это!), книга будет отличным продолжением.

            Мы рассмотрим различные паттерны проектирования и научимся их применять. Сегодняшняя тема — Шаблоный метод, простейший паттерн проектирования.
            Построим что-нибудь?
          • Стриминг в Rails 4

            • Tutorial


            Что такое стриминг?


            Стриминг крутился около Rails начиная с версии 3.2, но он был ограничен исключительно стримингом шаблонов. Rails 4 же вышел с более зрелым функционалом стриминга в реальном времени. По сути это значит что Rails сейчас способен нативно обрабатывать I/O объекты и посылать данные клиенту в риалтайме.

            Streaming и Live — два отдельных модуля, реализованных внутри ActionController'а. Streaming включен по умолчанию, в то время как Live должен быть явно добавлен непосредственно в контроллере.

            Основной api стриминга использует класс Fiber (доступен с версии ruby 1.9.2). Файберы предоставляют инструментарий для потоко-подобного параллелизма в ruby. Fiber дает возможность потокам приостанавливаться и возобновлять работу по желанию программиста, а не быть по сути упреждающими.
            Читать дальше →