Class: Eir::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/eir/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequest

Returns a new instance of Request.



6
7
8
9
10
# 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

Instance Attribute Details

#server_urlObject (readonly)

Returns the value of attribute server_url.



3
4
5
# File 'lib/eir/request.rb', line 3

def server_url
  @server_url
end

#urisObject

Returns the value of attribute uris.



4
5
6
# File 'lib/eir/request.rb', line 4

def uris
  @uris
end

Instance Method Details

#find_yamlObject



12
13
14
15
16
17
18
19
20
21
# 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) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/eir/request.rb', line 31

def get_http_response_code(uri)
  Timeout.timeout(5) do
    request(uri).code
  end
rescue
  false
end

#goObject



39
40
41
42
43
44
45
46
47
48
# 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) ⇒ Object



23
24
25
26
27
28
29
# 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