rockspec_format = '3.0' package = 'tnt-di' version = 'scm-1' source = { url = 'git+https://github.com/tnt-skein/tnt-di.git', branch = 'main', } description = { summary = 'Контейнер зависимостей для Tarantool: значение, фабрика, синглтон', detailed = [[ Приложению из двух десятков модулей нужны одни и те же вещи: настройки, журнал, пул к хранилищу, часы. Заведённые по месту, они заводятся столько раз, сколько мест их спросило. Объявленные в одном месте — один раз, а в проверках подменяются одной строкой. Три рода объявлений: готовое значение, фабрика (новое на каждый запрос) и синглтон (один на процесс, собирается лениво при первом обращении). Зависимости объявляются явно, через сам контейнер: отражения в Lua нет, и угадывать их по именам параметров пакет не берётся. Кольцо называется цепочкой имён, а не переполнением стека; синглтон, который собирает один файбер, остальные ждут, а не собирают второй; созданные синглтоны уничтожаются в обратном порядке. Зависимость одна — tnt-must: бросок отказа без места в коде и общий текст отказа о незнакомой настройке. Покрытие строк и убитых мутантов — 100 %. ]], homepage = 'https://github.com/tnt-skein/tnt-di', issues_url = 'https://github.com/tnt-skein/tnt-di/issues', maintainer = 'tnt-skein', license = 'MIT', labels = { 'tarantool', 'dependency-injection', 'container', 'singleton', 'testing' }, } dependencies = { 'lua >= 5.1', 'tnt-must', } build = { type = 'builtin', modules = { ['tnt.di'] = 'tnt/di.lua', }, }