aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/refinery/blog/posts_controller.rb6
-rw-r--r--spec/controllers/refinery/blog/posts_controller_spec.rb24
2 files changed, 29 insertions, 1 deletions
diff --git a/app/controllers/refinery/blog/posts_controller.rb b/app/controllers/refinery/blog/posts_controller.rb
index 999b49a..dbb2af8 100644
--- a/app/controllers/refinery/blog/posts_controller.rb
+++ b/app/controllers/refinery/blog/posts_controller.rb
@@ -10,7 +10,11 @@ module Refinery
def index
# Rss feeders are greedy. Let's give them every blog post instead of paginating.
- (@posts = Post.live.includes(:comments, :categories)) if request.format.rss?
+ if request.format.rss?
+ @posts = Post.live.includes(:comments, :categories)
+ #limit rss feed for services (like feedburner) who have max size
+ @posts = Post.recent(params["max_results"]) if params["max_results"].present?
+ end
respond_with (@posts) do |format|
format.html
format.rss { render :layout => false }
diff --git a/spec/controllers/refinery/blog/posts_controller_spec.rb b/spec/controllers/refinery/blog/posts_controller_spec.rb
new file mode 100644
index 0000000..ee948a5
--- /dev/null
+++ b/spec/controllers/refinery/blog/posts_controller_spec.rb
@@ -0,0 +1,24 @@
+require "spec_helper"
+
+module Refinery
+ module Blog
+ describe PostsController do
+ before do
+ FactoryGirl.create(:blog_post, :title => "blogpost_one")
+ FactoryGirl.create(:blog_post, :title => "blogpost_two")
+ FactoryGirl.create(:blog_post, :title => "blogpost_three")
+ end
+
+ it "should not limit rss feed" do
+ get :index, :format => :rss
+ assigns[:posts].size.should == 3
+ end
+
+ it "should limit rss feed" do
+ get :index, :format => :rss, :max_results => 2
+ assigns[:posts].count.should == 2
+ end
+ end
+ end
+end
+