class Eir::Request

Attributes

server_url[R]
uris[RW]

Public Class Methods

new() click to toggle source
# File lib/eir/request.rb, line 6
def initialize
  path_to_yaml = find_yaml
  @uris        = validate_yaml path_to_yaml
  @server_url  = 'http://localhost:8700'
end

Public Instance Methods

find_yaml() click to toggle source
# File lib/eir/request.rb, line 12
def find_yaml
  if File.exist?("#{Dir.pwd}/uris.yaml")
    uris_yaml_file = "#{Dir.pwd}/uris.yaml"
    puts "Found local YAML file: #{uris_yaml_file}"
  else
    uris_yaml_file = "#{File.dirname(__FILE__)}/default_uris.yaml"
    puts "No local YAML file found. Using default YAML file: #{uris_yaml_file}"
  end
  uris_yaml_file
end
get_http_response_code(uri) click to toggle source
# File lib/eir/request.rb, line 31
def get_http_response_code(uri)
  Timeout.timeout(5) do
    request(uri).code
  end
rescue
  false
end
go() click to toggle source
# File lib/eir/request.rb, line 39
def go
  responses = {}
  @uris.each do |uri_name_hash|
    uri_name_hash.each do |uri, name|
      responses.merge!(name => get_http_response_code(uri))
    end
  end

  responses
end
validate_yaml(path_to_yaml) click to toggle source
# File lib/eir/request.rb, line 23
def validate_yaml(path_to_yaml)
  invalid_yaml_error = 'YAML structure incorrect. Please refer to the README.'
  yaml               = YAML.load_file path_to_yaml
  fail(invalid_yaml_error) unless yaml.is_a? Array
  yaml.each { |hash| fail(invalid_yaml_error) unless hash.is_a? Hash }
  yaml
end

Private Instance Methods

request(uri) click to toggle source
# File lib/eir/request.rb, line 52
def request(uri)
  RestClient.get uri
end