Обновить
8K+

Ruby *

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

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

rails_best_practices

Время на прочтение1 мин
Охват и читатели1.3K
rails_best_practices это GEM, для проверки качества кода рельсового приложения в соответствии с презентацией ihower в Rails Best Practices от Kungfu RailsConf.

Исходный код на GitHub: http://github.com/flyerhzm/rails_best_practices

До:
image
Читать дальше →

Новый сайт команды HashTrain

Время на прочтение1 мин
Охват и читатели619
Предлагаю Вам ознакомится и предложить что можно дополнить на сайте команды HashTrain занимающейся разработкой на Ruby On Rails. Критика и предложения приветсвуются.

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

Видеоуроки от Райана Бейтса на русском языке

Время на прочтение1 мин
Охват и читатели7.5K
image
Привет, Хабр!

Хочу рассказать тебе о проекте, над которым наша команда трудится не покладая рук — Railscasts.ru. Мы делаем переводы видеоуроков по Ruby on Rails, чтобы сделать жизнь разработчиков проще, не говоря уже о том, что изучение определенных техник проходит гораздо быстрее и нагляднее, а замечательная Даша дарит тебе частицу прекрасного ;-)

Уже можно посмотреть видеоуроки на следующие темы:
Читать дальше →

Выпущена новая версия IronRuby 1.1

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

IronRuby – opensource-реализация языка Ruby для платформы .NET получила обновление. Для загрузки доступна новая версия IronRuby 1.1 в которой присутствуют следующие изменения и нововведения:
  • изменена лицензия IronRuby с MSPL на Apache License (Version 2) в связи с тем, что родственные проекты DLR и IronPython так же переведены под эту лицензию;
  • IronRuby 1.1 больше не поддерживает .NET 2.0 SP1, минимальная версия платформы, которую поддерживает IronRuby — .NET 3.5, строго рекомендуется версия .NET 4.0;
  • в этой версии IronRuby добавлена поддержка методов расширения (extension methods) в .NET, в том числе поддержка методов расширения LINQ.
Кроме того решены некоторые проблемы и исправлены баги.

Дополнительно, вы можете посмотреть примеры использования IronRuby в наборе LINQ 101 sampes ported to IronRuby.

Ruby-встреча в Питере 18-го июня: Rack, Warden, инструменты от plataformatec

Время на прочтение1 мин
Охват и читатели669
  • Дата и время: 18-го июня (пятница), 18.30
  • Место: м. Политехническая, учебный центр Авалон (ФПО СПбГПУ, ул. Обручевых, д. 1).
  • Вход свободный.


Вероятно практически все Rails-разработчики знают Жозе Валима и бразильскую компанию Plataforma Tecnologia хотя бы потому, что пользуются одним или несколькими инструментами, которые они разработали. Они сильно облегчают жизнь, берут на себя большую часть рутинной работы, но в то же время ненавязчивы и конфигурируемы (например, по понятным причинам разработаны с обязательной поддержкой I18N). На встрече можно будет посмотреть на все основные инструменты:

  • Аутентификация: Devise
  • DRY-контроллеры: Inherited Resources
  • Формы: Simple Form
  • DRY-views: Show For
  • Обратная связь: Mail Form


Отдельного разговора заслуживает Warden — механизм аутентификации для Rack-приложений, на основе которого построен Devise. Про Rack и Warden расскажет Денис Лифанов. Про инструменты от Plataforma Tecnologia расскажут Максим Филатов и Евгений Большаков.

Будем рады видеть всех интересующихся Ruby.

Ruby Tips, Tricks, and Hacks (часть 1, заключительная)

Время на прочтение1 мин
Охват и читатели1K
Да вроде всё и так нормально :) Разве что, — используйте Ruby EE и будет вам счастье…

P.S.: по мотивам Python Tips, Tricks, and Hacks (часть 4, заключительная)

Дирк-Ян Базинк(Dirkjan Bussink), как стать успешным Рубистом

Время на прочтение3 мин
Охват и читатели1.3K
В рамках серии «Как Стать Успешным Рубистом». Оригинал.

image
Дирк-Ян Базинк(Dirkjan Bussink) опытный разработчик и активный участник Ruby сообщества. twitter.com/dbussink
github.com/dbussink
Читать дальше →

Как стать успешным Рубистом

Время на прочтение1 мин
Охват и читатели7.5K
Дмитрий Белицкий провел 18 потрясных интервью с рубистами. А я решил их перевести и опубликовать тут.

