Обновить
8K+

Ruby *

Динамический высокоуровневый язык программирования

0,6
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Рецепты: Свои наборы обработчиков событий

Время на прочтение1 мин
Охват и читатели966
Думаю, большинство из пользователей Ruby работали с Rails, и использовали их обработчики событий.

validate :validate_humanity_conflicts

validates_presence_of :radius # это не обработчик события, но декларация

Польза от них очевидна:
  • Декларативность описания поведения, когда мы видим особенности классов по декларациям в его начале;
  • Возможность создавать наборы из обработчиков событий, не заморачиваясь на управление ими.
Нам, скорее всего, захочется использовать декларации для удобства описания своих собственных событий.
Читать дальше →

Легковесные веб-приложения на Ruby

Время на прочтение5 мин
Охват и читатели9.1K

Быстрая разработка


Вдохновленный постами на западных блогах вроде «Clone TinyURL with 40 lines of Ruby» или «Clone Pastie in 15 Minutes with Sinatra & DataMapper» я решил попробовать пройти и заодно описать весь процесс реализации легковесного веб-приложения на руби, от проектирования до деплоймента.

Читать дальше

Производительность IronRuby, Ruby 1.8 и Ruby 1.9

Время на прочтение1 мин
Охват и читатели1.2K
Некотое время назад, после выхода IronRuby сотрудник IBM Антонио Кангиано провел тесты по производительности и получил интересные результаты.
image
Как мы видим из графика, IronRuby уверенно шагает вперед и дает хорошие результаты производительности. Не смотря на результат графиков IronRuby не быстрее Ruby 1.9.1, чего не скажешь при сравнение с веткой 1.8.х

Как бы там не было, быстрее IronRuby или медленнее Ruby 1.9, он дает хорошую альтернативу для программистов, которые разрабатывают и развертывают свои приложения на Windows. Соединив мощности .NET и VS — IronRuby дает интересные возможности, включая выполнения Ruby кода в браузере, благодаря таким проектам как Silverlight/Moonlight и Gestalt.

На данный момент IronRuby нацелен на реализацию функционала Ruby 1.8.x.
Официальный сайта проекта IronRuby
Небольшой обзор IronRuby 0.9 от XaocCPS

Вышел IronRuby 0.9

Время на прочтение1 мин
Охват и читатели1.1K
image
Проект IronRuby на всех парах двигается к релизу. На днях было объявлено, что доступна последняя перед релизом версия IronRuby 0.9 с большим набором изменений. Далее будут минорные версии с отладкой и улучшением производительности. Что же нового добавлено в этом выпуске? А добавлено много вкусного:

* добавлена возможность вызывать коды на Python из IronRuby;
* добавлен механизм работы с Win32Ole для работы с COM-объектами и ActiveX;
* добавлена прозрачная работа с генериками .net, так что код написанный на других языках .NET может быть запросто прозрачно вызван в IronRuby;
* явная поддержка x64 через ir64.exe;
* ну и закрыто несколько багов, улучшена производительность и стабильность, все как обычно для предрелизных выпусков.

По поводу IronRuby хочется сказать еще пару слов:

* во-первых проект практически допилен, судя по тестам ironruby.info: 85.14% тестов RubySpec пройдено еще релизом 0.6;
* во-вторых, реализация Ruby на .NET позволяет использовать как имеющийся .net-код с других языков в IronRuby, так и использовать ruby-код в своих проектах написанных, например, на C#;
* в-третьих, IronRuby — это open source проект и работает под Mono, что тоже большой плюс;
* в-четвертых, IronRuby, по оценкам разработчиков, в два раза быстрее MRI, что, конечно, тоже огромный плюс.

Все это — замечательные новости для .net-разработчиков, которые присматриваются к ruby или даже уже используют коды на ruby для своих проектов. Ну и для всех рубистов это тоже отличные новости, потенциал Ruby растет и язык набирает все больше и больше поклонников.

Ubuntu on Rails

Время на прочтение1 мин
Охват и читатели2K
Недавно на просторах Launchpad.net был создан тим Ubuntu on Rails.

Миссия тима заключается в поддержании пакетов для инструментария, необходимого в Ruby/Rails разработке. В первую очередь это актуальные версии rubygems (вы все еще инсталите их из исходников?) и passenger.

