Added routes, display seems to work so long as you remove the forms from the views.
[feedcatcher.git] / app / controllers / feed_controller.rb
index 30ddb0c6668cfdbe1bc12cfd26fd93ca15492de2..8e89663852aa502a7da8eead64a9726e22dc928c 100644 (file)
@@ -1,9 +1,10 @@
 class FeedController < ApplicationController
-
+  
   skip_before_filter :verify_authenticity_token
 
   def index
-    @feeds = FeedItem.find(:all, :select => 'DISTINCT feed_name')
+    # @feeds = FeedItem.find(:all, :select => 'DISTINCT feed_name')
+    @feeds = FeedItem.select(:feed_name).distinct
     respond_to do |format|
       format.html
       format.rss { render :layout => false }
@@ -12,12 +13,12 @@ class FeedController < ApplicationController
 
   
   def show
-    if valid_feed_name?(params[:feed_name])
-      @feed_items = FeedItem.find_all_by_feed_name(params[:feed_name])
+    if FeedItem::valid_feed_name?(params[:feed_name])
       @feed_name = params[:feed_name]
+      @feed_items = FeedItem.in_feed(@feed_name)
       respond_to do |format|
         if @feed_items == []
-          flash[:notice] = "No items in feed #{params[:feed_name]}"
+          flash[:notice] = "No items in feed #{@feed_name}"
           format.html { redirect_to index_url }
           format.rss  { render :layout => false }
         else
@@ -36,10 +37,10 @@ class FeedController < ApplicationController
 
 
   def update
-    if valid_feed_name?(params[:feed_name])
-      item = FeedItem.find_by_feed_name_and_title(params[:feed_name], params[:title])
+    if FeedItem::valid_feed_name?(params[:feed_name])
+      item = FeedItem.in_feed(params[:feed_name]).entitled(params[:title]).take
       if item
-        if params[:description] == ''
+        if params[:description].empty?
           destroy_item(item)
         else
           update_item(item)
@@ -59,15 +60,6 @@ class FeedController < ApplicationController
 
   private
 
-  def valid_feed_name?(feed_name)
-    Rack::Utils::escape(feed_name) == feed_name and
-      Rack::Utils::unescape(feed_name) == feed_name and
-      feed_name != 'index' and
-      feed_name != 'show' and
-      feed_name != 'update' and
-      feed_name != 'action'
-  end
-
 
   def create_item
     item = FeedItem.new(:feed_name => params[:feed_name],
@@ -107,13 +99,13 @@ class FeedController < ApplicationController
 
   def destroy_item(item)
     if item.destroy
-      flash[:notice] = "Element #{params[:title]} destroyed"
+      flash[:notice] = "Element #{params[:title]} deleted"
       respond_to do |format|
         format.html { redirect_to feed_url(params[:feed_name]) }
         format.rss  { head :ok }
       end
     else
-      flash[:notice] = "Element #{params[:title]} could not be destroyed"
+      flash[:notice] = "Element #{params[:title]} could not be deleted"
       respond_to do |format|
         format.html { redirect_to feed_url(params[:feed_name]) }
         format.rss  { head :unprocessable_entity }