Hopefully cut down the stream rendering time by memoizing the new comment form
This commit is contained in:
parent
2ab4d1664d
commit
18319f8e42
4 changed files with 28 additions and 3 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
# the COPYRIGHT file.
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
module StreamHelper
|
module StreamHelper
|
||||||
|
GSUB_THIS = "FIUSDHVIUSHDVIUBAIUHAPOIUXJM"
|
||||||
def comment_toggle(count)
|
def comment_toggle(count)
|
||||||
if count == 0
|
if count == 0
|
||||||
link_to "#{t('comments.new_comment.comment').downcase}", '#', :class => "show_post_comments"
|
link_to "#{t('comments.new_comment.comment').downcase}", '#', :class => "show_post_comments"
|
||||||
|
|
@ -14,4 +14,9 @@ module StreamHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def new_comment_form(post_id)
|
||||||
|
@form ||= controller.render_to_string(
|
||||||
|
:partial => 'comments/new_comment', :locals => {:post_id => GSUB_THIS})
|
||||||
|
@form.gsub(GSUB_THIS, post_id.to_s)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,5 @@
|
||||||
-else
|
-else
|
||||||
= render :partial => 'comments/comment', :collection => comment_hashes, :as => :hash
|
= render :partial => 'comments/comment', :collection => comment_hashes, :as => :hash
|
||||||
%li.comment.show
|
%li.comment.show
|
||||||
= render 'comments/new_comment', :post_id => post_id
|
= new_comment_form(post_id)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ describe AspectsController do
|
||||||
it 'takes time' do
|
it 'takes time' do
|
||||||
Benchmark.realtime{
|
Benchmark.realtime{
|
||||||
get :index
|
get :index
|
||||||
}.should < 3
|
}.should < 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
20
spec/helpers/stream_helper_spec.rb
Normal file
20
spec/helpers/stream_helper_spec.rb
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe StreamHelper do
|
||||||
|
before do
|
||||||
|
@user = make_user
|
||||||
|
@aspect = @user.aspects.create(:name => 'aspect')
|
||||||
|
@post = @user.post(:status_message, :message => "hi", :to => @aspect.id)
|
||||||
|
end
|
||||||
|
it 'renders a new comment form' do
|
||||||
|
new_comment_form(@post.id).should ==
|
||||||
|
@controller.render_to_string(:partial => 'comments/new_comment', :locals => {:post_id => @post.id})
|
||||||
|
end
|
||||||
|
it 'renders it fast the second time' do
|
||||||
|
new_comment_form(@post.id)
|
||||||
|
time = Benchmark.realtime{
|
||||||
|
new_comment_form(@post.id)
|
||||||
|
}
|
||||||
|
(time*1000).should < 1
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue