Class: PrintNode::PrintJob

Inherits:
Object
  • Object
show all
Defined in:
lib/printnode/printjob.rb

Overview

An object for printjob creation.

Author:

  • Jake Torrance

  • PrintNode

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(printer_id, title, content_type, content, source) ⇒ PrintJob

Initializes the object with the variables required.



15
16
17
18
19
20
21
# File 'lib/printnode/printjob.rb', line 15

def initialize(printer_id, title, content_type, content, source)
  @printer_id = printer_id
  @title = title
  @content_type = content_type
  @content = content
  @source = source
end

Instance Attribute Details

#contentObject

Returns the value of attribute content.



11
12
13
# File 'lib/printnode/printjob.rb', line 11

def content
  @content
end

#content_typeObject

Returns the value of attribute content_type.



10
11
12
# File 'lib/printnode/printjob.rb', line 10

def content_type
  @content_type
end

#printer_idObject

Returns the value of attribute printer_id.



8
9
10
# File 'lib/printnode/printjob.rb', line 8

def printer_id
  @printer_id
end

#sourceObject

Returns the value of attribute source.



12
13
14
# File 'lib/printnode/printjob.rb', line 12

def source
  @source
end

#titleObject

Returns the value of attribute title.



9
10
11
# File 'lib/printnode/printjob.rb', line 9

def title
  @title
end

Instance Method Details

#content_is_existing_file?Boolean

Returns:

  • (Boolean)


45
46
47
48
49
50
51
# File 'lib/printnode/printjob.rb', line 45

def content_is_existing_file?
    begin
        File.exist?(@content)
    rescue
        false
    end
end

#load_contentObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/printnode/printjob.rb', line 34

def load_content
  # Used to be, we only supported file names for Base64, but it's actually better
  # to allow the user to send us a data string if they desire.  Testing the
  # content to see if it's a path allows for backwards compatibility
  if @content_type.match('base64$') && content_is_existing_file?
    Base64.encode64(IO.read(@content))
  else
    @content
  end
end

#to_hashObject

Maps the object into a hash ready for JSON Encoding.



24
25
26
27
28
29
30
31
32
# File 'lib/printnode/printjob.rb', line 24

def to_hash
  {
      'printerId' => @printer_id,
      'title' => @title,
      'contentType' => @content_type,
      'content' => load_content,
      'source' => @source
  }
end