Module: Joggle::Store::PStore::User
- Included in:
- All
- Defined in:
- lib/joggle/store/pstore/user.rb
Overview
Mixin that adds user store methods for PStore backend.
Note: You’re probably looking for Joggle::Store::PStore::All
Instance Method Summary collapse
-
#add_user(key, row) ⇒ Object
Add user to store.
-
#delete_user(key) ⇒ Object
Delete given user from store.
-
#each_user(&block) ⇒ Object
Iterate over all users in store.
-
#get_user(key) ⇒ Object
Get information about given user.
-
#has_user?(key) ⇒ Boolean
Does the given user exist?.
-
#ignored?(key) ⇒ Boolean
Is the given user ignored?.
-
#update_user(key, row) ⇒ Object
Update user’s store entry.
-
#user_store_key(key) ⇒ Object
Map user key to PStore root key.
Instance Method Details
#add_user(key, row) ⇒ Object
Add user to store.
15 16 17 18 19 20 21 |
# File 'lib/joggle/store/pstore/user.rb', line 15 def add_user(key, row) key = user_store_key(key) @store.transaction do |s| s[key] = row end end |
#delete_user(key) ⇒ Object
Delete given user from store.
79 80 81 82 83 84 85 |
# File 'lib/joggle/store/pstore/user.rb', line 79 def delete_user(key) key = user_store_key(key) @store.transaction do |s| s.delete(key) end end |
#each_user(&block) ⇒ Object
Iterate over all users in store.
66 67 68 69 70 71 72 73 74 |
# File 'lib/joggle/store/pstore/user.rb', line 66 def each_user(&block) users = @store.transaction(true) do |s| s.roots.inject([]) do |r, key| (key =~ /^user-/) ? r << s[key] : r end end users.each(&block) end |
#get_user(key) ⇒ Object
Get information about given user.
37 38 39 40 41 42 43 |
# File 'lib/joggle/store/pstore/user.rb', line 37 def get_user(key) key = user_store_key(key) @store.transaction(true) do |s| s[key] end end |
#has_user?(key) ⇒ Boolean
Does the given user exist?
55 56 57 58 59 60 61 |
# File 'lib/joggle/store/pstore/user.rb', line 55 def has_user?(key) key = user_store_key(key) @store.transaction(true) do |s| s.root?(key) end end |
#ignored?(key) ⇒ Boolean
Is the given user ignored?
48 49 50 |
# File 'lib/joggle/store/pstore/user.rb', line 48 def ignored?(key) get_user(key)['ignored'] end |
#update_user(key, row) ⇒ Object
Update user’s store entry.
26 27 28 29 30 31 32 |
# File 'lib/joggle/store/pstore/user.rb', line 26 def update_user(key, row) key = user_store_key(key) @store.transaction do |s| row.each { |k, v| s[key][k] = v } end end |
#user_store_key(key) ⇒ Object
Map user key to PStore root key.
90 91 92 |
# File 'lib/joggle/store/pstore/user.rb', line 90 def user_store_key(key) 'user-' << Digest::MD5.hexdigest(key.gsub(/\/.*$/, '')) end |