Class: Hello::RequestManager::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/hello/request_manager/abstract.rb

Direct Known Subclasses

Stateful, Stateless

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Abstract

Returns a new instance of Abstract.



4
5
6
# File 'lib/hello/request_manager/abstract.rb', line 4

def initialize(request)
  @request = request
end

Instance Method Details

#clear_cacheObject



8
9
10
# File 'lib/hello/request_manager/abstract.rb', line 8

def clear_cache
  @current_access = @current_accesses = nil
end

#current_accessObject



32
33
34
# File 'lib/hello/request_manager/abstract.rb', line 32

def current_access
  fail NotImplementedError
end

#current_accessesObject



28
29
30
# File 'lib/hello/request_manager/abstract.rb', line 28

def current_accesses
  fail NotImplementedError
end

#current_userObject



24
25
26
# File 'lib/hello/request_manager/abstract.rb', line 24

def current_user
  current_access && current_access.user
end

#envObject



72
73
74
# File 'lib/hello/request_manager/abstract.rb', line 72

def env
  request.env
end

#is_current_access?(access) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/hello/request_manager/abstract.rb', line 20

def is_current_access?(access)
  current_access == access
end

#is_current_user?(user) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/hello/request_manager/abstract.rb', line 16

def is_current_user?(user)
  current_user == user
end

#remote_ipObject



64
65
66
# File 'lib/hello/request_manager/abstract.rb', line 64

def remote_ip
  request.remote_ip
end

#requestObject



68
69
70
# File 'lib/hello/request_manager/abstract.rb', line 68

def request
  @request
end

#sign_in!(user, expires_at = nil, sudo_expires_at = nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/hello/request_manager/abstract.rb', line 40

def sign_in!(user, expires_at = nil, sudo_expires_at = nil)
  expires_at ||= 30.minutes.from_now

  attrs = {
    user:               user,
    user_agent_string:  user_agent,
    expires_at:         expires_at,
    ip:                 remote_ip
  }
  attrs[:sudo_expires_at] = sudo_expires_at if sudo_expires_at
  ::Access.create!(attrs)
end

#sign_out!(access = current_access) ⇒ Object



53
54
55
56
# File 'lib/hello/request_manager/abstract.rb', line 53

def sign_out!(access = current_access)
  access && access.destroy!
  clear_cache
end

#signed_in?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/hello/request_manager/abstract.rb', line 12

def signed_in?
  !!current_user
end

#stateful?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/hello/request_manager/abstract.rb', line 36

def stateful?
  fail NotImplementedError
end

#user_agentObject

protected



60
61
62
# File 'lib/hello/request_manager/abstract.rb', line 60

def user_agent
  request.user_agent || 'blank_user_agent'
end