Как стать автором
Поиск
Написать публикацию
Обновить
1.47

Ruby *

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

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

BDD с помощью Cucumber

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров28K

Вступление


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

Подготовка


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

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

Время на прочтение1 мин
Количество просмотров616
Мы планируем очередную мини-конференцию по 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.4K
До недавнего времени я писал Ruby код в Netbeans. Штука клевая и очень удобная, но я давно заглядывался на Vim, уж больно он мощный текстовый редактор, бобам и не снилось. Пытался несколько раз на него перейти, но как только встречался какой-то затык в коде, закрывал Vim, открывал Netbeans, ставил брейкпоинт и начинал разбираться что не так. В общем, привык я к отладчику.

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

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

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

Итак, установим 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 мин
Количество просмотров490
В 19-го апреля в Москве прошла дегустация хреновухи под прикрытием RailsConf. По размаху конференция не сравнима с аналогичными в США которые я описывал в этом блоге, но сам факт ее проведения меня очень радует.

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

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

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

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

Делаем gem для RubyGems

Время на прочтение3 мин
Количество просмотров2.8K

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


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

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

Мини-конференция по ruby и rails в Москве

Время на прочтение1 мин
Количество просмотров582
Привет, хабрачеловек!

Мы организовали небольшую конференцию про ruby и ruby on rails в Москве, в клубе «Гоголь», 19-го апреля в три часа дня.
Вот чего интересного в ней будет:
  • Несколько коротких презентаций и докладов по 5-15 минут.
  • Общение с коллегами.
  • Хороший кофе и вкусные сандвичи: р

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

Мы ждем тебя, %username%!

Пишем SQL на чистом Ruby

Время на прочтение2 мин
Количество просмотров5.4K
Ruby — это гибкий язык, позволяющий создавать на своей основе различные DSL. Появилась идея написать DSL для SQL-запросов (для SELECT'ов), максимально приближенный к оригиналу. Кажется, получилось. Получившаяся штука называется Boroda. Далее следуют примеры кода.

require 'boroda'

sql = Boroda.build do
  from :posts, :users
  select posts.*
  where (posts.author_id == users.id) & (users.name == 'Vlad Semenov')
end

Получим:

SELECT posts.*
FROM posts, users
WHERE (posts.author_id = users.id) AND (users.name = 'Vlad Semenov')


Если кто не понял — мы пишем SQL-запросы на чистом Руби. Теперь попробуем что-нибудь посложнее.
Читать дальше →

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

MountainWest RubyConf 2009

Время на прочтение5 мин
Количество просмотров526
13 и 14 марта этого года в штате Юта прошла очередная конференция посвященная языку программирования Ruby.

Я заметил, что на этой конференции более короткие доклады по сравнению с предидущими конференциями. Докладчики, восновном, вкладывались в 25-30 минут, в то время как в ноябре прошлого года на RubyConf 2008 им было нужно около часа на каждое выступление.
Кстати, с удивлением заметил фирму Microsoft среди спонсоров конференции. Несмотря, на полуживой IronRuby как-то у меня не ассоциируется эта организация с open-source сообществом вообще и R*-сообществами в частности.

Интересно будет, восновном, рубистам и рельсовикам. Некоторые доклады могут быть интересны Java-программистам желающим мигрировать в сторону Ruby/Rails.

Лично мне понравились, и поэтому рекомендую, следующие доклады: The Great Rails Refactor и BDD with Cucumber.

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

Method Finder для Ruby по мотивом Squeak'овского

Время на прочтение2 мин
Количество просмотров751
После поста пользователя aovoe захотелось что-то аналогичное для ruby. Наспех был накидан код, который умеет искать по селекторам без аргументов (например «hello».upcase).
Примеры:

  irb(main):001:0> "hello".suggest_method("HELLO")
  => ["upcase", "swapcase"]
  
  irb(main):002:0> "hello".suggest_method("Hello")
  => "capitalize"
  
  irb(main):007:0> Date.parse('13 Sep 2009').suggest_method(256) # Programmer's Day
  => "yday"
  
  irb(main):009:0> 1.01.suggest_method(1)
  => ["prec_i", "round", "truncate", "to_i", "to_int", "floor"]
  
  irb(main):010:0> 1.01.suggest_method(2)
  => "ceil"

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

Встреча в Питере: Воскресенье, 29 Марта

Время на прочтение1 мин
Количество просмотров607
После встречи питерских программистов в iClub-е возникла идея провести отдельную встречу руби-прогеров.
Чтобы избавить всех от прелестей бесконечных обсуждений где и когда, я забил место и время. И я подумал, что для разнообразия будет круто провести встречу утром в Воскресенье, хаха.

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

Ruby — проксирование методов класса

Время на прочтение4 мин
Количество просмотров3.8K
Иногда возникает необходимость, запроксировать (обернуть) методы класса в свой код.

Например:
  • запустить их в тредах
  • навесить фильтры до и после
  • померить производительность

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

Ruby — async_fu, простота использования тредов

Время на прочтение2 мин
Количество просмотров1K
Я не очень давно работаю с ruby но почти в первые дни появилась острая нужда запускать долго играющие функции, которые не должны блокировать работу основной программы.

Готового и простого решения я не нашел, посему начал изобретать велосипед.

На данный момент библиотека позволяет:
  • организовывать асинхронные вызовы методов вашего класса
  • гарантирует выполнение всех потоков перед выходом из программы

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

Вклад авторов