Class: EventMachine::EmailServer::Sqlite3UserStore
- Inherits:
-
AbstractUserStore
- Object
- AbstractUserStore
- EventMachine::EmailServer::Sqlite3UserStore
- Defined in:
- lib/eventmachine/email_server/sqlite3.rb
Instance Method Summary collapse
- #add_user(user) ⇒ Object
- #delete_user(user) ⇒ Object
-
#initialize(sqlite3, tablename = "users") ⇒ Sqlite3UserStore
constructor
A new instance of Sqlite3UserStore.
- #user_by_emailaddress(address) ⇒ Object
- #user_by_field(field, value) ⇒ Object
- #user_by_id(id) ⇒ Object
- #user_by_username(username) ⇒ Object
Methods inherited from AbstractUserStore
Constructor Details
#initialize(sqlite3, tablename = "users") ⇒ Sqlite3UserStore
Returns a new instance of Sqlite3UserStore.
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 7 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 |
Instance Method Details
#add_user(user) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 21 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) ⇒ Object
40 41 42 43 44 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 40 def delete_user(user) if user.id @db.execute("DELETE FROM #{@tablename} WHERE id = ?", user.id) end end |
#user_by_emailaddress(address) ⇒ Object
59 60 61 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 59 def user_by_emailaddress(address) user_by_field("address", address) end |
#user_by_field(field, value) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 46 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) ⇒ Object
63 64 65 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 63 def user_by_id(id) user_by_field("id", id) end |
#user_by_username(username) ⇒ Object
55 56 57 |
# File 'lib/eventmachine/email_server/sqlite3.rb', line 55 def user_by_username(username) user_by_field("username", username) end |