Обновить
8K+

Ruby *

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

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

Ruby and Rails Barcamp 3 состоится в Киеве 20 марта

Время на прочтение1 мин
Охват и читатели751
Приглашаем Вас принять участие в третьем Ruby and Rails Barcamp, который состоится в Киеве 20 марта.

Чтобы улучшить качество программы было решено ввести процедуру голосования за доклады.
Теперь чтобы стать докладчиком баркемпа необходимо заполнить небольшую анкету до 28 февраля.
Затем список заявок будет выставлен на открытое голосование, и в программу баркемпа войдут те доклады, которые будут иметь большее количество голосов.
Читать дальше →

Bundler — менеджер для управления gem'ами

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

Что такое Bundler?


Это менеджер для управления зависимостями gem'ов в ruby приложениях. Эта утилита позволяет легко устанавливать необходимые gem'ы для вашего приложения, при этом вовсе не зависеть от установленных в системе. Если вы использовали Rails для своих разработок, то вы вспомните, как задавали зависимости gem'ов c помощью config.gem в enviroment.rb, Bundler решает эту задачу намного удобнее и проще. Его включили в Rails 3.0 по умолчанию и теперь, именно он используется для управления зависимостями gem’ов в данной версии фреймворка. Эту утилиту можно использовать для любого ruby фреймворка.
Читать дальше →

Особенности компиляции в MacRuby

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

Предисловие


Давеча слушал я Ruby NoName Podcast (кстати, весьма всем рекомендую), в котором услышал новость, что MacRuby 0.5 вышел из стадии бета-версии. Также господа ведущие сообщили, что в состав пакета MacRuby входит великолепный компилятор Ruby — MacRubyC, который теперь умеет компилировать в динамические библиотеки. Я, естественно, заинтересовался и решил поэкспериментировать.

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

12.02 — Ruby-встреча в Петербуре — хостинг

Время на прочтение1 мин
Охват и читатели855
image

Когда: 18:30, пятница, 12 февраля 2010.
Где: м. Политехническая, учебный центр Авалон (ФПО СПбГПУ, ул. Обручевых, д. 1), аудитория 107.

Тема встречи — настройка сервера для приложений на Rails/Ruby. Прямо на встрече мы настроим VDS*, для последующего размещения сайта сообщества (который разумеется будет написан на Ruby).

Я уверен многим разработчикам приходится (и это полезно) иногда надевать шляпу системного администратора чтобы поднять сервер для своего проекта. Вероятно многие имеют представление о том, как это сделать, но есть какие-то белые пятна, желание лучше разобраться или узнать про альтернативные способы. Поэтому мы хотим собраться и попробовать настроить реальный production сервер. Максим Филатов будет рулить процессом и покажет один из способов настройки.

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

* — любезно предоставленный locum.ru.

Заполнение БД тестовыми данными при помощи Populator и Faker

Время на прочтение1 мин
Охват и читатели7.2K
Часто возникает необходимость протестировать приложение на предмет работы с реальными данными. Причём, данные должны быть максимально приближены к реальным как с качественной стороны, так и с количественной. Работу по наполнению базы такими данными значительно упрощают гемы Populator и Faker.
Читать дальше →

Shoulda TextMate bundle

Время на прочтение1 мин
Охват и читатели773
Shoulda TextMate bundle — проект который будет интересен всем кто работает с TextMate и пишет тесты при помощи Shoulda.

Исходный код выложен на Github поэтому все желающие могут присоединиться к работе над проектом http://github.com/shaliko/shoulda-tmbundle

Coffeescript — Javascript в силе Ruby

Время на прочтение2 мин
Охват и читатели22K
CoffeeScript — язык, чтобы писать на JavaScript с более удобным синтаксисом.

Краткий пример на CoffeeScript (с jQuery):
jQuery($ =>
 notified: false
 $('a').click( =>
  if notified
   true
  else
   $('.alert').show()
   false..
 ).
)

Этот код будет транслирован в:
jQuery(function($) {
  var notified = false;
  $('a').click(function() {
    if (notified) {
      return true;
    } else {
      $('.alert').show()
      return false;
    }
  })
})

Но обо всём по порядку

Визуальный сахар для ActiveRecord

Время на прочтение4 мин
Охват и читатели1.3K
Каждый, кто разрабатывал приложение на RoR знает, что в консоли (./script/console) не слишком удобно просматривать ActiveRecord объекты, они имеют мягко говоря не читабельный вид

Например в моем последнем проекте есть модель Schema
Читать дальше →

Вышел черновик спецификации Ruby

Время на прочтение1 мин
Охват и читатели824
Дорогие друзья

Язык Ruby своими превосходными качествами привлекает огромное количество программистов, особенно web-разработчиков. Однако спецификация Ruby до сих пор не стандартизирована. Information-technology Promotion Agency, Япония (IPA) собрало рабочую группу стандартизации языка «Ruby Standardization Working Group» в октябре 2008 года, для разработки спецификации. С тех пор рабочая группа выработала черновик спецификации.

Так как первый черновик закончен, мы обращаемся к пользователям и разработчикам Ruby-сообществ за дополнениями и комментариями.

