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.



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

def redis
  @redis
end

#token_suffixObject (readonly)

Returns the value of attribute token_suffix.



321
322
323
# File 'lib/bone/api.rb', line 321

def token_suffix
  @token_suffix
end

Instance Method Details

#connectObject



364
365
366
# File 'lib/bone/api.rb', line 364

def connect
  Familia.uri = Bone.source
end

#destroy(token, secret) ⇒ Object



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

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

#generateObject

Raises:

  • (RuntimeError)


347
348
349
350
351
352
353
354
355
356
357
# File 'lib/bone/api.rb', line 347

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



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

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

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

Returns:

  • (Boolean)


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

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

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



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

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

#register(token, secret) ⇒ Object

Raises:

  • (RuntimeError)


341
342
343
344
345
346
# File 'lib/bone/api.rb', line 341

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



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

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

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



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

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:

  • (Boolean)


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

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