Доработать библиотеку Ruby Marshal для парсинга .rxdata/.rvdata файлов
5 000 руб. за проект
необходимо доработать библиотеку (сделать форк, архив или отдельный пакет) ruby marshal https://github.com/d9pouces/RubyMarshal
чтобы получить возможность маршалить/демаршалить .rxdata, rvdata и rvdata2 файлы.
Примеры файлов https://disk.yandex.by/d/Gsm8lxGzw7ngFw.
критерии успеха:
- файлы полностью размаршаливается (два начальный байта (4 и 8) как маркер начала, могут встречаться в файле 1 и более раз, библиотека умеет читать только первый кусок, необходимо читать весь файл)
- обновленный код полностью поддерживает все типы (userder достаточно в текущем виде, главное обратить внимание на default hash, ivar, etc)
- считанное содержимое, а затем записанное должно быть идентично оригинальному файлу
пример кода
```
from rubymarshal.reader import load
from rubymarshal.writer import write
def main(filename):
data = open(filename, "rb")
assert data == write(load(open(filename, "rb"))
```
чтобы получить возможность маршалить/демаршалить .rxdata, rvdata и rvdata2 файлы.
Примеры файлов https://disk.yandex.by/d/Gsm8lxGzw7ngFw.
критерии успеха:
- файлы полностью размаршаливается (два начальный байта (4 и 8) как маркер начала, могут встречаться в файле 1 и более раз, библиотека умеет читать только первый кусок, необходимо читать весь файл)
- обновленный код полностью поддерживает все типы (userder достаточно в текущем виде, главное обратить внимание на default hash, ivar, etc)
- считанное содержимое, а затем записанное должно быть идентично оригинальному файлу
пример кода
```
from rubymarshal.reader import load
from rubymarshal.writer import write
def main(filename):
data = open(filename, "rb")
assert data == write(load(open(filename, "rb"))
```
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.