afa / file_record

simple AR-like file based repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Нужно написать аналог базовой функциональности ActiveRecord, хранящей записи в файлах.

Так, чтобы можно было как в ActiveRecord делать .new(attributes), получать и задавать атрибуты через геттеры и сеттеры, делать #save и .find по id. формат хранения в файлах и формат id - на свое усмотрение

Реализация

файлы моделей хранятся в каталоге db, подкаталог по downcase имени класса модели, файл на запись, имя файла дополненный слева нулями до восьми знаков id. схема находится в подкаталоге модели, файл .schema, формат: для каждого аттрибута построчно разделенные двоеточием название аттрибута и тип (integer, string или float). строка искейпится (String#dump).

Реализованы методы .find, #initialize (aka .new), #save

Подключение -- class Test < FileRecord::Base

app.rb -- набор тесткейсов

app/models/test.rb -- тестовая модель.

lib/file_record -- реализация.

db/test -- тестовые данные и схема для модели Test

boot.rb -- модуль автолоада для нормальной автозагрузки классов

About

simple AR-like file based repository


Languages

Language:Ruby 100.0%