Sha256: 31aac85083af6bd9f74d7cdaa971947b7aeb297818898ec541bd076b77dbe6be

Contents?: true

Size: 657 Bytes

Versions: 2

Compression:

Stored size: 657 Bytes

Contents

require 'erb'

class GhostWriter::Writer
  class Base
    def initialize(document, options = {})
      @document  = document
      @overwrite = options[:overwrite] || false
    end

    def write_file
      unless File.exist?(File.dirname(@document.basename))
        FileUtils.mkdir_p(File.dirname(@document.basename))
      end

      mode = @overwrite ? "w" : "a"
      File.open("#{@document.basename}.#{extname}", mode) do |f|
        f.write template.result(@document.instance_eval { binding })
      end
    end

    private

    def extname
      raise NotImplementedError
    end

    def template
      raise NotImplementedError
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ghost_writer-0.5.0 lib/ghost_writer/writer/base.rb
ghost_writer-0.4.2 lib/ghost_writer/writer/base.rb