Try the cache_digests gem for Tracks

cache_digests will be part of Rails 4
This commit is contained in:
Reinier Balt 2012-08-27 21:00:51 +02:00
parent 8b1fc99b72
commit 8a8dc47ab8
9 changed files with 134 additions and 105 deletions

View file

@ -16,6 +16,8 @@ gem "aasm"
gem "htmlentities"
gem "swf_fu"
gem "rails_autolink"
gem "cache_digests" #, :git => 'git://github.com/rails/cache_digests.git'
gem "rack-mini-profiler"
# Gems used only for assets and not required
# in production environments by default.
@ -44,6 +46,7 @@ group :development do
end
gem "yard"
gem "tolk"
gem "bullet"
end
group :test do

View file

@ -41,6 +41,10 @@ GEM
bcrypt-ruby (3.0.1)
bluecloth (2.2.0)
builder (3.0.0)
bullet (4.1.6)
uniform_notifier (~> 1.0.0)
cache_digests (0.1.0)
actionpack (>= 3.2)
capybara (1.1.2)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
@ -111,6 +115,8 @@ GEM
rack (1.4.1)
rack-cache (1.2)
rack (>= 0.4)
rack-mini-profiler (0.1.10)
rack (>= 1.1.3)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
@ -178,6 +184,7 @@ GEM
uglifier (1.2.7)
execjs (>= 0.3.0)
multi_json (~> 1.3)
uniform_notifier (1.0.2)
will_paginate (3.0.3)
xpath (0.1.4)
nokogiri (~> 1.3)
@ -193,6 +200,8 @@ DEPENDENCIES
acts_as_list
aruba
bcrypt-ruby
bullet
cache_digests
capybara
coffee-rails
cucumber-rails
@ -203,6 +212,7 @@ DEPENDENCIES
jquery-rails
mongrel (>= 1.2.0.pre2)
mysql2
rack-mini-profiler
rails
rails_autolink
sanitize

View file

@ -50,23 +50,20 @@ class ContextsController < ApplicationController
@pending = @context.todos.pending.includes(Todo::DEFAULT_INCLUDES)
@projects = current_user.projects
@contexts = current_user.contexts
@count = @not_done_todos.count + @deferred.count + @pending.count
end
@contexts = current_user.contexts(true)
if @context.nil?
respond_to do |format|
format.html { render :text => 'Context not found', :status => 404 }
format.xml { render :xml => '<error>Context not found</error>', :status => 404 }
end
else
@page_title = "TRACKS::Context: #{@context.name}"
respond_to do |format|
format.html
format.m &render_context_mobile
format.xml { render :xml => @context.to_xml( :except => :user_id ) }
end
else
respond_to do |format|
format.html { render :text => 'Context not found', :status => 404 }
format.xml { render :xml => '<error>Context not found</error>', :status => 404 }
end
end
end

View file

@ -4,8 +4,8 @@ class Todo < ActiveRecord::Base
after_save :save_predecessors
# associations
belongs_to :context
belongs_to :project
belongs_to :context, :touch => true
belongs_to :project, :touch => true
belongs_to :user
belongs_to :recurring_todo

View file

@ -1,4 +1,7 @@
<% @not_done = @not_done_todos.select {|t| t.context_id == context.id } -%>
<%
@not_done = @not_done_todos.select {|t| t.context_id == context.id }
cache context do
%>
<div id="c<%= context.id %>" class="container context" style="display:<%= (collapsible && @not_done.empty?) ? "none" : "block" %>">
<h2>
<% if collapsible -%>
@ -18,3 +21,4 @@
<%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "context" } %>
</div>
</div>
<% end %>

View file

@ -1,3 +1,4 @@
<% cache project do %>
<div class="container">
<h2 id="project_name_container">
<% if collapsible -%>
@ -19,3 +20,4 @@
<%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "project" } %>
</div>
</div>
<% end %>

View file

@ -6,6 +6,8 @@ parameters = "_source_view=#{@source_view}"
parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
@z_index_counter = @z_index_counter - 1 # for IE z-index bug
@rec_depth ||= 0
cache successor do
%>
<div id="<%= dom_id(successor, 'successor') %>" class="item-container">
<div id="<%= dom_id(successor, 'successor_line') %>">
@ -33,3 +35,4 @@ parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
</div>
</div>
</div>
<% end %>

View file

@ -6,6 +6,8 @@ parameters = "_source_view=#{@source_view}"
parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
@z_index_counter = @z_index_counter - 1 # for IE z-index bug
@rec_depth=0 # to prevent stack overflow on large dependency trees, see _successor.html.erb
cache todo do
%>
<div id="<%= dom_id(todo) %>" class="item-container">
<div id="<%= dom_id(todo, 'line') %>" class="item-show">
@ -43,3 +45,4 @@ parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
<div class="placeholder"> </div>
</div>
</div>
<% end %>

View file

@ -0,0 +1,7 @@
# config for bullet gem
if defined? Bullet
Bullet.enable = false
Bullet.alert = false
Bullet.bullet_logger = true
end