Рубрика «ruby» - 50

Начиная с Руби версии 1.9, появился новый синтаксис для хешей. Давайте посмотрим, как можно моментально перевести на него весь проект. То есть, если раньше мы писали нечто вот такое:
{:key => 'value', :key2 => 'value2'}

Сейчас это будет выглядеть вот так:
{key: 'value', key2: 'value2'}

Мне, лично, такое обновление очень нравится и я стараюсь использовать новый синтаксиис всегда, когда работаю с хешами в своих проектах на Руби. Некоторые проекты, над которыми я работаю в данный момент, уже имеют большое количество кода и в них синтаксис хешей все еще написан по старому. Решение, к которому я пришел, было написать конвертер,Читать полностью »

Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

Как же на самом деле надо создавать, развивать и публиковать свои гемы?

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как YARD и RSpec-2.

Создание базовой структуры

Итак, чтобы создать новый гем, достаточно выполнить команду

bundle gem YOUR-GEM-NAME 

После этого вы получите базовую структуру Вашего нового гема в каталоге YOUR-GEM-NAME с уже готовыми командами дляЧитать полностью »

Ruby / Поём вместе с Sinatra. Часть первая. Первое знакомство Доброго времени суток!

Что такое Sinatra

Sinatra — маленький, но довольно интересный DSL (Domain-specific language) фреймворк, написанный на Ruby. В отличие от Ruby on Rails он не следует типичному паттерну MVC (Model — View — Controlller). Sinatra создавался для того, чтобы «программист смог быстро создать веб приложение, написанное на Ruby с минимальными усилиями.

Для того, чтобы воспользоваться Sinatra нам неорбходимо его установить. Сделать это можно следующей командой в RubyGems:

gem install sinatra

Также нам понадобится гем под названием Shotgun. Нужен он нам для того, чтобы лишний раз не перезагружать сервер вручную. Shotgun сделает это за нас. Давайте установимЧитать полностью »

Сегодня мы рады сообщить о выпуске RubyMine 4.0 — новой версии интегрированной среды разработки для Ruby on Rails от JetBrains. Основной темой релиза стала производительность. Были значительно ускорены функции индексации и анализа кода, и, как следствие, сократилось время отклика приложения при любой работе с ним.В RubyMine 4.0 также вошли следующие изменения:
переработан и оптимизирован UI для всех поддерживаемых платформ: Windows, Mac OS и Linux

реализовано множество новых инспекций для языка Ruby, добавлены методы рефакторинга Inline Method и Unwrap

предложены новые функции поиска, улучшены панели представления структуры классов иЧитать полностью »

Ruby on Rails / Лучший способ изучить Rails
Доброго времени суток!
Предисловие

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

У меня за спиной огромный опыт работы с PHP, но сейчас я работаю Rails разработчиком. Огромную сложность для большинства людей, которые пытаются освоить что-то новое — это сам процесс обучения. Когда вы владеете каким-либо языком или фреймворком и знаете его вдоль и поперёк, переход на что-то новое неЧитать полностью »

в 7:31, , рубрики: nested set, ruby, метки: ,

Ruby on Rails / gem the_sortable_tree
TheSortableTree — гем, реализующий функционал Drag&Drop для деревьев построенных на основе гемов awesome_nested_set или nested_set.
В 2008 году, когда мы делали свою первую социалку на рельсах, я впервые столкнулся гемом better_nested_set. Гем был прекрасен (я имею ввиду по сути, не по коду, реализация тогда еще хромала) и, пожалуй, одного только его было достаточно, что бы убедить меня забыть программирование на PHP, как страшный сон.
Мы использовали гем для формирования многоуровневого дерева комментариев. Но было одно но… В тот момент не было ни одного хелпера, который бы позволял отрисовывать эти деревья. Из-за этого приходилось выдумывать свои велосипеды.Читать полностью »

Понадобилось мне, чтобы торрент клиент оповещал меня в QIP о закачке очередной порции добра.
Ринулся я искать подходящую утилиту с интерфейсом командной строки для отправки XMPP сообщений… и ничего не нашел — кругом клиенты, не заточенные для нужд автоматизации. Отсутствие очевидных кандидатов подвигло меня к написанию собственной утилиты.
Для того, чтобы быстро сваять что-то для собственного потребления я использую ruby.
Весь код помещается в 12 строк, хотя конечно можно ужать и в одну.
require 'rubygems'
require 'xmpp4r/client'

include Jabber

server, login, password = "qip.ru", "my_login", "my_password"
to, subject, body = "someone@qip.ru", "XMPP4R test", "Hi, this is my first try from XMPP4R!!!"

Jabber::debug =Читать полностью »

FactoryGirl это один из моих любимых инструментов для тестирования. Это один из первых инструментов — который я выбираю при работе вне фреймворков Ruby.
Читать полностью »