Tips&Tricks: Установка gem’ов без генерации документации

сентября 5, 2012  |  Published in Ruby Gems, Tips&Tricks

Зачем?

Все мы знаем, что при установке gem’ов часто генерация документации занимает куда больше времени, чем сама установка gem’а, при этом никто не пользуется оффлайновой документацией. Зачем открывать новую вкладку и запускать gem server, если вся документация доступна онлайн? Если вы не пользуетесь оффлайн документацией, то зачем засорять ею жесткий диск и тратить время на ожидание ее генерации при установке gem’ов?

Для отключения генерации документации с командой gem install используют флаги —no-rdoc и —no-ri, например, так:

$ gem install rails —no-rdoc —no-ri

Однако есть вариант получше — использовать файл .gemrc в вашей home/ директории.

Просто добавьте в него следующую строку:

gem: —no-rdoc  —no-ri

И вы забудете о генерации документации навсегда!

Tags: , , ,

Tips&Tricks: Пользовательская конфигурация вашего кода (gem’а)

июля 21, 2012  |  Published in Ruby, Ruby Gems, Tips&Tricks, Расширения

Часто необходимо пользователям gem’ов позволить настраивать их на свой вкус. Как это сделать — об этом эта маленькая статья.

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

Read the rest of this entry »

Tags: , , ,

Interview with Ernie Miller, creator of great gems like Squeel, Valium and etc.

июля 17, 2012  |  Published in Интервью

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

Today in our virtual studio we welcome a super guest. His name is , hi is an extremely productive programmer, Rails contributor, and maintainer of very useful projects such as MetaWhere, Squeel, Valium, etc.

Ernie MillerHi Ernie, please introduce yourself for RubyDev readers.

Hi Vladimir, thanks for the opportunity to “visit” with you. I’ve been a developer with for a bit over a month now, and I’ve been loving it. As for hobbies, I enjoy recreational coding, PC and console gaming (currently spending quality time with Diablo 3), reading, and spending time with my wife and stepdaughter. I also volunteer as a crisis counselor at my church.

 

Ernie, I want to thank you for your projects. I like MetaWhere and Valium and I have started to use Squeel in my new project. And all these three gems (or ActiveRecord extensions) are awesome and I recommend to all Rails developers to use these tools. Can you briefly describe these gems developed by you?

Sure.

and are very similar. They’re both attempts to expose more of the ARel awesomeness that underpins ActiveRecord 3.x to the developer. At its simplest, this means you can do more than equality and inclusion conditions in your where clauses without resorting to SQL snippets in strings. The primary difference between MetaWhere and its successor, Squeel, is that Squeel has an improved DSL, additional functionality, and cleaner internals. These gems really wouldn’t have been possible if it weren’t for the awesome work on ARel by Nick Kallen, Bryan Helmkamp, Emilio Tagua and of course, Aaron Patterson. Emilio and Aaron were always especially encouraging and helpful as I first began using, then contributing to ARel.

is much smaller, and much simpler. It’s just a gem that allows for improved performance when selecting only a few attributes from your AR models, because it avoids the overhead of instantiating ActiveRecord::Base objects for each returned row. The functionality is similar to “pluck” which has been added to Rails core more recently, though I think Valium is better. :D

Read the rest of this entry »

Tags: , , , ,

Awesome Print — удобное представление объектов в IRB и не только

июля 23, 2011  |  Published in Ruby, Ruby Gems

— полезный gem авторства Махаэля (Михаила) Дворкина, который занимается тем, что предоставляет удобное представление объектов в консоли.

Для установки Awesome Print следует просто выполнить в консоли следущую команду:

$ gem install awesome_print

Awesome Print также доступен в виде Rails-плагина, в таком случае его установку следует выполнять как установку любого другого Rail-плагина:

$ ruby script/plugin install http://github.com/michaeldv/awesome_print.git

Read the rest of this entry »

Tags: , ,

RDR3T > Первая кровь: Структура приложения, первая модель и контроллер

марта 19, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

В прошлой главе мы занимались тем, что создавали себе рабочую среду и создали свое первое приложение на Rails 3. В этой главе RubyDev Rails 3 Tutorial вы еще ближе познакомитесь со структурой приложения Rails, с Git и Bundler, а также создадите свою первую модель и контроллер и узнаете о том, что такое BDD и RSpec.

Прежде чем начать, давайте разберемся с некоторой терминологией: фреймворк Rails построен на основе нескольких принципах, которые очень важно знать любому программисту!

CoC (Convention over Configuration — Соглашение прежде конфигурации) — согласно этому принципу Rails содержит набор соглашений касательно структуры проекта, именования файлов и директорий, а также классов, модулей и так далее. Благодаря этому приложение на Rails избавляется от лишней настройки приложения, чем гораздо ускоряет разработку. Этот принцип вовсе не значит, что приложение на Rails не настраиваемо, Rails как раз таки один из самых гибких фреймворков для веб разработки. Этот принцип означает лишь, то, что мы избегаем лишней конфигурации и приближаемся к стандартизации.
Read the rest of this entry »

