Class: YiffSpace::Utils::UserResolvable
- Inherits:
-
Object
- Object
- YiffSpace::Utils::UserResolvable
- Defined in:
- lib/yiffspace/utils/user_resolvable.rb
Instance Attribute Summary collapse
-
#ip_addr ⇒ Object
readonly
Returns the value of attribute ip_addr.
-
#user ⇒ Object
(also: #resolve)
readonly
Returns the value of attribute user.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #===(other) ⇒ Object
-
#initialize(user, ip_addr, validate: true) ⇒ UserResolvable
constructor
A new instance of UserResolvable.
- #is_a?(other) ⇒ Boolean
- #resolvable(ip_addr = nil) ⇒ Object
Constructor Details
#initialize(user, ip_addr, validate: true) ⇒ UserResolvable
Returns a new instance of UserResolvable.
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 11 def initialize(user, ip_addr, validate: true) if user.is_a?(YiffSpace.config.user_resolvable_class) TraceLogger.warn(self.class.name.demodulize, "Unexpectedly received #{user.class.name} for user argument") user = recursive_resolve(user) end @user = user ip_addr = ip_addr.to_s if ip_addr.is_a?(IPAddr) @ip_addr = ip_addr return unless validate raise(ArgumentError, "Expected User for user argument, got #{user.inspect} (#{user.class.name})") unless user.is_a?(YiffSpace.config.user_class) raise(ArgumentError, "Expected String for ip_addr argument, got #{ip_addr.inspect} (#{ip_addr.class.name})") unless ip_addr.is_a?(String) end |
Instance Attribute Details
#ip_addr ⇒ Object (readonly)
Returns the value of attribute ip_addr.
9 10 11 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 9 def ip_addr @ip_addr end |
#user ⇒ Object (readonly) Also known as: resolve
Returns the value of attribute user.
9 10 11 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 9 def user @user end |
Class Method Details
Instance Method Details
#==(other) ⇒ Object
46 47 48 49 50 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 46 def ==(other) return other == user if other.is_a?(YiffSpace.config.user_class) other.is_a?(YiffSpace.config.user_resolvable_class) && user == other.user end |
#===(other) ⇒ Object
52 53 54 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 52 def ===(other) (other == YiffSpace.config.user_like_class && user.is_a?(YiffSpace.config.user_class)) || super end |
#is_a?(other) ⇒ Boolean
56 57 58 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 56 def is_a?(other) (other == YiffSpace.config.user_like_class && user.is_a?(YiffSpace.config.user_class)) || super end |
#resolvable(ip_addr = nil) ⇒ Object
26 27 28 29 |
# File 'lib/yiffspace/utils/user_resolvable.rb', line 26 def resolvable(ip_addr = nil) @ip_addr = ip_addr if ip_addr.present? self end |