DocGen Adapter

Gem Version

Гем для адаптации собственного сервиса генерации документов и упрощения работы с ним.

Установка

Добавить в 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, xlsx

  • doc_id - ID документа

  • debug - необязательная опция для дебага, при передаче debug: true при вызове отображаются формируемые параметры

В качестве аргументов метода generate передайте параметры, которые можно подставлять в json сгенерированного класса.