Class: YiffSpace::Utils::Current

Inherits:
ActiveSupport::CurrentAttributes
  • Object
show all
Defined in:
lib/yiffspace/utils/current.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCurrent

Returns a new instance of Current.



8
9
10
11
# File 'lib/yiffspace/utils/current.rb', line 8

def initialize
  super
  reset
end

Class Method Details

.as_systemObject



38
39
40
# File 'lib/yiffspace/utils/current.rb', line 38

def self.as_system(&)
  scoped(YiffSpace.config.system_user_getter.call, &)
end

.scoped(user, ip_addr = YiffSpace.config.default_ip_address) ⇒ Object



34
35
36
# File 'lib/yiffspace/utils/current.rb', line 34

def self.scoped(user, ip_addr = YiffSpace.config.default_ip_address, &)
  set(user: user, ip_addr: ip_addr, &)
end

Instance Method Details

#userObject



18
19
20
21
22
23
24
# File 'lib/yiffspace/utils/current.rb', line 18

def user
  value = super
  return value if value.is_a?(YiffSpace.config.user_resolvable_class) || !value.is_a?(YiffSpace.config.user_class)
  return YiffSpace.config.user_resolvable_class.new(value, ip_addr) if ip_addr.present?

  value
end

#user=(value) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/yiffspace/utils/current.rb', line 26

def user=(value)
  if value.is_a?(YiffSpace.config.user_resolvable_class)
    self.ip_addr = value.ip_addr
    value = value.user
  end
  super
end