Программирование на Ruby - Новости

Ruby & Oracle

Возникают задачи, при которых необходимо работать с БД Oracle.

Это может быть работа как с основной БД (подробный туториал, англ.), так и небольшие задачи по импорту из локальной БД.

Разберем последний случай:

  1. Устанавливаем клиент (офф.документация, англ.)
    Необходимо скачать с офф.сайта несколько файлов отсюда, и распаковать в /opt/oracle. Также важно установить значение переменной окружения LD_LIBRARY_PATH.
    *В документации существует пометка, что даже для 64-битных ОС необходимо скачивать 32-битную версию. Для моего случая, это не сработало и пришлось устанавливать 64-битную версию.

  2. Установить gem install ruby-oci8

При доступности к БД Oracle, мы можем выполнить такой скрипт:

require 'oci8'
db = OCI8.new(login, password, host/db)
Post.all.each do |post|
  cursor = db.parse("INSERT INTO POST (POST_NUM, TITLE)
                    VALUES (:post_num, :title)"
)
  cursor.bind_param(':post_num', post.id)
  cursor.bind_param(':title', post.title)
  cursor.exec
end
db.commit

Небольшое замечание: в сам SQL запрос нельзя вставить значение через #{psot.id} и #{post.title}, для этого существует метод указателя :bind_param. Существуют различные способы для биндинга переменных в запрос (больше способов в документации).
Чтобы данные сохранились, необходимо выполнить db.commit.

Источник: rubyflow.ru

Как добавить заголовок к запросу Rack::Test

Райн Бигг (Ryan Bigg) написал короткий, но полезный пост о том, как установить нужный заголовок в тестах использующих Rack::Test.

Быстрый ответ выглядит так:

it "test" do
  header 'Test-Header', 'Test value'
  get '/test'
  expect(last_response.status).to eq(200)
end

Готово! Вы установили заголовок Test-Header со значением "Test value".

Немного подробнее в статье "Add header to Rack::Test request".

Источник: rubyflow.ru

transitions - еще одна реализация конечных автоматов на Ruby

Все уже знают, что такое конечные автоматы, поэтому я просто приведу пример DSL ;)

class Product
  include ActiveModel::Transitions

  state_machine do
    state :available # first one is initial state
    state :out_of_stock, :exit => :exit_out_of_stock
    state :discontinued, :enter => lambda { |product| product.cancel_orders }

    event :discontinued do
      transitions :to => :discontinued, :from => [:available, :out_of_stock], :on_transition => :do_discontinue
    end
    event :out_of_stock, :success => :reorder do
      transitions :to => :out_of_stock, :from => [:available, :discontinued]
    end
    event :available do
      transitions :to => :available, :from => [:out_of_stock], :guard => lambda { |product| product.in_stock > 0 }
    end
  end
end

Библиотека transitions имеет большое количество интересных возможностей, которые хорошо описаны в README. Смотрите все подробности на GitHub - github.com/troessner/transitions

Источник: rubyflow.ru

TheViking 1.0

TheViking - обеспечивает доступ к антиспам сервису Akismet для руби и рельсовых приложений

TheViking это репак гема Viking без поддержки сервиса Defensio (который видимо умер)

Источник: rubyflow.ru

TheActualLocales released

https://github.com/the-teacher/the_actual_locales

Гем помогает найти только актуальные значения в больших файлах локализации i18n

Проблема

Иногда очень хочется избавится от неактуальных записей в файлах локализации. Но после нескольких месяцев поддержки проекта может оказаться трудным найти актуальные ключи в файлах локализации i18n.

Решение

Этот простой гем патчит методы i18n.translate и i18n.t и сохраняет в отдельный YAML файл все вызванные ключи локализации с их значениями.

Как это работает

  • Установите гем в dev окружение
  • Запустите приложение
  • Посетите нужные страницы для нужных языков
  • Изучите файл лога /log/actual_locale.LOCALE_NAME.yml
  • После получения лога - удалите гем

Источник: rubyflow.ru

Unread

Unread - это библиотека для управления статусами read/unread объектов ActiveRecord. По заявлению автора, скорость работы - ее основная отличительная особенность.

Кроме невероятной скорости, Unread помогает:

  • установить статус "отметить как прочитанное" для одной записи,
  • помечать как прочитанные сразу несколько записей,
  • позволяет выбирать "непрочитанные" записи для отдельных пользователей.

Примеры кода и подробное описание принципа работы читайте в README на GitHub - github.com/ledermann/unread.

Источник: rubyflow.ru

Как становятся программистами?

13 интервью с матёрыми прогерами (80% - рубисты\рельсовики) из таких крутых компаний как Aviasales, Nokia, Social Quantum и другие. Мы опросили каждого о том, с чего начинался их путь в программировании, что помогло, чего не хватало, какую роль сыграло высшее образование, какую - самообразование и т.п.

http://mkdev.me/categories/kultura/posts/kak-stanovyatsya-programmistami-13-intervyu-s-ekspertami

Источник: rubyflow.ru

Бесплатный вебинар "Как стать крутым RoR-разработчиком, научиться создавать production-ready приложения и найти работу"

25 ноября 2014 г, в 20:00 по Москве состоится бесплатный вебинар от онлайн-школы Thinknetica "Как стать крутым RoR-разработчиком, научиться создавать production-ready приложения и найти работу".

Регистрация здесь.

Вебинар для тех, кто начал изучать RoR или уже имеет некоторый опыт работы с этим фреймворком.

