Class: Labels::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/labels/document.rb

Overview

This class represents a Labels document.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(paper = nil, template = nil, layers = [], database = nil) ⇒ Document

Creates a new Labels::Document instance with optional content



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/labels/document.rb', line 33

def initialize(paper=nil, template=nil, layers=[], database=nil)
  unless paper.nil?
    @paper = paper
  else
    @paper = Labels::Paper.new(Labels::Paper::LETTER)
  end
  
  unless template.nil?
    @template = template
  else
    @template = Labels::Template.new(Labels::Template::DEFAULT)
  end
  
  @layers = layers
  
  unless database.nil?
    @database = database
  else
    @database = Labels::Database.new
  end
end

Instance Attribute Details

#databaseObject

The document Labels::Database instance



30
31
32
# File 'lib/labels/document.rb', line 30

def database
  @database
end

#layersObject

An array of document Labels::Layer instances



27
28
29
# File 'lib/labels/document.rb', line 27

def layers
  @layers
end

#paperObject

The document Labels::Paper instance



21
22
23
# File 'lib/labels/document.rb', line 21

def paper
  @paper
end

#templateObject

The document Labels::Template instance



24
25
26
# File 'lib/labels/document.rb', line 24

def template
  @template
end

Instance Method Details

#render(filename = nil) ⇒ Object Also known as: to_pdf

Render document to filename or string



65
66
67
# File 'lib/labels/document.rb', line 65

def render(filename=nil)
  Labels::PDF::Builder.new(self).render(filename)
end

#write(filename) ⇒ Object Also known as: to_file

Writes document to filename as XML



56
57
58
59
60
61
# File 'lib/labels/document.rb', line 56

def write(filename)
  FileUtils.mkdir_p(File.dirname(filename))
  File.open(filename, 'w') do |file|
    file.write Labels::XML::Builder.new(self).xml
  end
end