Class: Mixpanel::URI

Inherits:
Object
  • Object
show all
Defined in:
lib/mixpanel/uri.rb

Overview

Utilities to assist generating and requesting URIs

Class Method Summary collapse

Class Method Details

.encode(params) ⇒ Object



17
18
19
# File 'lib/mixpanel/uri.rb', line 17

def self.encode(params)
  params.map { |key, val| "#{key}=#{CGI.escape(val.to_s)}" }.sort.join('&')
end

.get(uri, timeout, secret) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/mixpanel/uri.rb', line 21

def self.get(uri, timeout, secret)
  ::URI.parse(uri).read(
    read_timeout: timeout,
    http_basic_authentication: [secret, nil]
  )
rescue OpenURI::HTTPError => error
  raise HTTPError, JSON.parse(error.io.read)['error']
end

.mixpanel(resource, params) ⇒ Object



12
13
14
15
# File 'lib/mixpanel/uri.rb', line 12

def self.mixpanel(resource, params)
  base = Mixpanel::Client.base_uri_for_resource(resource)
  "#{File.join([base, resource.to_s])}?#{encode(params)}"
end