Class: Zold::Remotes::Remote

Inherits:
Object
  • Object
show all
Defined in:
lib/zold/remotes.rb

Overview

One remote.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host, port, score, idx, log: Log::Quiet.new, network: 'test') ⇒ Remote

Returns a new instance of Remote.



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/zold/remotes.rb', line 66

def initialize(host, port, score, idx, log: Log::Quiet.new, network: 'test')
  @host = host
  raise 'Post must be Integer' unless port.is_a?(Integer)
  @port = port
  raise 'Score must be of type Score' unless score.is_a?(Score)
  @score = score
  raise 'Idx must be of type Integer' unless idx.is_a?(Integer)
  @idx = idx
  raise 'Network can\'t be nil' if network.nil?
  @network = network
  @log = log
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



65
66
67
# File 'lib/zold/remotes.rb', line 65

def host
  @host
end

#portObject (readonly)

Returns the value of attribute port.



65
66
67
# File 'lib/zold/remotes.rb', line 65

def port
  @port
end

Instance Method Details

#assert_code(code, response) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/zold/remotes.rb', line 87

def assert_code(code, response)
  msg = response.message.strip
  return if response.code.to_i == code
  @log.debug("#{response.code} \"#{response.message}\" at \"#{response.body}\"")
  raise "Unexpected HTTP code #{response.code}, instead of #{code}" if msg.empty?
  raise "#{msg} (HTTP code #{response.code}, instead of #{code})"
end

#assert_score_ownership(score) ⇒ Object



100
101
102
103
# File 'lib/zold/remotes.rb', line 100

def assert_score_ownership(score)
  raise "Masqueraded host #{@host} as #{score.host}: #{score}" if @host != score.host
  raise "Masqueraded port #{@port} as #{score.port}: #{score}" if @port != score.port
end

#assert_score_strength(score) ⇒ Object



105
106
107
# File 'lib/zold/remotes.rb', line 105

def assert_score_strength(score)
  raise "Score #{score.strength} is too weak (<#{Score::STRENGTH}): #{score}" if score.strength < Score::STRENGTH
end

#assert_score_value(score, min) ⇒ Object



109
110
111
# File 'lib/zold/remotes.rb', line 109

def assert_score_value(score, min)
  raise "Score is too small (<#{min}): #{score}" if score.value < min
end

#assert_valid_score(score) ⇒ Object



95
96
97
98
# File 'lib/zold/remotes.rb', line 95

def assert_valid_score(score)
  raise "Invalid score #{score}" unless score.valid?
  raise "Expired score #{score}" if score.expired?
end

#http(path = '/') ⇒ Object



79
80
81
# File 'lib/zold/remotes.rb', line 79

def http(path = '/')
  Http.new("http://#{@host}:#{@port}#{path}", @score, network: @network)
end

#to_sObject



83
84
85
# File 'lib/zold/remotes.rb', line 83

def to_s
  "#{@host}:#{@port}/#{@idx}"
end