Class: Protobuf::Rpc::ServiceDirectory::Listing

Inherits:
Delegator
  • Object
show all
Defined in:
lib/protobuf/rpc/service_directory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server) ⇒ Listing

Returns a new instance of Listing.



23
24
25
# File 'lib/protobuf/rpc/service_directory.rb', line 23

def initialize(server)
  update(server)
end

Instance Attribute Details

#expires_atObject (readonly)

Returns the value of attribute expires_at.



21
22
23
# File 'lib/protobuf/rpc/service_directory.rb', line 21

def expires_at
  @expires_at
end

Instance Method Details

#__getobj__Object



52
53
54
# File 'lib/protobuf/rpc/service_directory.rb', line 52

def __getobj__
  @server
end

#current?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/protobuf/rpc/service_directory.rb', line 27

def current?
  !expired?
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/protobuf/rpc/service_directory.rb', line 31

def eql?(other)
  uuid.eql?(other.uuid)
end

#expired?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/protobuf/rpc/service_directory.rb', line 35

def expired?
  Time.now.to_i >= @expires_at
end

#hashObject



39
40
41
# File 'lib/protobuf/rpc/service_directory.rb', line 39

def hash
  uuid.hash
end

#ttlObject



43
44
45
# File 'lib/protobuf/rpc/service_directory.rb', line 43

def ttl
  [super.to_i, 1].max
end

#update(server) ⇒ Object



47
48
49
50
# File 'lib/protobuf/rpc/service_directory.rb', line 47

def update(server)
  @server = server
  @expires_at = Time.now.to_i + ttl
end