decompose ActiveRecord script into methods

If I commend out the def and end lines for the "all" method, the script runs fine. However, the goal is to decompose the script into several methods, which fails with:

thufir@ARRAKIS:~/projects/aggregator$ thufir@ARRAKIS:~/projects/aggregator$ ruby rss2mysql.rb rss2mysql.rb:19: class definition in method body thufir@ARRAKIS:~/projects/aggregator$

The script is adapted from:

Practical Ruby Gems http://www.apress.com/book/view/9781590598115 Chapter 5

require 'rubygems' require 'active_record' require 'feed_tools' require 'yaml'

def all

      db = YAML.load_file("database.yml")     ActiveRecord::Base.establish_connection(         :adapter => db["adapter"],         :host => db["host"],         :username => db["username"],         :password => db["password"],         :database => db["database"])

class Items < ActiveRecord::Base end

# If the table doesn't exist, we'll create it. unless Items.table_exists?   ActiveRecord::Schema.define do     create_table :items do |t|         t.column :title, :string         t.column :content, :string         t.column :source, :string         t.column :url, :string         t.column :timestamp, :timestamp         t.column :keyword_id, :integer         t.column :guid, :string         t.column :html, :string       end   end end

feed_url = 'Slashdot

feed=FeedTools::Feed.open(feed_url) feed.items.each do |feed_item|   unless (Items.find_by_title(feed_item.title) \           or Items.find_by_url(feed_item.link) \           or Items.find_by_guid(feed_item.guid))   puts "processing item '#{feed_item.title}' - new"

    Items.new do |newitem|        newitem.title=feed_item.title.gsub(/<[^>]*>/, '')        newitem.guid=feed_item.guid        if feed_item.publisher.name            newitem.source=feed_item.publisher.name        end        newitem.url=feed_item.link        newitem.content=feed_item.description        newitem.timestamp=feed_item.published        newitem.save     end   else     puts "processing item '#{feed_item.title}' - old"   end end

end #end all

thanks,

Thufir

It's telling you what the error is - you cannot define a class (Items) inside a method (at least not with the usual syntax)

Fred