Sha256: 58d5e7a576609fe4b88986f4dfe8d4ffbda07beb96cd3036fb3a06bfb9b045ef

Contents?: true

Size: 1.49 KB

Versions: 10

Compression:

Stored size: 1.49 KB

Contents

module Chatterbot
  
  #
  # routines for optionally interacting with a database for logging
  # tweets, and storing config data there. Uses Sequel to handle the
  # heavy lifing.
  module DB   
    #
    # connect to the database, and generate any missing tables
    def db
      @_db ||= connect_and_validate
    end

    protected  

    #
    # get a DB object from Sequel
    def get_connection
      if has_sequel?
        Sequel.connect(config[:db_uri])
      end
    end
    
    #
    # try and connect to the DB, and create tables that are missing.
    def connect_and_validate
      conn = get_connection
      return if conn.nil?

      if ! conn.tables.include?(:blacklist)
        conn.create_table :blacklist do
          String :user, :primary_key => true
          DateTime :created_at
        end
      end
      
      if ! conn.tables.include?(:tweets)
        conn.create_table :tweets do
          primary_key :id
          String :txt
          String :bot
          String :user
          String :source_id
          String :source_tweet
          
          DateTime :created_at
        end
      end

      if ! conn.tables.include?(:config)
        conn.create_table :config do
          String :id, :primary_key => true

          Bignum :since_id

          String :secret
          String :token
          String :consumer_secret
          String :consumer_key
          
          DateTime :created_at
          DateTime :updated_at
        end
      end
      
      conn
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
chatterbot-0.2.9 lib/chatterbot/db.rb
chatterbot-0.2.8 lib/chatterbot/db.rb
chatterbot-0.2.7 lib/chatterbot/db.rb
chatterbot-0.2.6 lib/chatterbot/db.rb
chatterbot-0.2.5 lib/chatterbot/db.rb
chatterbot-0.2.4 lib/chatterbot/db.rb
chatterbot-0.2.3 lib/chatterbot/db.rb
chatterbot-0.2.2 lib/chatterbot/db.rb
chatterbot-0.2.1 lib/chatterbot/db.rb
chatterbot-0.2.0 lib/chatterbot/db.rb