Method: Clickstream::Capture#initialize

Defined in:
lib/clickstream/capture.rb

#initialize(app, opts = {}) ⇒ Capture

Returns a new instance of Capture.

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/clickstream/capture.rb', line 16

def initialize(app, opts={})
  @app = app
  # Options
  @capture          = !!opts[:capture]
  @bench            = opts[:capture] && opts[:bench]
  capture_crawlers  = opts[:capture_crawlers]
  crawlers          = opts[:crawlers] || "(Baidu|Gigabot|Googlebot|libwww-perl|lwp-trivial|msnbot|SiteUptime|Slurp|WordPress|ZIBB|ZyBorg|bot|crawler|spider|robot|crawling|facebook|w3c|coccoc|Daumoa|panopta)"
  api_key           = opts[:api_key]
  api_uri           = opts[:api_uri]
  @filter_params    = opts[:filter_params] || []
  @filter_uri       = opts[:filter_uri] || []

  filter_params.concat(Rails.configuration.filter_parameters || []) if defined?(Rails)

  Clickstream.logger = opts[:logger] if opts[:logger]

  raise ArgumentError, 'API key missing.' if api_key.nil?

  @inspector = Clickstream::Inspector.new api_key, api_uri, crawlers, capture_crawlers, filter_params

  @client = {}
  Clickstream::APIClient.new(api_key, api_uri).handshake { |k, v| @client[k] = v}
end