Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User < ActiveRecord::Base
- after_save do
- self.class.limpar_cached
- end
- class << self
- def cached_quantidade
- Rails.cache.fetch([:project, :count]) { count }
- end
- def cached_quantidade_versionadas
- Rails.cache.fetch([:project, :count, :versioned]) { versionadas.count }
- end
- def cached_group_tipo
- Rails.cache.fetch([:project, :count, :versioned, :by_tipo]) do
- r={}
- ProjectVersion::TIPOS_HASH.map { |tipo, nome| r[tipo] = ProjectVersion.where(:tipo=>tipo).group(:project_id).size.size }
- r
- end
- end
- def cached_group_revisao_texto
- Rails.cache.fetch([:project, :count, :versioned, :by_texto]) { versionadas.select('status_revisao_texto, count(*)').group(:status_revisao_texto).count }
- end
- def cached_group_revisao_audio
- Rails.cache.fetch([:project, :count, :versioned, :by_audio]) { versionadas.select('status_revisao_audio, count(*)').group(:status_revisao_audio).count }
- end
- def cached_group_revisao_final
- Rails.cache.fetch([:project, :count, :versioned, :by_final]) { versionadas.select('status_revisao_final, count(*)').group(:status_revisao_final).count }
- end
- def cached_group_revisao_metodo
- Rails.cache.fetch([:project, :count, :versioned, :by_metodo]) { versionadas.select('status_revisao_metodo, count(*)').group(:status_revisao_metodo).count }
- end
- def cached_group_degree
- Rails.cache.fetch([:project, :count, :versioned, :by_degree]) { versionadas.select('degree_id, count(*)').group(:degree_id).count }
- end
- def cached_group_subject
- Rails.cache.fetch([:project, :count, :versioned, :by_subject]) { versionadas.select('subject_id, count(*)').group(:subject_id).count }
- end
- def cached_group_numero
- Rails.cache.fetch([:project, :count, :versioned, :by_numero]) { versionadas.select('numero, count(*)').group(:numero).count }
- end
- def cached_group_producao
- Rails.cache.fetch([:project, :count, :versioned, :by_producao]) { versionadas.select('status_producao, count(*)').group(:status_producao).count }
- end
- def limpar_cached
- Rails.cache.delete([:project, :count])
- Rails.cache.delete([:project, :count, :versioned])
- Rails.cache.delete([:project, :count, :versioned, :by_tipo])
- Rails.cache.delete([:project, :count, :versioned, :by_texto])
- Rails.cache.delete([:project, :count, :versioned, :by_audio])
- Rails.cache.delete([:project, :count, :versioned, :by_final])
- Rails.cache.delete([:project, :count, :versioned, :by_metodo])
- Rails.cache.delete([:project, :count, :versioned, :by_degree])
- Rails.cache.delete([:project, :count, :versioned, :by_subject])
- Rails.cache.delete([:project, :count, :versioned, :by_numero])
- Rails.cache.delete([:project, :count, :versioned, :by_producao])
- end
- end
- end
Add Comment
Please, Sign In to add comment