trabajo-afectivo/app/models/object_lookup.rb

37 lines
745 B
Ruby
Raw Normal View History

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