Class: Template::Handlers::AxlsxBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/axlsx_rails/template_handler.rb

Instance Method Summary collapse

Instance Method Details

#call(template, source = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/axlsx_rails/template_handler.rb', line 21

def call(template, source = nil)
  builder = StringIO.new
  builder << "require 'axlsx';"
  builder << "xlsx_author = defined?(xlsx_author).nil? ? nil : xlsx_author;"
  builder << "xlsx_created_at = defined?(xlsx_created_at).nil? ? nil : xlsx_created_at;"
  builder << "xlsx_use_shared_strings = defined?(xlsx_use_shared_strings).nil? ? nil : xlsx_use_shared_strings;"
  builder << "xlsx_package = Axlsx::Package.new("
  builder << ":author => xlsx_author,"
  builder << ":created_at => xlsx_created_at,"
  builder << ":use_shared_strings => xlsx_use_shared_strings);"
  builder << (source || template.source)
  builder << ";xlsx_package.to_stream.string;"
  builder.string
end

#default_formatObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/axlsx_rails/template_handler.rb', line 10

def default_format
  case
  when Rails.version.to_f >= 6
    Mime[:xlsx].symbol
  when Rails.version.to_f >= 5
    Mime[:xlsx]
  else
    Mime::XLSX
  end
end