Class: Keen::Client

Inherits:
Object
  • Object
show all
Includes:
MaintenanceMethods, PublishingMethods, QueryingMethods
Defined in:
lib/keen/client.rb,
lib/keen/client/querying_methods.rb,
lib/keen/client/publishing_methods.rb,
lib/keen/client/maintenance_methods.rb

Defined Under Namespace

Modules: MaintenanceMethods, PublishingMethods, QueryingMethods

Constant Summary collapse

CONFIG =
{
  :api_url => "https://api.keen.io",
  :api_version => "3.0",
  :api_headers => lambda { |authorization, sync_or_async|
    user_agent = "keen-gem, v#{Keen::VERSION}, #{sync_or_async}"
    user_agent += ", #{RUBY_VERSION}, #{RUBY_PLATFORM}, #{RUBY_PATCHLEVEL}"
    if defined?(RUBY_ENGINE)
      user_agent += ", #{RUBY_ENGINE}"
    end
    { "Content-Type" => "application/json",
      "User-Agent" => user_agent,
      "Authorization" => authorization }
  }
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MaintenanceMethods

#delete

Methods included from QueryingMethods

#average, #count, #count_unique, #extraction, #funnel, #maximum, #minimum, #multi_analysis, #select_unique, #sum

Methods included from PublishingMethods

#add_event, #beacon_url, #publish, #publish_async, #publish_batch

Constructor Details

#initialize(*args) ⇒ Client

Returns a new instance of Client.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/keen/client.rb', line 35

def initialize(*args)
  options = args[0]
  unless options.is_a?(Hash)
    # deprecated, pass a hash of options instead
    options = {
      :project_id => args[0],
      :write_key => args[1],
      :read_key => args[2],
    }.merge(args[3] || {})
  end

  self.project_id, self.write_key, self.read_key, self.master_key = options.values_at(
    :project_id, :write_key, :read_key, :master_key)

  self.api_url = options[:api_url] || CONFIG[:api_url]
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(_method, *args, &block) ⇒ Object (private)



122
123
124
125
126
127
128
129
130
131
132
# File 'lib/keen/client.rb', line 122

def method_missing(_method, *args, &block)
  if config = CONFIG[_method.to_sym]
    if config.is_a?(Proc)
      config.call(*args)
    else
      config
    end
  else
    super
  end
end

Instance Attribute Details

#api_urlObject

Returns the value of attribute api_url.



18
19
20
# File 'lib/keen/client.rb', line 18

def api_url
  @api_url
end

#master_keyObject

Returns the value of attribute master_key.



18
19
20
# File 'lib/keen/client.rb', line 18

def master_key
  @master_key
end

#project_idObject

Returns the value of attribute project_id.



18
19
20
# File 'lib/keen/client.rb', line 18

def project_id
  @project_id
end

#read_keyObject

Returns the value of attribute read_key.



18
19
20
# File 'lib/keen/client.rb', line 18

def read_key
  @read_key
end

#write_keyObject

Returns the value of attribute write_key.



18
19
20
# File 'lib/keen/client.rb', line 18

def write_key
  @write_key
end