class Eco::API::Organization::PersonSchemas
def init_caches
def init_caches return if @caches_init @by_id = self.map { |pg| [pg.id, pg] }.to_h @by_name = self.map { |pg| [pg.name&.downcase, pg] }.to_h @caches_init = true end
def initialize(schemas = [], klass: Ecoportal::API::Internal::PersonSchema)
def initialize(schemas = [], klass: Ecoportal::API::Internal::PersonSchema) @klass = Ecoportal::API::Internal::PersonSchema @caches_init = false super(schemas, klass: @klass) init_caches end
def schema(id_name)
def schema(id_name) @by_id.fetch(schema_id(id_name), nil) end
def schema_id(id_name)
def schema_id(id_name) (@by_name[id_name&.downcase] || @by_id[id_name])&.id end
def schema_name(id_name)
def schema_name(id_name) (@by_id[id_name] || @by_name[id_name&.downcase])&.name&.downcase end
def to_id(name)
def to_id(name) case name when Enumerable name.map do |n| schema(n)&.id end.compact else schema(name)&.id end end
def to_name(id)
def to_name(id) schema(id)&.name end