<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,6 +14,19 @@ class Feed &lt; ActiveRecord::Base
 	
 	before_validation_on_create :before_created
 	before_validation_on_update :before_updated
+	before_destroy :before_destroyed
+	
+	def name
+		return &quot;#{self.id}:#{self.feed_url}&quot;
+	end
+	
+	protected
+	
+	def before_destroyed
+	  self.posts.each do |p|
+	    p.destroy
+	  end
+	end
 	
 	def before_created
     self.url = LWR::Simple.normalize(self.url).to_s
@@ -67,14 +80,21 @@ class Feed &lt; ActiveRecord::Base
     self.title = fp.feed.title
     true # if i made it this far, it was successful callback  
 	end
-	
-
-	def name
-		return &quot;#{self.id}:#{self.feed_url}&quot;
-	end
 
 	def before_updated
-	  self.fp = FeedParser.parse self.feed_url, { :etag =&gt; self.etag, :modified =&gt; self.last_modified }
+	  if self.etag and self.last_modified
+	    puts &quot;Both etag and last_modified&quot;
+	    self.fp = FeedParser.parse self.feed_url, { :etag =&gt; self.etag, :modified =&gt; self.last_modified }
+	  elsif self.etag
+	    puts &quot;Only etag&quot;
+	    self.fp = FeedParser.parse self.feed_url, { :etag =&gt; self.etag }
+	  elsif self.last_modified
+	    puts &quot;Only last_modified&quot;
+	    self.fp = FeedParser.parse self.feed_url, { :modified =&gt; self.last_modified }
+	  else
+	    puts &quot;Neither etag or last_modified&quot;
+	    self.fp = FeedParser.parse self.feed_url
+	  end
 	
 		if self.fp.status.nil? or self.fp.status &gt;= 400.to_s
       $stderr.puts &quot;Errors with #{self.feed_url}!&quot;
@@ -87,7 +107,7 @@ class Feed &lt; ActiveRecord::Base
 		end
     
 		self.link = self.fp.feed.link
-		self.title = self.fp.feed.title
+		self.title = self.fp.feed.title unless self.title
 		self.etag = self.fp.etag
 		self.last_modified = self.fp.modified_time
 		
@@ -95,33 +115,44 @@ class Feed &lt; ActiveRecord::Base
 		# self.feed_url =
 		
 		self.fp.entries.each do |e|
-		  post = Post.new :e =&gt; e
+		  post = Post.entry(e, self)
+		  if post
+		    if post.save
+		      puts &quot;Successfully created #{post.entry_id}&quot;
+		    end
+		  end
+      # post = Post.new :e =&gt; e
+      # if post.save
+      #   puts &quot;Successfully saved #{post.entry_id}&quot;
+      # else
+      #   puts &quot;Error with #{pp e}&quot;
+      # end
 		end
 		
 		true 
 	end
 
-	def fetch
-		parse(self.feed_url, :etag =&gt; self.etag, :modified =&gt; self.last_modified)
-
-	  # unless self.changed
-	 #     puts &quot;#{self.name}: Feed unchanged&quot;
-	 #     return
-	 #   end
-
-		self.fp.entries.each do |e|
-			post = Post.entry(e, self)
-		end
-
-		self.save
-
-		if feed.save
-			puts &quot;#{feed.name} successfully fetched!&quot;
-		else
-			puts feed.errors.full_messages
-			pp feed
-		end
-	end
+  # def fetch
+  #   parse(self.feed_url, :etag =&gt; self.etag, :modified =&gt; self.last_modified)
+  # 
+  #   # unless self.changed
+  #  #     puts &quot;#{self.name}: Feed unchanged&quot;
+  #  #     return
+  #  #   end
+  # 
+  #   self.fp.entries.each do |e|
+  #     post = Post.entry(e, self)
+  #   end
+  # 
+  #   self.save
+  # 
+  #   if feed.save
+  #     puts &quot;#{feed.name} successfully fetched!&quot;
+  #   else
+  #     puts feed.errors.full_messages
+  #     pp feed
+  #   end
+  # end
 
 
 end</diff>
      <filename>lib/rfeed/models/Feed.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ class Post &lt; ActiveRecord::Base
 	validates_presence_of :entry_id, :feed_id, :title, :link
 
 	validates_uniqueness_of :entry_id
