class Eversign::Mappings::Document

Public Class Methods

extract_collection(content, scope) click to toggle source
# File lib/eversign/mappings/document.rb, line 62
def self.extract_collection(content, scope)
  data = JSON.parse(content)
  result = []
  data.each do |item|
    result << extract_single(item.to_json, nil)
  end
  result
end
extract_single(content, scope) click to toggle source
Calls superclass method
# File lib/eversign/mappings/document.rb, line 71
def self.extract_single(content, scope)
  obj = super(content, scope)
  data = JSON.parse(content)
  if data["fields"]
    data["fields"].each do |field_list|
      field_data = []
      field_list.each do |field|
        extracted_field = Field.extract_single(field.to_json, nil)
        field_data << extracted_field if extracted_field
      end
      obj.add_field_list(field_data)
    end
  end
  obj
end
representation_for(document, isFromTemplate = false) click to toggle source
Calls superclass method
# File lib/eversign/mappings/document.rb, line 87
def self.representation_for(document, isFromTemplate = false)
  data = super(nil, document)
  list = []
  if document.fields
    document.fields.each do |field_list|
      field_data = []
      field_list.each do |field|
        field_data << JSON.parse(Field.representation_for(nil, field))
      end
      list << field_data
    end
  end
  data = JSON.parse(data)
  # Fix for issue 7. When we create a document from template (isFromTemplate=true) fields array is 1 dimentional, so we flatten it:
  data["fields"] = isFromTemplate ? list.flatten : list
  JSON.dump(data)
end