Class: Mixpanel::Client
- Inherits:
-
Object
- Object
- Mixpanel::Client
- Defined in:
- lib/mixpanel/utils.rb,
lib/mixpanel/client.rb,
lib/mixpanel/version.rb
Overview
Return metrics from Mixpanel Data API
Defined Under Namespace
Modules: Utils
Constant Summary collapse
- BASE_URI =
'https://mixpanel.com/api/2.0'.freeze
- DATA_URI =
'https://data.mixpanel.com/api/2.0'.freeze
- IMPORT_URI =
'https://api.mixpanel.com'.freeze
- VERSION =
Mixpanel::Client library version
'5.1.0'.freeze
Instance Attribute Summary collapse
-
#api_secret ⇒ Object
Returns the value of attribute api_secret.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(config) ⇒ Client
constructor
Configure the client.
-
#request(resource, options) ⇒ JSON, String
Return mixpanel data as a JSON object or CSV string.
-
#request_uri(resource, options = {}) ⇒ JSON, String
Return mixpanel URI to the data.
Constructor Details
#initialize(config) ⇒ Client
Configure the client
36 37 38 39 40 41 42 43 44 |
# File 'lib/mixpanel/client.rb', line 36 def initialize(config) @api_secret = config[:api_secret] @timeout = config[:timeout] || nil @@base_uri = config[:base_uri] || nil @@data_uri = config[:data_uri] || nil @@import_uri = config[:import_uri] || nil raise ConfigurationError, 'api_secret is required' if @api_secret.nil? end |
Instance Attribute Details
#api_secret ⇒ Object
Returns the value of attribute api_secret.
17 18 19 |
# File 'lib/mixpanel/client.rb', line 17 def api_secret @api_secret end |
#timeout ⇒ Object
Returns the value of attribute timeout.
17 18 19 |
# File 'lib/mixpanel/client.rb', line 17 def timeout @timeout end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
16 17 18 |
# File 'lib/mixpanel/client.rb', line 16 def uri @uri end |
Class Method Details
.base_uri_for_resource(resource) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/mixpanel/client.rb', line 19 def self.base_uri_for_resource(resource) if resource == 'export' @@data_uri ? @@data_uri : DATA_URI elsif resource == 'import' @@import_uri ? @@import_uri : IMPORT_URI else @@base_uri ? @@base_uri : BASE_URI end end |
Instance Method Details
#request(resource, options) ⇒ JSON, String
Return mixpanel data as a JSON object or CSV string
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/mixpanel/client.rb', line 65 def request(resource, ) @uri = request_uri(resource, ) response = URI.get(@uri, @timeout, @api_secret) if %w(export import).include?(resource) && @format != 'raw' response = %([#{response.split("\n").join(',')}]) end Utils.to_hash(response, @format) end |