-
+		
 	def self.entry(e, feed = nil)
 		entry_id = nil
 		if not e[&quot;id&quot;].empty? # e.id will try to trigger Object.id</diff>
      <filename>lib/rfeed/models/Post.rb</filename>
    </modified>
    <modified>
      <diff>@@ -54,3 +54,30 @@ Migrating to CreateFeeds (1)
 Migrating to CreatePosts (2)
   *[4;36;1mSQL (20.4ms)*[0m   *[0;1mCREATE TABLE `posts` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `entry_id` varchar(255), `feed_id` int(11), `title` varchar(255), `link` varchar(255), `description` text, `date` datetime, `updated_at` datetime, `created_at` datetime) ENGINE=InnoDB*[0m
   *[4;35;1mSQL (0.6ms)*[0m   *[0mINSERT INTO schema_migrations (version) VALUES ('2')*[0m
+  *[4;36;1mSQL (0.2ms)*[0m   *[0;1mSET SQL_AUTO_IS_NULL=0*[0m
+  *[4;35;1mSQL (0.4ms)*[0m   *[0mSHOW TABLES*[0m
+  *[4;36;1mSQL (3.1ms)*[0m   *[0;1mCREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB*[0m
+  *[4;35;1mSQL (5.3ms)*[0m   *[0mCREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)*[0m
+  *[4;36;1mSQL (0.4ms)*[0m   *[0;1mSHOW TABLES*[0m
+  *[4;35;1mSQL (0.3ms)*[0m   *[0mSELECT version FROM schema_migrations*[0m
+Migrating to CreateFeeds (1)
+  *[4;36;1mSQL (2.5ms)*[0m   *[0;1mCREATE TABLE `feeds` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `link` varchar(255), `feed_url` varchar(255), `title` varchar(255), `etag` varchar(255), `last_modified` datetime, `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB*[0m
+  *[4;35;1mSQL (0.8ms)*[0m   *[0mINSERT INTO schema_migrations (version) VALUES ('1')*[0m
+Migrating to CreatePosts (2)
+  *[4;36;1mSQL (1.8ms)*[0m   *[0;1mCREATE TABLE `posts` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `entry_id` varchar(255), `feed_id` int(11), `title` varchar(255), `link` varchar(255), `description` text, `date` datetime, `updated_at` datetime, `created_at` datetime) ENGINE=InnoDB*[0m
+  *[4;35;1mSQL (0.9ms)*[0m   *[0mINSERT INTO schema_migrations (version) VALUES ('2')*[0m
+  *[4;36;1mSQL (23.1ms)*[0m   *[0;1mSET SQL_AUTO_IS_NULL=0*[0m
+  *[4;35;1mSQL (17.4ms)*[0m   *[0mSHOW TABLES*[0m
+  *[4;36;1mSQL (19.1ms)*[0m   *[0;1mSELECT version FROM schema_migrations*[0m
+Migrating to CreateFeeds (1)
+Migrating to CreatePosts (2)
+  *[4;36;1mSQL (0.2ms)*[0m   *[0;1mSET SQL_AUTO_IS_NULL=0*[0m
+  *[4;35;1mSQL (0.3ms)*[0m   *[0mSHOW TABLES*[0m
+  *[4;36;1mSQL (0.2ms)*[0m   *[0;1mSELECT version FROM schema_migrations*[0m
+Migrating to CreateFeeds (1)
+Migrating to CreatePosts (2)
+  *[4;36;1mSQL (39.9ms)*[0m   *[0;1mSET SQL_AUTO_IS_NULL=0*[0m
+  *[4;35;1mSQL (3.3ms)*[0m   *[0mSHOW TABLES*[0m
+  *[4;36;1mSQL (8.0ms)*[0m   *[0;1mSELECT version FROM schema_migrations*[0m
+Migrating to CreateFeeds (1)
+Migrating to CreatePosts (2)</diff>
      <filename>log/database.log</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>49adcfcc8d684fd0fae939368f8247c1ac4b70e7</id>
    </parent>
  </parents>
  <author>
    <name>David Moreno</name>
    <email>david@axiombox.com</email>
  </author>
  <url>http://github.com/damog/rfeed/commit/cf4ae6fa5f4e13cada07c6464db79e0b2fbb00ee</url>
  <id>cf4ae6fa5f4e13cada07c6464db79e0b2fbb00ee</id>
  <committed-date>2009-02-10T10:12:33-08:00</committed-date>
  <authored-date>2009-02-10T10:12:33-08:00</authored-date>
  <message>rfeed barely alive</message>
  <tree>283278cb043f317f5de1c7d045334a7659e48b0b</tree>
  <committer>
    <name>David Moreno</name>
    <email>david@axiombox.com</email>
  </committer>
</commit>