ATTENTION: rezwyi.blogspot.com/search/label/%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D1%8B%20%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0 здесь остальные переводы от товарища Сергея Резванова.

Как стать успешным Рубистом?

Ответ на этот вопрос знают, скорее всего, успешные рубисты.

Я подготовил девять вопросов и задал их по Email людям, которые, по моему мнению, являются таковыми.

Geoffrey Grosenbach
Desi McAdam
Giles Bowkett
Dirkjan Bussink
Jamis Buck
Yehuda Katz
James Edward Gray II
Carlos Gabaldon
Fabio Akita
Pat Allan
Peter Cooper
Ryan Bates
Paul Campbell
Matt Aimonetti
Nathaniel Talbott
Elise Huard
Chris Wanstrath (defunkt)
Oleg Andreev (oleganza)

1 — переводы постараюсь публиковать по одному в день.
2 — рад любым корректировкам

Padrino — The Elegant Ruby Web Framework

Время на прочтение2 мин
Охват и читатели5K
image
Padrino («Крёстный отец», пер. с итальянского) — новый ruby фреймворк, написанный на базе Sinatra (DSL, предназначенный для быстрого создания простых web-приложений). От себя могу сказать, что это фреймворк, совмещающий удобный функционал Rails и простоту и скорость Sinatra.
Читать дальше →

Многопоточность в Ruby

Время на прочтение9 мин
Охват и читатели39K
Перевод главы «Multithreading» книги David Thomas и Andrew Hunt «Programming Ruby: The Pragmatic Programmers' Guide, Second Edition».

Часто самым простым способом выполнить одновременно две вещи является использование потоков в Ruby. Они являются внутрипроцессными, встроенными в интерпретатор Ruby. Это делает потоки Ruby полностью переносимыми, т.е. независимыми от операционной системы. Но в то же время вы точно не получите выгоду от использования родных, нативных потоков. Что это значит?

Вы можете столкнуться с голоданием (thread starvation — это когда поток с маленьким приоритетом не имеет шанса запуститься). Если вы хотите заблокировать ваши потоки, то со скрежетом остановится целый процесс. А если возникнет ситуация, что некоторые потоки будут посылать вызовы операционной системе, для выполнения которых требуется немалое время, то все потоки будут висеть, пока интерпретатор не получит контроль обратно. И наконец, если ваша машина имеет больше одного процессора, потоки Ruby не будут это использовать, т.к. они запускаются в одном процессе, а в одиночном родном потоке они будут вынуждены запускаться на одном процессоре единовременно.

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

Операторы '&&' и 'and' в Ruby

Время на прочтение1 мин
Охват и читатели25K
На одном собеседовании меня спросили: «когда ты пишешь на Ruby, ты пользуешься оператором 'and' или двумя символами амперсанда '&&' для обозначения логического 'И' ?». На самом деле, я по старой привычке всегда ставил два символа амперсанда '&&' и никогда не задумывался об этом. Так и ответил, мне сказали «Хорошо».

А вы не смотря под cut можете внятно объяснить разницу между 'and' и '&&' в Ruby?
Проверим?

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

Вышла финальная версия IronRuby 1.0!

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

Отличные новости! Вместе с глобальным запуском Visual Studio 2010 и платформы .NET 4.0 выпущена финальная версия IronRuby — opensource-реализации языка Ruby для платформы .NET.

На текущий момент IronRuby нацелен на поддержку Ruby 1.8.6. Согласно информации с сайта ironruby.info версия IR 1.0 проходит тест RubySpec на 86%. Из них: языковые тесты на 98%, ядро на 90% и библиотеки на 75%.

Полезные ссылки:

официальный сайт проекта;
страница проекта IronRuby на codeplex;
скачать IronRuby для .NET2/.NET4;
результаты тестов RubySpec.

Вышел Rubinius 1.0.0-rc4

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

Основные изменения по сравнению с rc3



* Ускорение компиляции в байткод на 30%
* На rubinius проходят все тесты Rails3
* Улучшена поддержка CAPI
* Поиск подстроки в строке ускорен в 10 раз. (теперь она выполняется в 2 раза быстрее, чем на 1.8.7)
* Исправлено десятки багов.

Более полный список изменений.

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

Изменение поведения метода в зависимости от контекста

