2014-08-23 22:29:04 +00:00
|
|
|
# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
|
|
|
|
|
|
|
|
class ObjectLookup < ApplicationModel
|
|
|
|
@@cache_object = {}
|
|
|
|
|
|
|
|
def self.by_id( id )
|
|
|
|
|
|
|
|
# use cache
|
|
|
|
return @@cache_object[ id ] if @@cache_object[ id ]
|
|
|
|
|
|
|
|
# lookup
|
2014-08-24 08:04:20 +00:00
|
|
|
lookup = self.lookup( :id => id )
|
|
|
|
return if !lookup
|
|
|
|
@@cache_object[ id ] = lookup.name
|
|
|
|
lookup.name
|
2014-08-23 22:29:04 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.by_name( name )
|
|
|
|
|
|
|
|
# use cache
|
|
|
|
return @@cache_object[ name ] if @@cache_object[ name ]
|
|
|
|
|
|
|
|
# lookup
|
2014-08-24 08:04:20 +00:00
|
|
|
lookup = self.lookup( :name => name )
|
|
|
|
if lookup
|
|
|
|
@@cache_object[ name ] = lookup.id
|
|
|
|
return lookup.id
|
2014-08-23 22:29:04 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# create
|
2014-08-24 08:04:20 +00:00
|
|
|
lookup = self.create(
|
2014-08-23 22:29:04 +00:00
|
|
|
:name => name
|
|
|
|
)
|
2014-08-24 08:04:20 +00:00
|
|
|
@@cache_object[ name ] = lookup.id
|
|
|
|
lookup.id
|
2014-08-23 22:29:04 +00:00
|
|
|
end
|
|
|
|
|
2014-08-24 08:04:20 +00:00
|
|
|
end
|