Module: Bone::API::Redis

Extended by:
Redis
Included in:
Redis
Defined in:
lib/bone/api.rb

Defined Under Namespace

Classes: Key, Token

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#redisObject

Returns the value of attribute redis.



318
319
320
# File 'lib/bone/api.rb', line 318

def redis
  @redis
end

#token_suffixObject (readonly)

Returns the value of attribute token_suffix.



317
318
319
# File 'lib/bone/api.rb', line 317

def token_suffix
  @token_suffix
end

Instance Method Details

#connectObject



360
361
362
# File 'lib/bone/api.rb', line 360

def connect
  Familia.uri = Bone.source
end

#destroy(token, secret) ⇒ Object



333
334
335
336
# File 'lib/bone/api.rb', line 333

def destroy(token, secret)
  Token.tokens.delete token
  Token.new(token).secret.destroy!
end

#generateObject

Raises:



343
344
345
346
347
348
349
350
351
352
353
# File 'lib/bone/api.rb', line 343

def generate
  begin 
    token = Bone.random_token
    attempts ||= 10
  end while token?(token) && !(attempts -= 1).zero?
  secret = Bone.random_secret
  raise RuntimeError, "Could not generate token" if token.nil? || token?(token)
  Token.tokens.add Time.now.utc.to_i, token
  t = Token.new(token).secret = secret
  [token, secret]
end

#get(token, secret, name) ⇒ Object



319
320
321
# File 'lib/bone/api.rb', line 319

def get(token, secret, name)
  Key.new(token, name).value.get   # get returns nil if not set
end

#key?(token, secret, name) ⇒ Boolean

Returns:



330
331
332
# File 'lib/bone/api.rb', line 330

def key?(token, secret, name)
  Key.new(token, name).value.exists?
end

#keys(token, secret, filter = '*') ⇒ Object



327
328
329
# File 'lib/bone/api.rb', line 327

def keys(token, secret, filter='*')
  Token.new(token).keys.to_a
end

#register(token, secret) ⇒ Object

Raises:



337
338
339
340
341
342
# File 'lib/bone/api.rb', line 337

def register(token, secret)
  raise RuntimeError, "Could not generate token" if token.nil? || token?(token)
  Token.tokens.add Time.now.utc.to_i, token
  t = Token.new(token).secret = secret
  token
end

#secret(token) ⇒ Object



354
355
356
# File 'lib/bone/api.rb', line 354

def secret token
  Token.new(token).secret.value
end

#set(token, secret, name, value) ⇒ Object



322
323
324
325
326
# File 'lib/bone/api.rb', line 322

def set(token, secret, name, value)
  Key.new(token, name).value = value
  Token.new(token).keys.add Time.now.utc.to_f, name
  value.to_s
end

#token?(token, secret = nil) ⇒ Boolean

Returns:



357
358
359
# File 'lib/bone/api.rb', line 357

def token?(token, secret=nil)
  Token.tokens.member?(token.to_s)
end