DocGen Adapter
Гем для адаптации собственного сервиса генерации документов и упрощения работы с ним.
Установка
Добавить в Gemfile
gem 'docgen-adapter'
И выполнить:
bundle
Конфигурация
Добавьте файл конфигурации config/initializers/docgen_adapter.rb и задайте необходимые настройки:
DocgenAdapter.configure do |config|
config.redis_host = ''
config.redis_port = ''
config.redis_password = ''
end
Использование
Добавьте класс для документа, вызвав генератор. В качестве аргумента передайте ID документа, в обязательной опции doc_type - тип документа (docx или xlsx).
Например:
rails g docgen:document 1 --doc_type=docx
Вызванная команда создаст файл app/documents/docx/document_01.rb.
Добавьте тело необходимых параметров в метод json сгенерированного класса. Например:
def json(params = {})
{
DocumentNumber: params[:number],
Houses: [
{
HouseAddress: 'г. Калуга',
PersonFIO: 'Иванов ИИ',
PersonState: 'электромонтер',
PersonPhone: '89171234567',
OrganizationName: 'Россети',
OrganizationAddress: 'г. Обнинск',
OrganizationPhone: '1234567',
OrganizationCite: 'https://www.rosseti.ru'
}
]
}
end
Добавьте метод files для обработки и передачи дополнительных файлов в задание генерации. В ответе метода files должен отдаваться массив ссылок (URL) на файлы либо массив локальный путей файлов.
def files(params)
[]
end
Задайте название генерируемого файла в metadata. Например:
filename: 'контактная информация'
Вызовите генерацию с помощью вызова метода generate класса DocgenAdapter. Например:
DocgenAdapter.new(type: 'docx', doc_id: 1, debug: true).generate(number: 123)
Опции:
type- тип документа, возможные значения:docx,xlsxdoc_id- ID документаdebug- необязательная опция для дебага, при передачеdebug: trueпри вызове отображаются формируемые параметры
В качестве аргументов метода generate передайте параметры, которые можно подставлять в json сгенерированного класса.