Guest User

Untitled

a guest
May 25th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. # second_level_cache_fix.rb
  2. # Oleg Andreev <oleganza@gmail.com>
  3. # November 3, 2008
  4.  
  5. module DataMapper
  6. class Repository
  7. module SecondLevelCacheFix
  8.  
  9. # quick install
  10. def self.install
  11. DataMapper::Repository.send(:include, self)
  12. end
  13.  
  14. # more flexible install using Repository.send(:include, SecondLevelCacheFix)
  15. def self.included(repo_cls)
  16. DataMapper::Model.extend(SLCModel)
  17. DataMapper::Model.append_extensions(SLCModel)
  18. end
  19.  
  20. # ask model for a second_level_cache
  21. def identity_map(model)
  22. @identity_maps[model] ||= IdentityMap.new(model.second_level_cache)
  23. end
  24.  
  25. module SLCModel
  26. attr_accessor :second_level_cache
  27. def second_level_cache
  28. @second_level_cache ||=
  29. (self == DataMapper::Model ? nil : DataMapper::Model.second_level_cache)
  30. end
  31. end
  32.  
  33. end # SecondLevelCacheFix
  34. end # Repository
  35. end # DM
Add Comment
Please, Sign In to add comment