object_lookup.rb 745 B

123456789101112131415161718192021222324252627282930313233343536
  1. # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
  2. class ObjectLookup < ApplicationModel
  3. @@cache_object = {} # rubocop:disable Style/ClassVars
  4. def self.by_id(id)
  5. # use cache
  6. return @@cache_object[ id ] if @@cache_object[ id ]
  7. # lookup
  8. lookup = self.lookup(id: id)
  9. return if !lookup
  10. @@cache_object[ id ] = lookup.name
  11. lookup.name
  12. end
  13. def self.by_name(name)
  14. # use cache
  15. return @@cache_object[ name ] if @@cache_object[ name ]
  16. # lookup
  17. lookup = self.lookup(name: name)
  18. if lookup
  19. @@cache_object[ name ] = lookup.id
  20. return lookup.id
  21. end
  22. # create
  23. lookup = create(name: name)
  24. @@cache_object[ name ] = lookup.id
  25. lookup.id
  26. end
  27. end