Module: ActiveRecord::Base::IdNameCache::ClassMethods
- Defined in:
- lib/activerecord_idnamecache.rb
Instance Method Summary collapse
- #[](key = nil) ⇒ Object
- #set_key_value(key, value) ⇒ Object
- #set_key_value_without_create(key, value) ⇒ Object
Instance Method Details
#[](key = nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/activerecord_idnamecache.rb', line 21 def [] key = nil return nil if key.nil? _k, _v = case key when Fixnum, Integer [:idname_id, :idname_name] when String key = key.strip [:idname_name, :idname_id] end raise "#{key.inspect} [#{key.class}] Please use Integer or String" if _k.nil? k = "#{self.send(_v)}/#{key}"[0..249] v = self._hash_cache[k] if v.nil? m = self.could_create ? "find_or_create_by_" : "find_by_" record = self.send("#{m}#{self.send(_k)}", key) v = record.send(self.send(_v)) if record self._hash_cache[k] = v end v end |
#set_key_value(key, value) ⇒ Object
44 45 46 47 |
# File 'lib/activerecord_idnamecache.rb', line 44 def set_key_value key, value self.could_create = true _set_key_value key, value end |
#set_key_value_without_create(key, value) ⇒ Object
48 49 50 51 |
# File 'lib/activerecord_idnamecache.rb', line 48 def set_key_value_without_create key, value self.could_create = false _set_key_value key, value end |