Class: Garb::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/garb/session.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(creds = {}) ⇒ Session

Returns a new instance of Session.



38
39
40
41
# File 'lib/garb/session.rb', line 38

def initialize(creds={})
  @email = creds[:email]
  @auth_token = creds[:auth_token]
end

Class Attribute Details

.sessionsObject (readonly)

Returns the value of attribute sessions.



3
4
5
# File 'lib/garb/session.rb', line 3

def sessions
  @sessions
end

Instance Attribute Details

#auth_tokenObject

Returns the value of attribute auth_token.



43
44
45
# File 'lib/garb/session.rb', line 43

def auth_token
  @auth_token
end

#emailObject (readonly)

Returns the value of attribute email.



44
45
46
# File 'lib/garb/session.rb', line 44

def email
  @email
end

Class Method Details

.auth_token(email = nil) ⇒ Object



13
14
15
# File 'lib/garb/session.rb', line 13

def self.auth_token(email=nil)
  email ? find_session(email).auth_token : default.auth_token
end

.defaultObject



25
26
27
# File 'lib/garb/session.rb', line 25

def self.default
  @sessions.first
end

.email(email = nil) ⇒ Object



17
18
19
# File 'lib/garb/session.rb', line 17

def self.email(email=nil)
  email || default.email
end

.find_session(email) ⇒ Object



21
22
23
# File 'lib/garb/session.rb', line 21

def self.find_session(email)
  @sessions.find {|session| session.email == email}
end

.login(email, password, opts = {}) ⇒ Object



7
8
9
10
11
# File 'lib/garb/session.rb', line 7

def self.(email, password, opts={})
  auth_request = AuthenticationRequest.new(email, password)
  creds = { :email => email, :auth_token => auth_request.auth_token(opts) }
  update_or_create(creds)
end

.update_or_create(creds) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/garb/session.rb', line 29

def self.update_or_create(creds)
  if session = find_session(creds[:email])
    session.auth_token = creds[:auth_token]
  else
    @sessions << session = new(creds)
  end
  session
end

Instance Method Details

#profilesObject



46
47
48
# File 'lib/garb/session.rb', line 46

def profiles
  Profile.all
end