module PrefixedIds

def self.find(prefix_id)

def self.find(prefix_id)
  prefix, _ = split_id(prefix_id)
  models.fetch(prefix).find_by_prefix_id(prefix_id)
rescue KeyError
  raise Error, "Unable to find model with prefix `#{prefix}`. Available prefixes are: #{models.keys.join(", ")}"
end

def self.split_id(prefix_id, delimiter = PrefixedIds.delimiter)

Splits a prefixed ID into its prefix and ID
def self.split_id(prefix_id, delimiter = PrefixedIds.delimiter)
  prefix, _, id = prefix_id.to_s.rpartition(delimiter)
  [prefix, id]
end