В тиме участвуют ребята из Brightbox, которые до сих пор поддерживали пакеты passenger, nginx-passenger, ruby-ee для Ubuntu и Debian.

В своем блоге я опубликовал небольшой howto для тех кто хочет помочь.

Под катом инструкции по удалению rubygems установленных из исходников и установке правильных :)

Читать дальше →

плагин StringParser

Время на прочтение1 мин
Охват и читатели696
Решил как-то упорядочить избитую проблему: практически в каждом проекте приходится делать кастомный парсер, который бы выводил текст в удобочитаемом виде. И практически в каждом проекте 80% этого парсера — это решение уже решенных задач.

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

StringParser.new("what a cool url: url.com and image image.com/image.jpg<br/>").urls_to_images.urls_to_links.html_escape.string

То же самое можно оформить в блоке (это кому как больше нравится):

parser = StringParser.new("what a cool url: url.com and image image.com/image.jpg<br/>") do |p|
p.urls_to_images.urls_to_links
p.html_escape
end
parser.string

Я просто приведу названия методов, которые я уже успел закодить, а более подробнее описание можно найти в доках или в исходниках:

break_long_words
close_tags
cut
highlight_code # использует для подсветки gem ultraviolet
html_escape # в отличие от рельсового аналога принимает :except => []
newlines_to_br
urls_to_images
urls_to_links


Хотел бы пригласить всех дополнить либу и довести до ума.

Конечные автоматы в Ruby

Время на прочтение4 мин
Охват и читатели9.8K
Статья за авторством хабраюзера preprocessor, который не смог ее опубликовать по всем понятной причине. Так что все плюсики ему:)

Конечный автомат (Finite-state machine) — это такая штука, описывающая поведение объекта с конечным количеством состояний. Пути перехода из одного состояния в другое, условия этого перехода, действия выполняемые во время перехода или после. С теорией у меня всегда было плохо, поэтому больше вдаваться в нее не буду, вместо этого, для тех кто интересуется подробностями, могу порекомендовать посмотреть википедию (как же без нее) http://en.wikipedia.org/wiki/Finite-state_machine и http://ru.wikipedia.org/wiki/Конечный_автомат, а оттуда уже капать на сколько захочется. На практике это можно использовать много где, от парсинга строк (привет Ragel), до модели User в вашем веб-приложении.
Читать дальше →

RailsClubMoscow 20/06/2009

Время на прочтение2 мин
Охват и читатели680
Рельсовые конференции в Москве входят в традицию. Завидую белой завистью москвичам.

В этот раз организаторы почему-то решили выкладывать видео на YouTube и поэтому все ролики порезали на кусочки по 10 минут.

Я добавил еще одно поле в свой RSS — докладчик. Там я буду указывать имя и хаброник расказчика.

Читать дальше →

New Relic — полный мониторинг вашего RoR приложения

Время на прочтение2 мин
Охват и читатели42K
Перешел тут недавно на новый VDS для своих сайтов на хостинг webbynode.com. Очень все по-рельсовому сделано. Но сейчас речь не о них.

При регистрации предложили сделать аккаунт в приложении мониторинга RoR сайтов. Называются New Relic. Посмотрел презентации, и надо признаться, очень впечатлило. Как промо акция, там дают недельный gold-account, где можно воспользоваться всеми отчетами. Это, друзья мои, стоит внимания.

Дашборд для лайт версии
New Relic RPM - Overview (color_mondays)
Читать дальше →

BDD с помощью Cucumber

Время на прочтение3 мин
Охват и читатели106K
Если вы привыкли сначала писать код, а потом его тестировать, то с BDD такой подход совсем не уместен. Сила BDD в том, что он помогает вести разработку начиная со стадии оформления ТЗ. Для BDD это список свойств (фич), который уместно писать вместе с заказчиком.

Но самое главное, что по этому же списку происходит автоматическое тестирование проекта. Инструмент тестирования (в нашем случае это Cucumber) методично пройдет по вашему перечню и дотошно проверит реализацию каждой фичи.
Читать дальше →

Простой способ получить поля модели в ActiveResource

Время на прочтение1 мин
Охват и читатели798
Если вы пробовали использовать REST, то знаете, что при подключении ресурса через ActiveResource возникает проблема в отсутствие схемы ресурса.
небольшое решение

