April 2006

Сборщик мусора в Ruby

(2006-04-30)

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

Ruby держит односвязный список глобальных переменных, которые не надо нику


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

Первый релиз обертки к udmsearch-ам

(2006-04-30)

Доделал сегодня обертку к dataparksearch и mnogosearch для Ruby

В этом архиве makefile настроен на dataparksearch, что бы собрать для mnogosearch-а, надо в файле extconf.rb строчку dpsearch = 1 заменить на dpsearch = nil

Если кто подскажет, как


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

Добавляем Ruby объекту C-шной функциональности

(2006-04-26)

static VALUE document_title(VALUE self) {
   struct rbDPSearchDocument *document;
   char *title;
   VALUE ret;
   Data_Get_Struct(self, struct rbDPSearchDocument, document);
   title = DpsFindStr(&document->doc->Sections,"Title","");
   ret = rb_str_new2(title);
   return ret;
    
Читаем дальше

Создаем классы

(2006-04-26)

Как видно, это заголовки для руби и для dpsearch. Дальше объявляем статические переменные, в которых руби будет хранить информацию о модуле и о классах.


static VALUE mDPSearch, cSearch, cDocument;

Префикс m перед модулем, префикс c перед классом. А вот VALUE


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

Почему RJS правильнее остальных

(2006-04-26)

До того, как я познакомился с RJS, я считал (и продолжаю считать), что наименее болезненный способ обмена данных в Ajax-е — это передача HTML-я для какого-то блока.

Чем я против XML? Да очень просто. У нас уже есть на сервере логика представления модели, а мы ее копируем еще куда-то. От такого р


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

Реализуем Ruby-модуль

(2006-04-26)

В предыдущей статье я описывал интерфейс к dataparksearch, необходимый для поиска документов.

Чего теперь нужно сделать. Создаем файл search.c, в котором включаем все необходимые заголовки для dpsearch и ruby.h. Одного файла на всю эту несложную логику


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

Пишем обертку к C-шной либе для Ruby

(2006-04-26)

Сначала нам нужен менеджер поиска. Без него никуда, только он знает про настройки поиска, к кому ходить, что как перекореживать, что бы засунуть это в запрос. Он будет называться Search.

Нужен найденный документ. Объект, хранящий в себе урл, заголовок и сохраненное содержание. Docume


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

DSL для функционального тестирования.

(2006-04-26)

Хороший фреймворк предоставляет хорошие возможности для всестороннего Unit и функционального тестирования. В Rails функциональное тестирование даже распилено на две части: юнит-тестирование контроллеров


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

Python: 5 < 2

(2006-04-25)

def my_function (a, b):
if a < b:
print a,“<”,b

my_function (5, ‘2’)
>> 5 < 2

Очень удобно это отслеживать по отладочным записям. Новое слово в математике.


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

Интерфейс модели - DSL контроллера.

(2006-04-25)

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


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

Sidebar