Class: Garb::Session
- Inherits:
-
Object
- Object
- Garb::Session
- Defined in:
- lib/garb/session.rb
Class Attribute Summary collapse
-
.sessions ⇒ Object
readonly
Returns the value of attribute sessions.
Instance Attribute Summary collapse
-
#auth_token ⇒ Object
Returns the value of attribute auth_token.
-
#email ⇒ Object
readonly
Returns the value of attribute email.
Class Method Summary collapse
- .auth_token(email = nil) ⇒ Object
- .default ⇒ Object
- .email(email = nil) ⇒ Object
- .find_session(email) ⇒ Object
- .login(email, password, opts = {}) ⇒ Object
- .update_or_create(creds) ⇒ Object
Instance Method Summary collapse
-
#initialize(creds = {}) ⇒ Session
constructor
A new instance of Session.
- #profiles ⇒ Object
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
.sessions ⇒ Object (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_token ⇒ Object
Returns the value of attribute auth_token.
43 44 45 |
# File 'lib/garb/session.rb', line 43 def auth_token @auth_token end |
#email ⇒ Object (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 |
.default ⇒ Object
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.login(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 |