Быстрая разработка GUI приложений на Ruby

Время на прочтение5 мин
Охват и читатели29K

Вступление


На хабре, по-моему, уже почти все возможные графические API для руби рассматривались. Но почему-то все воспринимают и подают эти самые API исключительно как чистый код. Никаких тебе графических дизайнеров, никакой скоростной разработки GUI — сиди, вычисляй координаты ручками, подгоняй как надо. А зачем иначе, ведь на руби серьезных GUI приложений не написать.
А вот и нет! Если уж на то пошло, то на руби можно написать даже Wolfenstein. Но начинать лучше все-таки с чего-то менее глобального :)

Подготовка


Итак, попробуем написать что-нибудь не очень простое, достаточно GUI'евое и желательно не заморачиваясь на вычисление координат.
Читать дальше →

Мини-конференция по Ruby и Rails — Петербург

Время на прочтение1 мин
Охват и читатели666
Мы планируем очередную мини-конференцию по Ruby и Rails 31 мая в 16.00 в iClub (iclub.su).

Выступления:

— Илья Заяц расскажет об основах использования memcached в Rails.

— Дмитрий Жемеров (Development Lead в JetBrains)
расскажет о Ruby IDE RubyMine

— Роман Чернятчик (Developer в JetBrains)
расскажет о CI и билдсервере TeamCity

Адрес iClub:
Конюшенная Б. ул., 12/10
На ЯКарте

Приходите, будет интересно!

Ближайшие события

Ruby + Shoes = Миленький GUI

Время на прочтение4 мин
Охват и читатели11K
Статья изначально публиковалась для личного блога, но думаю те кто начинают изучать Ruby, или просто хотят написать GUI к приложению сочтут ее полезной.

Вступлений не будет. Тема сегодня — Shoes. Такой небольшой kit, для создания GUI к приложениям на Ruby. Впервые я о нем них услышал, когда пытался понять, как сделать на руби нечто графическое. Ответ пришел сразу, причем в двух(а то и трех вариантах):

  • Qt
  • wxWidgets
  • Tk
  • Shoes


Посмотрел пункт первый, затем второй. Узнал, что множество из ныне живущих популярных GUI-приложений на C++ имеют под собой Qt-основу :) В общем, вызнал много полезного да и вообще позитивного. На шузы (нравится их так называть) я почти не смотрел, а зря.
Читать дальше →

Vim Ruby Debugger

Время на прочтение3 мин
Охват и читатели6.5K
До недавнего времени я писал Ruby код в Netbeans. Штука клевая и очень удобная, но я давно заглядывался на Vim, уж больно он мощный текстовый редактор, бобам и не снилось. Пытался несколько раз на него перейти, но как только встречался какой-то затык в коде, закрывал Vim, открывал Netbeans, ставил брейкпоинт и начинал разбираться что не так. В общем, привык я к отладчику.

Помучившись некоторое время, пришла идея написать Ruby дебаггер под Vim. Открыл код rails.vim, NERDTree.vim и начал учиться VimScript'у. Так что спасибо tpope и Marty Grenfell за уроки (хотя наверно они никогда этого не прочтут и не узнают об этом). Плагин можно сейчас лицезреть на гитхабе.
Как это установить и как этим пользоваться

Ручная установка Ruby 1.8.7 и Rails на Windows XP

Время на прочтение2 мин
Охват и читатели3.9K
Написал однажды для себя, но подумал — «А что, если кому-то тоже пригодится?»

Итак, установим Ruby. Для этого нужно:

  1. скачать бинарники для Ruby 1.8.7 здесь: http://www.ruby-lang.org/en/downloads/. Распаковать их в желаемую директорию (например в c:\ruby).
  2. открыть My Computer → Properties → Advanced → Enviromental Variables, и дописать в переменную Path такую строку "с:\ruby\bin\" (это зависит от того, куда вы распаковали бинарники)
  3. скачать пакет zlib здесь: http://www.zlib.net/zlib123-dll.zip. Из него достать файл zlib1.dll, переименовать его в zlib.dll и поместить по адресу с:\ruby\bin\
  4. скачать пакет iconv здесь: http://sourceforge.net/project/showfiles.php?group_id=25167&package_id=51458. В архиве отыскать файл iconv.dll и скопировать его по адресу с:\ruby\bin\
  5. скачать и установить библиотеку OpenSSL отсюда: http://www.slproweb.com/products/Win32OpenSSL.html
  6. скачать rubygems здесь: http://rubyforge.org/frs/?group_id=126. Распаковать архив, отыскать файл setup.rb и запустить в консоли команду ruby setup.rb
