class EventMachine::EmailServer::Sqlite3UserStore
Public Class Methods
new(sqlite3, tablename = "users")
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 10 def initialize(sqlite3, tablename = "users") @class = User @fields = @class.members.map {|x| x.to_s}.join(", ") @tablename = tablename if sqlite3.class == SQLite3::Database @db = sqlite3 else @db = SQLite3::Database.new(sqlite3) end if @db.table_info(tablename).length == 0 @db.execute("CREATE TABLE #{@tablename} (#{@fields})") end end
Public Instance Methods
add_user(user)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 24 def add_user(user) if user.id u = user_by_id(user.id) end if u @db.execute("UPDATE #{@tablename} SET username=?, password=?, address=? WHERE id=?", user.username, user.password, user.address, user.id) else @db.execute("INSERT INTO #{@tablename} (id,username,password,address) VALUES (?,?,?,?)", user.id, user.username, user.password, user.address) end end
delete_user(user)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 43 def delete_user(user) if user.id @db.execute("DELETE FROM #{@tablename} WHERE id = ?", user.id) end end
user_by_emailaddress(address)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 62 def user_by_emailaddress(address) user_by_field("address", address) end
user_by_field(field, value)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 49 def user_by_field(field, value) rs = @db.execute("SELECT #{@fields} FROM #{@tablename} WHERE #{field}='#{value}'") return nil unless rs rs.each do |row| return User.new(*row) end return nil end
user_by_id(id)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 66 def user_by_id(id) user_by_field("id", id) end
user_by_username(username)
click to toggle source
# File lib/eventmachine/email_server/sqlite3.rb, line 58 def user_by_username(username) user_by_field("username", username) end