На вебинаре вы узнаете:
- о лучших практиках и подходах, которые используют профессиональные RoR-разработчики
- что нужно знать и уметь, чтобы создавать реальные, production-ready, приложения
- план изучения RoR, который поможет получить необходимые навыки и знания
- о том как искать работу и на какую зарплату можно рассчитывать
- ответы на интересующие вопросы

Источник: rubyflow.ru

Как читать логи в Rails

Статья, расчитанная на самых маленьких в мире Rails: подробный разбор логов из рельсового приложения, показывается как много важной информации оттуда можно извлечь и как это ускоряет понимание фреймворка. Ну и в целом о важности логов.

http://mkdev.me/categories/dlya-samyh-malenkih/posts/nezamenimyy-navyk-smotret-v-logi

Источник: rubyflow.ru

Rails это просто Ruby

Желая научиться создавать крутые сайты и веб-приложения и избрав в качестве инструмента для этого Ruby on Rails, начинающие программисты нередко оказываются настолько очарованы известной "магией" фреймворка, что даже не задумываются о том, что лежит в её основе.

В этой статье автор показывает, что Ruby on Rails это не более чем просто Ruby, без какой либо магии. Очень полезно для новичков.

http://mkdev.me/categories/dlya-samyh-malenkih/posts/rails-eto-prosto-ruby

Источник: rubyflow.ru

Expert Fridays – Функциональное программирование

12 декабря в рамках Expert Fridays состоится заключительный IT-митап 2014 года, на этот раз посвященный функциональному программированию.

alt text

В этом году мы успели успешно провести front-end, back-end, mobile и devops митапы. Обсудить десятки актуальных вопросов, приобрести полезную информацию и завести новые приятные знакомства среди экспертов IT-сферы.

На этот раз мы ждем всех желающих обсудить рекурсивные чистые функции высшего порядка, функциональные языки Erlang, Haskell, Clojure, F#, а также функциональное программирование в Ruby, Python, Javascript.

Для участия в наших традиционных барных посиделках в качестве спикера с мини-докладом на 10-15 минут или просто слушателя, необходимо заполнить небольшую регистрационную форму на сайте (одну из представленных форм в зависимости от формы участия): http://expert-fridays.ru/

Место проведения: Россия, г.Казань, ул.Мусина 61в (navigator\campus)
Начало: 19:00

За дополнительной информацией обращайтесь:
Константин Макарычев (Provectus): +7 987 263 2641

До скорой встречи!

Источник: rubyflow.ru

Курс "Профессиональная разработка на Ruby on Rails"

Открыт новый набор на курс "Профессиональная разработка на Ruby on Rails".

В декабре 2014 нашему курсу исполняется 1 год, и мы приготовили много интересного, чего еще не было в предыдущих потоках!

Этот курс предназначен для тех, кто уже знает основы RoR и хочет двинуться дальше, чтобы стать настоящим профессионалом.

После окончания курса ты будешь иметь все необходимые навыки и знания, чтобы устроиться на работу junior-разработчиком, и при этом, ты сможешь работать над реальными проектами, принося пользу команде с первых минут.

Большинство наших участников находят работу в качестве RoR-разработчика в 1-й месяц после окончания курса, а некоторые еще и до его окончания.

Кстати, если ты уже работаешь RoR-разработчиком, но чувствуешь, что тебе нужно подтянуть уровень, тогда этот курс также будет тебе полезен. Записывайся!

Источник: rubyflow.ru

gem TheDataRoleBlockRails

Сделал микс решений из двух популярных гемов ai/evil-blocks и kossnocorp/role. Андрей Ситник предлагает использовать аттрибуты data-role и data-block для написания JS и предлагает решение для SLIM, Coss - автор оригинального плгина для JQ.

Взяв лучшее из обоих решений, и собрав в кучу патчи для SLIM и HAML с косметическими допилами - получился этот гем.

https://github.com/the-teacher/the_data_role_block_rails

Источник: rubyflow.ru

Как зарабатывать $450 000 в год Ruby on Rails разработчиком

Наткнулся на ycombinator на топик Девелоперы с ЗП от 200 000 $ в год и больше, как вам это удалось. Впринципе, суть одна – работай больше и лучше, налаживай связи с большим числом людей. Но что самое интересное в этом топике – пост от разработчика с зарплатой 450k в год. Это больше миллиона рублей в месяц (примерно 1 600 000 р\мес). Посидел и оформил вольный перевод этого поста.

http://fodoj.com/categories/experience/posts/the-one-about-450k-developer

Источник: rubyflow.ru

gem TheLog. Берегите свои суставы

Представляю проект из серии гем за 5 минут :)

Устали от бесконечного набора console.log в своем coffeescript коде? Опять забыли вычистить console.log из продакшн кода и в консоль валятся отладочные сообщения?

Хватит это терпеть!

Замените долбаный console.log на log и поберегите свои суставы.

Установите гем прямо сейчас и:

  1. Экономьте 8 символов каждый раз, когда нужно вывести сообщение в консоль
  2. Управляйте выводом отладочных сообщений в одном месте через data атрибут или одну точку конфига в веб консоли.
  3. console.log больше не сломает JS в старых осликах

Вау! Да это праздник какой-то!

https://github.com/the-teacher/the_log

Источник: rubyflow.ru

Коллекция "Practicing Ruby" - теперь доступна бесплатно

Грегори Браун (Gregory Brown) - является автором многих замечательных проектов, один из которых - Practicing Ruby.

Practicing Ruby - это коллекция уроков на различные темы, касающиеся Ruby и программирования в целом.

Если вы еще не являетесь читателем и подписчиком, то очень рекомендую обратить внимание на этот уникальный источник знаний - https://practicingruby.com

Источник: rubyflow.ru

Вход для пользователей