Tags: , , , , , , ,

Пишем расширение на Си для Ruby, ч. 2

февраля 8, 2011  |  Published in Ruby, Расширения, Си и C++

ruby

Это вторая статья — перевод из двух оригинальных статей авторства , которые Василий любезно решил пожертвовать в архив RubyDev.

Пишем расширение на Си для Ruby, ч. 1
Пишем расширение на Си для Ruby, ч. 2

Во второй части мы изменим наш extconf.rb для того, что бы он мог найти необходимые файлы в libstree. Затем создадим класс на Ruby, который будет оберткой над структурой реализованной на Си.

Готовое расширение можно скачать на .

Использование mkmf для поиска библиотек

Как говорилось в предыдущей части, extconf.rb используется для поиска библиотек, заголовочных файлов и проверки сведений о целевой системе перед установкой. Сейчас мы научим extconf.rb находить библиотеку libstree вместе с ее заголовочными файлами. Также мы дадим пользователям возможность указывать gem’у, где находится libstree.

Настройка mkmf с помощью dir_config

Первое, что нам следует сделать, это указать mkmf, где следует изначально искать libstree. Для этого мы будем использовать метод dir_config, который принимает 3 аргумента:

* произвольная строка (обычно это имя библиотеки, в нашем случае «stree»)
* список путей, по которым надо искать заголовочные файлы
* список путей, по которым надо искать файлы библиотеки
Read the rest of this entry »

Tags: , ,

Пишем расширение на Си для Ruby, ч. 1

февраля 5, 2011  |  Published in Ruby, Основы, Расширения, Си и C++

rubyПишем расширение на Си для Ruby, ч. 1
Пишем расширение на Си для Ruby, ч. 2

Вчера на почтовый ящик мне пришло письмо от читателя блога RubyDev , к которому был приложен перевод понравившейся ему статьи авторства небезызвестного в Ruby сообществе (известного также под псевдонимом tenderlove). Большое спасибо Василию за приложенные усилия и за помощь!

А теперь собственно статья:

Мне нравится писать расширения для Ruby на C. В этом цикле статей мы разберемся, как это делать. Я раскрою такие темы, как создание рабочего окружения для написания расширения, TDD, отладку, взаимодействие со сборщиком мусора, кросс-компиляцию для windows и т.д.

К концу серии постов мы должны написать расширение, которое будет оберткой для libstree. libstree - это реализация суффиксного дерева на C.

В этой части мы подготовим все, что нам нужно для разработки, изучим шаблон обычного расширения на C и реализуем наш первый метод на C. Естественно, все это мы будем делать используя TDD и autotest.
Read the rest of this entry »

Tags: , , ,

RubyTree — библиотека для создания древовидных структур данных

ноября 1, 2010  |  Published in Ruby Gems

ruby treeRubyTree — это библиотека позволяющая создавать и управлять древовидными структурами данных основанными на узлах, где каждый узел является одновременно и значением, и ключем, для доступа к вложенным узлам. Одной из важных особенностей / функций RubyTree является возможность  импорта и экспорта в json формат.

Библиотека RubyTree будет интересна для тех, кто разрабатывает какие-либо научные приложения — каталоги, где необходима таксономия, либо приложения, что сейчас набирают популярность, для создания гениалогического дерева и т.д. Кстати, древовидная структура данных используется и во всеми нами любимой Википедии. Read the rest of this entry »

Tags:

home_run: Рубиновые классы Date и DateTime стали в десятки раз быстрее!

августа 24, 2010  |  Published in Ruby, Ruby Gems

clock, ruby's date/datetimeHome_run – реализация рубиновых Date / DateTime классов на языке Си, с улучшенной производительностью (ускорение в десятки раз), что полностью совместима со стандартной библиотекой Ruby.
Home_run возникла стараниями Джереми Эванса, известного также по разработке Sequel. Были проведены бенчмарки на двух различных моделях Rails, что показали прирост скорости работы моделей соответственно в 2 и 3 раза.

Read the rest of this entry »

Tags: , ,

Ruby Version Manager: приручаем gemset или Установка нескольких версий Rails

июля 12, 2010  |  Published in Ruby, Ruby Gems, Ruby on Rails

Как и обещал, еще одна статья об RVM.

rvm's gemset is gold!Одной из самых мощных и полезных вещей в RVM являются наборы gem’ов — gemsets. Gemset представляет собой отдельную директорию для gem’ов, таким образом, что не возникает конфликта между одноименными gem’ами в разных gemset’ах. Gemset’ы, или наборы gem’ов, предоставляют на удивление полезную возможность использовать сразу несколько версий одного и того же расширения Ruby, например использовать несколько версий Rails. Так же с их помощью вы можете проверить как хорошо работает ваше приложение при различных конфигурациях gem’ов.

В предыдущей статье мы уже обсуждали установку и использование RVM, таким образом, вы наверняка уже установили несколько версий Ruby. В этой статье мы поговорим о том, как установить несколько версий Rails и как их использовать под различными реализациями и версиями Ruby. Read the rest of this entry »

Tags: , , , ,