Class: Trend::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/trend/client.rb

Constant Summary collapse

HEADERS =
{
  "Content-Type" => "application/json",
  "Accept" => "application/json",
  "User-Agent" => "trend-ruby/#{Trend::VERSION}"
}

Instance Method Summary collapse

Constructor Details

#initialize(url: nil, api_key: nil, timeout: 30) ⇒ Client

Returns a new instance of Client.



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/trend/client.rb', line 11

def initialize(url: nil, api_key: nil, timeout: 30)
  @api_key = api_key || Trend.api_key
  url ||= Trend.url
  if !url
    raise ArgumentError, "Trend url not set"
  end
  @uri = URI.parse(url)
  @http = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl = true if @uri.scheme == "https"
  @http.open_timeout = timeout
  @http.read_timeout = timeout
end

Instance Method Details

#anomalies(series, params = {}) ⇒ Object



24
25
26
27
# File 'lib/trend/client.rb', line 24

def anomalies(series, params = {})
  resp = make_request("anomalies", series, params)
  resp["anomalies"].map { |v| parse_time(v) }
end

#correlation(series, series2, params = {}) ⇒ Object



34
35
36
37
# File 'lib/trend/client.rb', line 34

def correlation(series, series2, params = {})
  resp = make_request("correlation", series, params.merge(series2: series2))
  resp["correlation"]
end

#forecast(series, params = {}) ⇒ Object



29
30
31
32
# File 'lib/trend/client.rb', line 29

def forecast(series, params = {})
  resp = make_request("forecast", series, params)
  Hash[resp["forecast"].map { |k, v| [parse_time(k), v] }]
end