class Ecoportal::API::V1::PersonSchema
Public Instance Methods
[](id)
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 25 def [](id) @fields_by_alt_id or index_fields @fields_by_id[id] || @fields_by_alt_id[id] end
fields()
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 10 def fields @fields_by_id or index_fields @fields_by_id.values end
fields_by_alt_id()
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 20 def fields_by_alt_id @fields_by_alt_id or index_fields @fields_by_alt_id end
fields_by_id()
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 15 def fields_by_id @fields_by_id or index_fields @fields_by_id end
index_fields()
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 30 def index_fields @fields_by_id = {} @fields_by_alt_id = {} doc["fields"].each do |field| wrapped = schema_field_class.new(field) @fields_by_id[wrapped.id] = wrapped @fields_by_alt_id[wrapped.alt_id] = wrapped end end
initialize_details(details)
click to toggle source
# File lib/ecoportal/api/v1/person_schema.rb, line 40 def initialize_details(details) details.schema_id = id details.doc["fields"] = fields.map do |field| field.doc.slice(*%w[id alt_id name multiple type shared]).merge( "value" => field.multiple ? [] : nil ) end end