Archive for октября, 2011

Немного о Linux

октября 14, 2011  |  Published in Linux

Я являюсь новичком в Linux, начал использовать эту операционную систему чуть позже того, как заинтересовался программированием на Ruby. Собственно «заточенность» Ruby под Linux и стала причиной моего перехода на эту операционную систему.

Новым циклом статей о Linux на RubyDev я хочу систематизировать свои знания, и получить новые знания, которые будут скомпилированы в моих статьях, а также провести агитацию за пользование Linux, ведь большая часть читателей RubyDev все еще пользуются Windows.
Read the rest of this entry »

Tags: ,

Группа во Вконтакте

октября 11, 2011  |  Published in Новости

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

()

Новчикам помощь, старичкам почет.

Tags: ,

Интервью с Иваном Шихалевым об RDot и не только

октября 8, 2011  |  Published in Ruby, Ruby Gems, Интервью

Иван, добрый день! Представься пожалуйста читателям RubyDev и расскажи кратко о себе: где работаешь, чем увлекаешься?

Ну, кратенько: Иван Шихалев, временно безработный, живу в поселке Арти Свердловской области. Интересы у меня разнообразные, иногда кажется, что будь их поменьше, было бы проще жить. Отмечу, пожалуй, следующее: я являюсь одним из редакторов FreePascal.ru (и вообще, имею непосредственное отношение к формированию русскоязычного сообщества Free Pascal), а еще играю в . Веду блог — .

Расскажи пожалуйста о своем проекте RDot, его преимуществами перед аналогами и о том, почему была выбрана именно библиотека Graphitz?

— это такой визуализатор структуры классов Ruby — именно такой, какой был нужен лично мне — с указанием не только наследования, но и подмешивания модулей посредством как include, так и extend, и с перечислением методов и констант. Его основное, пожалуй, отличие от аналогов — он не анализирует текст Ruby-библиотеки, а загружает ее и работает с реально сформированной структурой, т.е. отображает классы, модули и их методы, созданные динамически в процессе загрузки. Собственно, именно такая задача у меня изначально и возникла — увидеть динамическую структуру классов, которую не показывают стандартные средства документирования (под которыми я подразумеваю RDoc и YARD). Задача несколько экзотическая, согласен, но вполне реальная.
Read the rest of this entry »

Tags: ,

RDR3R: Callbacks (коллбеки — обратные вызовы) в Rails

октября 5, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

Callbacks — колбеки (обратные вызовы) — это вызов методов как реакция на какое-нибудь действие объекта. Коллбеки привязываются к определенным методом и могут быть выполнены до или после вызова метода к которому они прикреплены. Например, когда в Rails вы используете ассоциацию с зависимостью, например такую:

Post has_many :comments, :dependent => :destroy

То после действия destroy для объекта — записи запускается соответствующий after_destroy коллбек, который выполняет удаление всех принадлежащищ Post’у комментариев.

В Rails существуют коллбеки модели и колбеки контроллеров, в Sinatra (Rack) существуют коллбеки обработчиков запроса, даже в RSpec существуют коллбеки before и after для подготовки и удаления данных для спецификаций.
Read the rest of this entry »

Tags: , , ,

Паттерн программирования Singleton

октября 3, 2011  |  Published in Ruby, STDLIB

Singleton (одиночка) — паттерн программирования позволяющий создавать такие классы, которые могут иметь только один экземпляр. Можно подумать, что это глупый паттерн, ибо если вам нужен один экземпляр (копия) класса, то вы просто создаете его и не создаете больше экземляров. Я тоже так думал и даже пытался найти обоснование тому, почему этот паттерн существует. Я понимал, что все эти паттерны были придуманы людьми куда-более умными, образованными и опытными чем я, и кажащаяся бесполезность pattern Singleton — это всего-лишь мое невегласие. Вот к чему я пришел:

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

Честно признаться в Ruby можно хорошо обходиться без использования Singleton, однако, вам может быть полезно и интересно знать о нем, просто для общего развития или для применения в других языках программирований.
Read the rest of this entry »

Tags: , , ,

HAML в Rails

октября 2, 2011  |  Published in ClientSide, Ruby Gems, Ruby on Rails, Ruby on Rails 3, View

haml logoHAML — очень удобный язык разметки который призван заменить HTML. HAML это также шаблонизатор, который компилирует код на HAML + Ruby  в HTML, который представляется пользователю.

Мне надоел стандартный ERB, надоели закрывающие теги, надоело, что порой бывает сложно понять что во что вложено, и я решил полностью перебраться на HAML. Если вы еще не слышали о HAML, то это не означает, что HAML — это что-то экзотическое, напротив, HAML использует большинство Rails разработчиков, так активно используют, что даже удивились, почему Rails Core Team невключили HAML в Raila 3.1. как шаблонизатор по умолчанию.

Начать работу с HAML совсем просто!

Read the rest of this entry »

Tags: , , ,

Паттерн программирования Observer в Ruby

октября 2, 2011  |  Published in Ruby, STDLIB

Патерн Observer относится к семейству publish/subscribe паттернов программирования. Observer предоставляет механизм для уведомления одним объектом другого при изменении собственного состояния. Объект, который сообщает об изменении своего состояния называется уведомителем или наблюдаемым объектом, а объекты, которые уведомляются об изменении состояния уведомителя называются подписчиками или наблюдателями.
Read the rest of this entry »

Tags: , , , ,