Class: Icasework::Document

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

Overview

A Ruby representation of a document in iCasework

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Document

Returns a new instance of Document.



31
32
33
34
# File 'lib/icasework/document.rb', line 31

def initialize(attributes)
  @attributes = attributes
  @url = attributes[:__content__]
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



29
30
31
# File 'lib/icasework/document.rb', line 29

def attributes
  @attributes
end

#urlObject (readonly)

Returns the value of attribute url.



29
30
31
# File 'lib/icasework/document.rb', line 29

def url
  @url
end

Class Method Details

.find(document_id: nil, **params) ⇒ Object



21
22
23
24
25
26
# File 'lib/icasework/document.rb', line 21

def find(document_id: nil, **params)
  documents = where(params)
  return documents unless document_id

  documents.find { |d| d.attributes[:id] == document_id }
end

.where(params) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/icasework/document.rb', line 11

def where(params)
  documents = Icasework::Resource.get_case_documents(params).
              data[:documents]
  return [] unless documents

  [documents[:document]].flatten.map do |attributes|
    new(attributes)
  end
end

Instance Method Details

#pdf?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/icasework/document.rb', line 36

def pdf?
  attributes[:type] == 'application/pdf'
end

#pdf_contentsObject



40
41
42
43
44
45
46
# File 'lib/icasework/document.rb', line 40

def pdf_contents
  return unless pdf?

  PDF::Reader.open(pdf_file) do |reader|
    reader.pages.map(&:text).join
  end
end