Собирая и просматривая комментарии от Вас, мы хотим доработать черновик спецификации. Дополненный документ мы направим в японский комитет отраслевых стандартов Japanese Industrial Standards Committee (JISC) для того чтобы он приобрел статус японского стандарта (JIS).
После публикации его как JIS, мы предложим его на рассмотрение в Международную организацию стандартизации (ISO/IEC JTC1) для создания международного стандарта.

Мы с нетерпением ждем большого количества комментариев и активных дискуссий вокруг документа

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

Ikuo NAKATA
Глава рабочей группы стандартизации Ruby
IPA

Здесь можно прочесть спецификацию и оставить свои комментарии

Автозавершение для Rake

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


Автозавершение в bash’е по Tab’у — это невероятно удобная вещь. И оно точно нужно для rake, которым каждый программист на Ruby пользуется часто.

Особо ленивые программисты уже давно прописали самодельные скрипты в своих .bashrc. Но настоящий дзен-программист не должен любить велосипеды и чтит репозитории и пакеты. Поэтому я собрал скрипт в пакет и выложил в Ubuntu on Rails PPA.

Установка


Ubuntu
  1. Добавляем Ubuntu on Rails PPA:
    $ sudo add-apt-repository ppa:ubuntu-on-rails/ppa
  2. Устанавливаем пакет rake-completion:
    $ sudo apt-get install rake-completion
Другие UNIX
  1. Клонируем репозиторий:
    $ git clone git://github.com/ai/rake-completion.git
  2. Копируем скрипт в системную папку:
    $ sudo cp rake-completion/rake /etc/bash_completion.d/.
Читать дальше →

Ruby-встреча в Петербурге: Инструменты разработки

Время на прочтение1 мин
Охват и читатели716
Очередная встреча ruby-программистов состоится в 20-го ноября
(пятница) в 18:30 в здании учебного центра «Авалон» (он же ФПО СПбГПУ)
по адресу ул. Обручевых, д. 1, аудитория 102, первый этаж,
направо, первая дверь с правой стороны.

В этот раз тема — инструменты разработки.

  • Антон Асташов, автор Vim Ruby Debugger, удаленно из ночного
    Красноярска представит свое детище, а так же расскажет почему и как он
    использует Vim.
  • Федор Кочерга продемонстрирует Emacs, а так же свою версию его
    логотипа.
  • Андрей Ситник расскажет как из Gedit сделать монстра, всего лишь
    установив пакет дополнений Gmate, в разработке которого он участвует.
  • Илья Заяц покажет, чем хорош Textmate для Ruby-разработки


Приходите — устроим аналоговый holy war, а так же пожалуйста,
ggVG"+y"+gP это объявление.

Тинейджер улучшил производительность Ruby

Время на прочтение1 мин
Охват и читатели850
Интересный случай произошел в Японии. Молодой подросток, который участвовал летом в сборе «Security and Programming Camp 2009», под руководством учителя занимался улучшением производительности Ruby 1.9. Достигнутые им успехи можно назвать отличными, а если принять во внимание возраст, то удивительными. Подросток смог ускорить выполнение некоторых методов Ruby 1.9 (которая, напомню, славится своей производительностью относительно версии 1.8) в среднем на 8%. При этом максимальное ускорение составило даже 63%.

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

via yokolet.blogspot.com/2009/11/japanese-teenage-boy-improved-ruby-19.html

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

BDD/TDD — Учимся писать матчеры

Время на прочтение3 мин
Охват и читатели4.3K
Разработка, основанная на специфицировании поведения (BDD), — один из краеугольных камней философии Ruby.

Очень удачной реализацией BDD является всем знакомый RSpec. Одной из замечательных черт RSpec является его расширяемость.

Так, мы используем RSpec совместно с Factory Girl (хотя стоило бы перейти на Machinist), RR (прекрасный каркас для заглушек), Spork и недавно перешли с Shoulda на Remarkable.

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

Хорошим способом сделать это является создание нового «ожидателя» (matcher).

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

RubyFlow.ru перешагнул рубеж в 500 читателей

Время на прочтение1 мин
Охват и читатели589
Хочу поделится приятной для нас новостью о том, что проект RubyFlow.ru сегодня перешел рубеж в 500 читателей через RSS. А по случайному совпадению сегодня здесь также была опубликована семисотая статья.

Практически каждый день на RubyFlow.ru публикуются статьи о событиях связанных с Ruby. И любой может стать их автором.

Все материалы доступны как просто на сайте, так и через RSS, а также в твиттер-канале @rubyflowru.

Спасибо всем авторами статей и их читателям! :)

Руби-встреча в Петербург: noSQL

Время на прочтение1 мин
Охват и читатели980
Когда: 15 октября (четверг) 2009 в 18:30.
Где: Учебный центр «Авалон».

Тема этой встречи — noSQL, не реляционные базы данных. Будет два доклада:
Алексей Газиев за еду расскажет про MongoDB.
Роман Снитко — про TokyoCabinet.

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

