Class: IAA::BaseForm
- Inherits:
-
Object
- Object
- IAA::BaseForm
- Defined in:
- lib/base_form.rb
Class Method Summary collapse
Instance Method Summary collapse
- #filename ⇒ Object
- #fill_attributes ⇒ Object
- #get_attr(field) ⇒ Object
- #get_mapper_fields(path) ⇒ Object
- #init_pdftk(pdftk_path) ⇒ Object
-
#initialize(pdf_path: nil, pdftk_path: nil) ⇒ BaseForm
constructor
A new instance of BaseForm.
- #load_fields_from_pdf!(pdf_path, pdftk, form_object) ⇒ Object
- #read_field(field_name) ⇒ Object
- #read_fields ⇒ Object
- #save(save_path = 'tmp') ⇒ Object
- #set_attr(field, value) ⇒ Object
Constructor Details
#initialize(pdf_path: nil, pdftk_path: nil) ⇒ BaseForm
Returns a new instance of BaseForm.
25 26 27 28 29 30 31 32 |
# File 'lib/base_form.rb', line 25 def initialize(pdf_path: nil, pdftk_path: nil) @fields = get_mapper_fields(self.class.mapper_path) @pdftk = init_pdftk(pdftk_path) @save_filename = nil @fill_values = {} load_fields_from_pdf!(pdf_path, @pdftk, self) @pdf_path = pdf_path || self.class.default_pdf_path end |
Class Method Details
.default_pdf_path ⇒ Object
75 76 77 |
# File 'lib/base_form.rb', line 75 def self.default_pdf_path "lib/pdfs/#{self.form_name}.pdf" end |
.mapper_path ⇒ Object
71 72 73 |
# File 'lib/base_form.rb', line 71 def self.mapper_path "lib/mappings/#{self.form_name}.json" end |
Instance Method Details
#filename ⇒ Object
53 54 55 |
# File 'lib/base_form.rb', line 53 def filename @save_filename end |
#fill_attributes ⇒ Object
49 50 51 |
# File 'lib/base_form.rb', line 49 def fill_attributes @fill_values end |
#get_attr(field) ⇒ Object
61 62 63 |
# File 'lib/base_form.rb', line 61 def get_attr(field) @fill_values[field] end |
#get_mapper_fields(path) ⇒ Object
12 13 14 |
# File 'lib/base_form.rb', line 12 def get_mapper_fields(path) JSON.parse(File.read(path)) end |
#init_pdftk(pdftk_path) ⇒ Object
8 9 10 |
# File 'lib/base_form.rb', line 8 def init_pdftk(pdftk_path) PdfForms.new(pdftk_path || Cliver.detect('pdftk')) end |
#load_fields_from_pdf!(pdf_path, pdftk, form_object) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/base_form.rb', line 16 def load_fields_from_pdf!(pdf_path, pdftk, form_object) return if pdf_path.nil? fields = pdftk.get_fields(pdf_path) fields.each do |field| value = field.value rescue nil form_object.set_attr(field.name, value) end end |
#read_field(field_name) ⇒ Object
45 46 47 |
# File 'lib/base_form.rb', line 45 def read_field(field_name) read_fields.find {|f| f["name"] == field_name}["value"] end |
#read_fields ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/base_form.rb', line 34 def read_fields @pdftk.get_fields(@pdf_path).map do |field| { "name" => field.name, "options" => field., "type" => field.type, "value" => field.value } end end |
#save(save_path = 'tmp') ⇒ Object
65 66 67 68 69 |
# File 'lib/base_form.rb', line 65 def save(save_path='tmp') filename = "#{save_path}/#{self.class.form_name}_#{Time.now.to_i}.pdf" @pdftk.fill_form @pdf_path, filename, @fill_values @filename = filename end |
#set_attr(field, value) ⇒ Object
57 58 59 |
# File 'lib/base_form.rb', line 57 def set_attr(field, value) @fill_values[field] = value end |