class Virility::Strategy

Attributes

http_proxyaddr[RW]
http_proxyport[RW]
original_url[RW]
response[RW]
results[RW]
url[RW]

Public Class Methods

new(url, proxy: {}) click to toggle source
# File lib/virility/strategy.rb, line 8
def initialize(url, proxy: {})
  @original_url = url
  @url = encode(url)
  @results = {}
  @http_proxyaddr = proxy.dig(:http_proxyaddr)
  @http_proxyport = proxy.dig(:http_proxyport)
end

Public Instance Methods

call_strategy() click to toggle source

Call Strategy

# File lib/virility/strategy.rb, line 41
def call_strategy
  @response = census
end
census() click to toggle source

Abstract Methods - Delete eventually

# File lib/virility/strategy.rb, line 20
def census
  raise "Abstract Method census called on #{self.class} - Please define this method"
end
collect_results() click to toggle source

Results

# File lib/virility/strategy.rb, line 49
def collect_results
  if respond_to?(:outcome)
    @results = valid_response_test ? outcome : {}
  else
    @results = valid_response_test ? @response.parsed_response : {}
  end
end
count() click to toggle source
# File lib/virility/strategy.rb, line 24
def count
  raise "Abstract Method count called on #{self.class} - Please define this method"
end
get_result(key) click to toggle source

Dynamic Methods

# File lib/virility/strategy.rb, line 72
def get_result key
  if result_exists?(key)
    results[key.to_s]
  else
    0
  end
end
method_missing(name, *args, &block) click to toggle source
# File lib/virility/strategy.rb, line 84
def method_missing(name, *args, &block)
  if result_exists?(name)
    get_result(name)
  else
    0
  end
end
poll() click to toggle source

Poll

# File lib/virility/strategy.rb, line 32
def poll
  call_strategy
  collect_results
end
result_exists?(key) click to toggle source
# File lib/virility/strategy.rb, line 80
def result_exists? key
  !results[key.to_s].nil?
end
valid_response_test() click to toggle source

Parsed Response Test - Overwrite if needed

# File lib/virility/strategy.rb, line 96
def valid_response_test
  @response.respond_to?(:parsed_response) and @response.parsed_response.is_a?(Hash)
end