Также мы можем выделить немного времени для различного рода
объявлений. Например, если в Питере есть работодатели, которые ищут
Ruby-программистов, то мы с удовольствием предоставим им время
рассказать о своих вакансиях. Либо если есть какие-то проекты, которым
нужна помощь. Просто предупредите заранее и приходите на встречу.

Ruby-новая встреча в Петербурге

Время на прочтение1 мин
Охват и читатели577
Мы предлагаем возобновить ruby-встречи, проводимые в Петербурге.
Приглашаются абсолютно все желающие.

Место:

Встреча состоится 15 сентября (вторник) в 18.30 в здании учебного
центра «Авалон» (он же ФПО СПбГПУ) по адресу ул. Обручевых, д. 1, аудитория 102, первый этаж,
направо, первая дверь с правой стороны.
Читать дальше →

Интеграция с TeamCity

Время на прочтение2 мин
Охват и читатели4.4K
В процессе разработки проекта на Ruby 1.9 нам потребовалось использовать систему непрерывной интеграции.

CruiseControl.rb в своё время не подошёл из-за несовместимости с Ruby 1.9, в результате мы остановились на бесплатной TeamCity Professional под Linux.

Начальная настройка тривиальна, потребует лишь распаковки дистрибутивов TeamCity и JRE, а также настройки переменной JRE_HOME.

Прямо из коробки мы можем получить запуск тестов Test::Unit, RSpec, с оценкой покрытия rcov.

Но нам потребовалось большее, например, использовать кастомные тесты.

Рассмотрим тривиальный пример — тесты на компилируемость (например, исходного кода, файлов в формате YAML etc.).

image

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

VIM как Rails IDE в стиле TexMate благодаря набору скриптов от Akita

Время на прочтение4 мин
Охват и читатели24K
Это мой первый пост на Хабре, прошу не судить строго :)

В далекие времена, когда я ещё писал на c\c++, я пользовался замечательным редактором VIM, знал минимальный набор vim-фишек, и был в целом доволен его работой. Несколько позже я стал изучать Rails и программировать на Ruby. Я достаточно быстро понял, что базовой поставкой VIM не обойтись, попробовал пару найденных в интернете руководств по доведению VIM до уровня полноценной IDE, наткнулся на подводные камни, и быстро сдался. В тот момент мне хотелось изучать в первую очередь именно Rails, а не VIM.
Немного помытарился с разными другими редакторами и IDE типа Aptana, Geany, Eclipse и т.п. пока не наткнулся на полностью, на тот момент, удовлетворящий меня Netbeans. О Netbeans можно писать, да и написано, немало хорошего. Как IDE для разработки на Ruby Netbeans просто прекрасен. Я и сейчас использую его в случае, если работаю в Windows. Но однажды я оказался на длительное время не за своим, а за чужим ноутбуком, на котором уже стоял VIM, в месте, где интернет-трафик был сильно ограничен. А Таксовик требовал срочной доработки. Выкачивать ~60мб Netbeans и ещё n-ное количество мб на плагины было не этично, я и снова начал освоение VIM. И к моей радости довольно-таки быстро наткнулся на набор скриптов от бразильца Akita on Rails и скринкаст в придачу. Он, как я понял, собрал кучу полезных плагинов вместе и чуть-чуть дописал конфиг. Всё, о чём будет говориться ниже верно не только для Ruby, но и для других языков типа C, PHP и прочее, готовые наборы сниппетов (о них далее) в комплекте есть и для них.

Основные фишки этого набора скриптов


  1. FuzzyFinderTexMate — очень удобный поиск файлов в проекте по ctrl+f. К примеру, чтобы найти файл config\routes.rb надо набрать rorb. Или даже и того меньше :)
  2. Набор сниппетов из TexMate и некоторое количество своих (в смысле, NERDSnippets). Очень удобно, набираешь vf + TAB — получаешь validates_format_of :<+attribute+>, :with => /<+regex+>/<+, :on => :<+create+>, :message => "<+is invalid+>"+>, где по TAB скачешь между параметрами, заключёнными в <+...+>. Сниппеты есть для всего, чего угодно, их полный список можно посмотреть в папке snippets в директории с файлами кофигурации VIM.
  3. Дерево проекта, реализованное с помощью NERDTree. Доступно по \+p (обратный слеш и символ p). Переключение с дерева проекта в окно редактирования кода и обратно осуществляется по ctrl+w и стрелка (куда будет стрелка, туда курсор и перескочет), в самом же дереве o — открыть\закрыть папку\файл, R (shift+r) — обновить дерево и по вопросу(?) довольно внятная справка по горячим клавишам.
  4. Подсветка кода (rb, html, rjs, js, erb и т.п.)
  5. Возможности из rails.vim типа перехода по gf на файл модели, если курсор стоит на вызове, например, конструктора. Всяческие :Rake, :Rgenerate и т.п.
  6. Ну и все возможности и навороты VIM, за которые его так любят :)


А вот и скринкаст от автора на эту тему (рекомендую к просмотру):


Перестало работать. Ссылка на другом видеохостинге: blip.tv/file/3765175

Надеюсь, вы уже потираете руки, потому что vim — это очень быстрый, удобный, расширяемый и очень не требовательный к ресурсам компьютера редактор.
Как же всего этого добиться?