Время на прочтение1 мин
Охват и читатели771
По сути задачка для гиков:
Есть класс А, у него метод save, принимающий один параметр, у параметра есть значение по умолчанию (допустим, true). Экземпляр класса А, принимающий метод save без параметров, автоматически принимает true и работает в соответствии с этим флагом. Есть класс В, у которого есть поле типа А. При вызове метода save для этого поля изнутри контекста класса В без параметров управление должно передаваться другой реализации метода, которая принимает по умолчанию значение параметра false. Примерно как работает override, но не глобально, а внутри только одного класса.
Читать дальше →

Аннонсирован новый релиз-план для Ruby 1.9.2

Время на прочтение1 мин
Охват и читатели812
Согласно новому плану, релиз состоится примерно в середине августа.

Подробнее:
  • 31 марта будет заморожен список возможностей Ruby 1.9.2
  • 30 апреля будет заморожен код, все возможности не реализованные до этого времени не войдут в релиз
  • 31 мая — выход 1.9.2-preview2: возможности, которые не будут завершены и стабильны к этому моменту, не войдут в релиз
  • 30 июня — выход 1.9.2-rc: все найденные на предыдущих этапах баги должны быть исправлены
  • 31 июля — выход 1.9.2-p0: в течении двух недели будут собирать багрепорты и допиливать релиз, прежде чем выпустить его

Что ж будем надеяться, что на сей раз разработчики справятся с намеченными сроками и мы получим стабильный релиз ветки 1.9.x до осени :-)

P.S. Если кто-то хочет высказать пожелания к релизу 1.9.2, то поторопитесь оставить тикет в Ruby Issue Tracking System

Ruby on Rails и Яндекс.Фотки API: показываем последние фотографии на домашней странице

Время на прочтение2 мин
Охват и читатели1.9K
image
Уже пару лет пользуюсь сервисом Яндекс.Фотки для хранения всех своих фотографий, а недавно возникло желание на своей домашней страничке выводить последние n фотографий, загруженных на Яндекс.Фотки, тем самым убив сразу несколько зайцев:
  • домашняя страничка не требует администрирования;
  • не требуется хранение и управление изображениями;
  • не требуется заниматься ресайзингом изображений для превью и т.д.


Сказано — сделано. Оказалось, что Фотки предоставляют достаточно удобный API по протоколу AtomPub. Т.к. страничку планировал делать на платформе Ruby on Rails, после непродолжительных поисков нашел неплохую библиотеку для работы feedzirra. Устанавливалась библиотека совершенно стандартным образом:
  1. gem sources -a gems.github.com
  2. gem install pauldix-feedzirra

и далее в ruby достаточно прописать ее использование:
  1. require 'feedzirra'

Пришло время изучить предоставляемый API
Читать дальше →

Добрый вечер уважаемые читатели, подписчики и авторы блога Ruby

Время на прочтение1 мин
Охват и читатели639
Некоторое время назад мне стало стыдно, что я в своё время создал блог Ruby на этом сайте и совершенно забросил его, уйдя с сайта после слива кармы.

Решил вернуться и исправить положение :)

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

Собственно в комментариях я хотел бы услышать любые предложения по улучшению блога.

Так же хочу назначить пару людей модераторами, для этого в одном комментарии напишите ссылки на ваши статьи для этого блога я их прочту и если мне понравиться вы прикоснетесь к истории :)

С уважением и готовностью ответить на любые вопросы ;)

Spree 0.10.0 release

Время на прочтение1 мин
Охват и читатели1.3K
Intro: Spree — довольно мощный и гибкий движок для создания интернет-магазинов, написанный на Ruby on Rails, распространяющийся под лицензией New BSD.

Спустя почти полгода после релиза 0.9.0 вышла очередная версия Spree — 0.10.0, эта версия вобрала в себя множество замечательных, новых возможностей:
  • Поддержка тем оформления
  • Расширяемый механизм поиска (с помощью расширений поддерживается поиск через Xapian, Sphinx и Solr)
  • Настраиваемый процесс оформления заказа (можно убирать или добавлять шаги)
  • Группы товаров на основе разнообразных критериев
  • Улучшена поддержка конфигурации платёжных систем
  • Возможность выбора(для пользователя) из нескольких способов оплаты
  • RESTful API
  • Несколько SEO улучшений
  • Поддержка Rails 2.3.5 и Ruby 1.9

Также была существенно улучшена поддержка интернационализации в целом и русского языка в частности.

Полный список примечаний к релизу

UPD: перенесено в блог «Ruby»