Class: Client
- Inherits:
-
Object
- Object
- Client
- Defined in:
- lib/repldb.rb
Instance Method Summary collapse
-
#del(key) ⇒ Object
Deletes
key
. -
#del_all ⇒ Object
Deletes all keys, ultimately emptying the database.
-
#exists?(key) ⇒ Boolean
Check if
key
exists. -
#get(key, default = nil) ⇒ Object
Gets
key
. -
#get_hash ⇒ Object
Gets all the keys as a hash.
-
#initialize(url = ENV['REPLIT_DB_URL']) ⇒ Client
constructor
Change
url
to point to a different path. -
#keys(prefix = '') ⇒ Object
Get all the keys as an array.
-
#set(key, val) ⇒ Object
Sets
key
toval
. -
#set_hash(hash) ⇒ Object
This will append
hash
.
Constructor Details
#initialize(url = ENV['REPLIT_DB_URL']) ⇒ Client
Change url
to point to a different path.
9 10 11 |
# File 'lib/repldb.rb', line 9 def initialize(url = ENV['REPLIT_DB_URL']) @url = url end |
Instance Method Details
#del(key) ⇒ Object
Deletes key
.
46 47 48 49 50 51 52 53 |
# File 'lib/repldb.rb', line 46 def del(key) uri = URI.parse("#{@url}/#{serialize(key)}") req = Net::HTTP::Delete.new(uri.path) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.request(req) end |
#del_all ⇒ Object
Deletes all keys, ultimately emptying the database.
56 57 58 |
# File 'lib/repldb.rb', line 56 def del_all keys.each { |k| del(k) } end |
#exists?(key) ⇒ Boolean
Check if key
exists.
81 82 83 |
# File 'lib/repldb.rb', line 81 def exists?(key) !get(key).nil? end |
#get(key, default = nil) ⇒ Object
Gets key
. If it doesn’t exist, <tt>default<tt> will be used.
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/repldb.rb', line 24 def get(key, default = nil) val = get_url("#{@url}/#{serialize(key)}") if val.body == '' default else begin JSON.parse(val.body) rescue StandardError default end end end |
#get_hash ⇒ Object
Gets all the keys as a hash.
72 73 74 75 76 77 |
# File 'lib/repldb.rb', line 72 def get_hash o = {} ks = keys ks.each { |k| o[k] = get(k) } o end |
#keys(prefix = '') ⇒ Object
Get all the keys as an array. prefix
can be used to get all keys with a prefix.
40 41 42 |
# File 'lib/repldb.rb', line 40 def keys(prefix = '') get_url("#{@url}?prefix=#{prefix}").body.split("\n").map { |k| deserialize(k) } end |
#set(key, val) ⇒ Object
Sets key
to val
.
16 17 18 |
# File 'lib/repldb.rb', line 16 def set(key, val) post_url(@url.to_s, serialize(key) => JSON.generate(val)) end |
#set_hash(hash) ⇒ Object
This will append hash
. **This will NOT replace existing keys!**
63 64 65 66 67 68 69 |
# File 'lib/repldb.rb', line 63 def set_hash(hash) if hash.is_a? Hash hash.each { |k, v| set(k, v) } else raise '[GemDb] Error: Argument must be a hash' end end |