Class: RepositoryStorage
- Inherits:
-
Object
- Object
- RepositoryStorage
- Includes:
- DataMapper::Resource
- Defined in:
- lib/dm-cutie/models/repository_storage.rb
Overview
Storage information for a particular model & repository This table is a denormalized combination of Repositories and Models
Class Method Summary collapse
Instance Method Summary collapse
- #count_operation(op) ⇒ Object
- #read_to_write_ratio ⇒ Object
- #total_deletes ⇒ Object
- #total_inserts ⇒ Object
- #total_selects ⇒ Object
- #total_updates ⇒ Object
Class Method Details
.find_or_make(r, a, s, m) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 24 def RepositoryStorage.find_or_make(r,a,s,m) _signature = RepositoryStorage.names_to_signature(r,a,s,m) _rs = RepositoryStorage.first(:signature => _signature) || RepositoryStorage.new if _rs.new? _rs.signature = _signature _rs.repo_name = r _rs.adapter_name = a _rs.storage_name = s _rs.model_name = m _rs.save end _rs end |
.names_to_signature(r, a, s, m) ⇒ Object
64 65 66 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 64 def RepositoryStorage.names_to_signature(r,a,s,m) Digest::SHA1.hexdigest("#{r}>#{a}>#{s}>#{m}") end |
Instance Method Details
#count_operation(op) ⇒ Object
40 41 42 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 40 def count_operation(op) GeneralizedQuery.all(GeneralizedQuery.query_storage_links.repository_storage.id => self.id, :operation => op).length end |
#read_to_write_ratio ⇒ Object
56 57 58 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 56 def read_to_write_ratio "#{total_selects}:#{total_inserts+total_deletes+total_updates}" end |
#total_deletes ⇒ Object
50 51 52 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 50 def total_deletes @total_deletes ||= count_operation(:delete) end |
#total_inserts ⇒ Object
47 48 49 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 47 def total_inserts @total_inserts ||= count_operation(:insert) end |
#total_selects ⇒ Object
44 45 46 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 44 def total_selects @total_selects ||= count_operation(:select) end |
#total_updates ⇒ Object
53 54 55 |
# File 'lib/dm-cutie/models/repository_storage.rb', line 53 def total_updates @total_updates ||= count_operation(:update) end |