class Seisan::Report

Constants

DEFAULT_RENDERERS

Public Class Methods

add(renderer) click to toggle source
# File lib/seisan/report.rb, line 20
def add(renderer)
  @@renderers << renderer
end
new(requests, config) click to toggle source
# File lib/seisan/report.rb, line 25
def initialize(requests, config)
  @requests = requests
  @config = config
end
renderer_chain(&block) click to toggle source
# File lib/seisan/report.rb, line 15
def renderer_chain(&block)
  @@renderers = []
  block.call(self) if block
end

Public Instance Methods

export(dest_path) click to toggle source
# File lib/seisan/report.rb, line 30
def export(dest_path)
  prepare_sheet

  renderers.each do |renderer|
    renderer.render
  end

  write_to_file(dest_path)
end

Private Instance Methods

prepare_sheet() click to toggle source
# File lib/seisan/report.rb, line 45
def prepare_sheet
  @package = Axlsx::Package.new
  @workbook = @package.workbook
  @package.use_shared_strings = true
  @font = @workbook.styles.add_style :font_name => 'MS Pゴシック'
  @sheet = @workbook.add_worksheet(:name => '精算シート')
end
renderers() click to toggle source
# File lib/seisan/report.rb, line 41
def renderers
  @@renderers.map {|r| r.new(@requests, @sheet, @font, @config) }
end
write_to_file(dest_path) click to toggle source
# File lib/seisan/report.rb, line 53
def write_to_file(dest_path)
  FileUtils.mkdir_p(File.dirname(dest_path))
  @package.serialize(dest_path)
  Seisan.logger.info 'Wrote to %s' % dest_path
end