Class: Pdf::Blueprint

Inherits:
Object
  • Object
show all
Defined in:
lib/pdf/blueprint.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBlueprint

Returns a new instance of Blueprint.



7
8
9
10
11
# File 'lib/pdf/blueprint.rb', line 7

def initialize
  @elements = []
  @layout_class = nil
  @metadata = {}
end

Instance Attribute Details

#elementsObject (readonly)

Returns the value of attribute elements.



5
6
7
# File 'lib/pdf/blueprint.rb', line 5

def elements
  @elements
end

#layout_classObject (readonly)

Returns the value of attribute layout_class.



5
6
7
# File 'lib/pdf/blueprint.rb', line 5

def layout_class
  @layout_class
end

#metadataObject (readonly)

Returns the value of attribute metadata.



5
6
7
# File 'lib/pdf/blueprint.rb', line 5

def 
  @metadata
end

Instance Method Details

#add(type, *args, **options, &block) ⇒ Object



13
14
15
16
17
# File 'lib/pdf/blueprint.rb', line 13

def add(type, *args, **options, &block)
  element = { type: type, args: args, options: options }
  element[:block] = block if block
  @elements << element
end

#dupObject



31
32
33
34
35
36
37
# File 'lib/pdf/blueprint.rb', line 31

def dup
  copy = Blueprint.new
  copy.instance_variable_set(:@elements, deep_dup_elements)
  copy.instance_variable_set(:@layout_class, @layout_class)
  copy.instance_variable_set(:@metadata, @metadata.dup)
  copy
end

#empty?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/pdf/blueprint.rb', line 27

def empty?
  @elements.empty? && @layout_class.nil? && @metadata.empty?
end

#set_layout(klass) ⇒ Object



19
20
21
# File 'lib/pdf/blueprint.rb', line 19

def set_layout(klass)
  @layout_class = klass
end

#set_metadata(key, value) ⇒ Object



23
24
25
# File 'lib/pdf/blueprint.rb', line 23

def (key, value)
  @metadata[key] = value
end