Sha256: 23160818ce4f72e72a4bd74dd763ade5650fb550488dfd4bb4db3b638e6ccb14

Contents?: true

Size: 967 Bytes

Versions: 6

Compression:

Stored size: 967 Bytes

Contents

require 'erb'
require 'fileutils'

module XlsxWriter
  class Xml
    attr_reader :document

    def initialize(document)
      @document = document
      @mutex = ::Mutex.new
    end

    def generate
      path
      true
    end

    def generated?
      @generated == true
    end
    
    def path
      @path || @mutex.synchronize do
        @path ||= begin
          memo = ::File.join document.staging_dir, relative_path
          ::FileUtils.mkdir_p ::File.dirname(memo)
          ::File.open(memo, 'wb') do |f|
            f.write render
          end
          converted = ::UnixUtils.unix2dos memo
          ::FileUtils.mv converted, memo
          @generated = true
          memo
        end
      end
    end
        
    def template_path
      ::File.expand_path "../generators/#{self.class.name.demodulize.underscore}.erb", __FILE__
    end
    
    def render
      ::ERB.new(::File.read(template_path), nil, '<>').result(binding)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
xlsx_writer-0.3.2 lib/xlsx_writer/xml.rb
xlsx_writer-0.3.1 lib/xlsx_writer/xml.rb
xlsx_writer-0.3.0 lib/xlsx_writer/xml.rb
xlsx_writer-0.2.2 lib/xlsx_writer/xml.rb
xlsx_writer-0.2.1 lib/xlsx_writer/xml.rb
xlsx_writer-0.2.0 lib/xlsx_writer/xml.rb