Class: ProxyService::Proxy

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_service/proxy.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(worker) ⇒ Proxy

Returns a new instance of Proxy.

Parameters:



7
8
9
# File 'lib/proxy_service/proxy.rb', line 7

def initialize(worker)
  @worker = worker
end

Instance Attribute Details

#failuresObject



19
20
21
# File 'lib/proxy_service/proxy.rb', line 19

def failures
  @failures ||= message['failures']
end

#ipObject



11
12
13
# File 'lib/proxy_service/proxy.rb', line 11

def ip
  @ip ||= message['ip']
end

#messageObject



23
24
25
# File 'lib/proxy_service/proxy.rb', line 23

def message
  @message ||= { 'failures' => 0 }.merge(JSON.parse(worker.message.body))
end

#portObject



15
16
17
# File 'lib/proxy_service/proxy.rb', line 15

def port
  @port ||= message['port']
end

#workerObject

Returns the value of attribute worker.



3
4
5
# File 'lib/proxy_service/proxy.rb', line 3

def worker
  @worker
end

Instance Method Details

#blocked!Object



43
44
45
# File 'lib/proxy_service/proxy.rb', line 43

def blocked!
  @blocked = true
end

#blocked?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/proxy_service/proxy.rb', line 39

def blocked?
  !!@blocked
end

#increment_failuresObject



31
32
33
# File 'lib/proxy_service/proxy.rb', line 31

def increment_failures
  @failures += 1
end

#releaseObject



27
28
29
# File 'lib/proxy_service/proxy.rb', line 27

def release
  worker.release(self, blocked?)
end

#reset_failuresObject



35
36
37
# File 'lib/proxy_service/proxy.rb', line 35

def reset_failures
  @failures = 0
end

#to_hObject

Coercion overrides



51
52
53
54
55
56
57
# File 'lib/proxy_service/proxy.rb', line 51

def to_h
  {
    ip: ip,
    port: port,
    failures: failures
  }
end

#to_jsonObject



59
60
61
# File 'lib/proxy_service/proxy.rb', line 59

def to_json
  to_h.to_json
end

#to_sObject Also known as: inspect



63
64
65
# File 'lib/proxy_service/proxy.rb', line 63

def to_s
  %(#<Proxy:#{object_id} @ip="#{ip}", @port="#{port}", @failures=#{failures}, @blocked=#{blocked?}, @message=#{message}, @worker="...">)
end