Теперь необходимо установить Rails. Для этого нужно:
  1. в консоли выполнить команду gem install rails
  2. в консоли выполнить команду gem install sqlite3-ruby -v 1.2.3
  3. скачать и библиотеку SQLite3 здесь: http://www.sqlite.org/download.html. Распаковать из скачанного архива файл sqlite3.dll в папку с:\ruby\bin\
Последние два пунка нужны для того, чтобы запустить Rails-приложение «из коробки», где изначально в конфигурации прописано использование базы данных SQLite.

Теперь необходимо проверить, как работает Rails. Для этого нужно:
  1. в консоли выполнить выполнить команду rails my_projects_name_with_path (например: "rails d:/my_blog") – тем самым мы создадим каркас пустого приложения
  2. перейти в папку с созданным каркасом и выполнить в консоли команду ruby script/server – тем самым мы запустим нашу пустую Rails-программу
  3. в браузере перейти по адресу localhost:3000
  4. на открывшейся странице нажать по ссылке "About your application's environment" – тем самым должно быть показано версии установленых компомент Rails

Спасибо добрым людям, однажды ответившим на вопрос об установке Ruby на сайте stackoverflow.com тем самым сподвигнув меня разобраться во всём в деталях и написать это небольшое руководство-памятку.

Настройка хостинга heroku.com + custom domain name *для новичков

Время на прочтение2 мин
Охват и читатели29K
Итак, подобного материала я нигде не видел, так что считаю необходимым опубликовать данную информацию. image
  • Регистрируемся на Heroku.com письмо с линком приходит быстро, мне пришло уже через 30 секунд.
  • Далее необходимо установить git, я работал в ОС windows (как устанавливать в linux я думаю знают те, кто его используют), вот версия для win, если использовать портативную версию, то необходимо в интерфейсе командной строки, перейти в директорию (куда распаковали) git, и запустить либо оболочку git-bash.bat (лично мне удобнее с ней работать), либо использовать команды только лишь cmd, git-cmd.bat.
  • Далее, необходимо установить gem heroku командой (sudo) gem install heroku у него есть зависимости с другими гемами, вообще они сами установятся автоматически, ну а если нет, то вот ссылки для них: rest-client, launchy, json.
Читать дальше →

Поиск и размещение вакансий для ruby-профессионалов

Время на прочтение1 мин
Охват и читатели1.2K
Сегодня наша команда (hashtrain.com) запустила очередной сервис — RubyJobs.ru.

Здесь компании могут разместить свои вакансии, а руби-профессионалы (и новички ;) найти интересную работу.

Использование сервиса совершенно бесплатно и даже не требует регистрации.

Мы надеемся, что RubyJobs.ru будет полезен всем вам. Приятного рабочего дня!

RailsClubMoscow

Время на прочтение2 мин
Охват и читатели529
В 19-го апреля в Москве прошла дегустация хреновухи под прикрытием RailsConf. По размаху конференция не сравнима с аналогичными в США которые я описывал в этом блоге, но сам факт ее проведения меня очень радует.

Доклады будут интересны исключительно рубистам и рельсовикам.

Все доклады были на русском языке. Всреднем доклады длились 15-20 минут. К сожалению, в запись не попали вопросы к докладчикам и ответы на них.

Одной из отличительных черт этой конференции является присутствие многих (всех?) докладчиков на хабре. Поэтому можете задавать вопросы по теме в комментах и думаю вы получите ответы.

Читать дальше →

Делаем gem для RubyGems

Время на прочтение3 мин
Охват и читатели2.9K

Собираем камешки для Ruby


Зачастую бывает так, что таскаешь из проекта в проект какие-то куски кода. Такие куски очень удобно выносить во внешние файлы, модули. Для этого в Ruby существует RubyGems — менеджер приложений и библиотек, оформленных в один файл-пакет — gem. И собрать такой гем, а главное, сделать его доступным для любой машины, подключенной к интернету, оказалось очень просто.

Итак, gem за пол-часа