Class: Pdfmonkey::Document
- Inherits:
-
Object
- Object
- Pdfmonkey::Document
- Extended by:
- Forwardable
- Defined in:
- lib/pdfmonkey/document.rb
Constant Summary collapse
- ATTRIBUTES =
%i[ app_id checksum created_at document_template_id download_url errors id meta payload preview_url status updated_at ].freeze
- COMPLETE_STATUSES =
%w[error failure success].freeze
- COLLECTION =
'documents'
- MEMBER =
'document'
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
Class Method Summary collapse
- .fetch(document_id) ⇒ Object
- .generate(template_id, payload, meta = {}) ⇒ Object
- .generate!(document_template_id, payload, meta = {}) ⇒ Object
Instance Method Summary collapse
- #done? ⇒ Boolean
-
#initialize(adapter: Pdfmonkey::Adapter.new, **attributes) ⇒ Document
constructor
A new instance of Document.
- #reload! ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(adapter: Pdfmonkey::Adapter.new, **attributes) ⇒ Document
Returns a new instance of Document.
53 54 55 56 57 |
# File 'lib/pdfmonkey/document.rb', line 53 def initialize(adapter: Pdfmonkey::Adapter.new, **attributes) @adapter = adapter @attributes = OpenStruct.new(ATTRIBUTES.zip([]).to_h) update(attributes) end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
30 31 32 |
# File 'lib/pdfmonkey/document.rb', line 30 def attributes @attributes end |
Class Method Details
.fetch(document_id) ⇒ Object
33 34 35 |
# File 'lib/pdfmonkey/document.rb', line 33 def self.fetch(document_id) new(id: document_id).reload! end |
.generate(template_id, payload, meta = {}) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/pdfmonkey/document.rb', line 43 def self.generate(template_id, payload, = {}) document = new( document_template_id: template_id, meta: .to_json, payload: payload.to_json, status: 'pending') document.send(:save) end |
.generate!(document_template_id, payload, meta = {}) ⇒ Object
37 38 39 40 41 |
# File 'lib/pdfmonkey/document.rb', line 37 def self.generate!(document_template_id, payload, = {}) document = generate(document_template_id, payload, ) document.reload! until document.done? document end |
Instance Method Details
#done? ⇒ Boolean
59 60 61 |
# File 'lib/pdfmonkey/document.rb', line 59 def done? COMPLETE_STATUSES.include?(status) end |
#reload! ⇒ Object
63 64 65 66 67 |
# File 'lib/pdfmonkey/document.rb', line 63 def reload! attributes = adapter.call(:get, self) update(attributes) self end |
#to_json ⇒ Object
69 70 71 72 73 74 |
# File 'lib/pdfmonkey/document.rb', line 69 def to_json attrs = attributes.to_h attrs.delete(:errors) { document: attrs }.to_json end |