staccato-rack 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTgwMzI4NDk3OWE0OWE1NDY2MzFjNTU2NzI1YTRkNDljOTUzNjg2Mw==
4
+ YWM4ZDYzNTQ2YmU0MmQ4MDgwYjFlNzZhZmE4ZTU2NjYyNjM2MDI5Zg==
5
5
  data.tar.gz: !binary |-
6
- YzA3ZGRkNzI5MTc0NTcwMjA3ZDgyNDhjYmY4MWNmNjNiNjI1NTUwYw==
6
+ N2RlMjZiODM2Zjc3Mjg1ZWNiN2NhMTg1ZjAyOWJkZTc0MjdmMmJmMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2VlOTI0MDNmYzEyYzQyY2JlODEyNGU1NGYyMjU2OGJlYWExMWQ4ZDQzMzRh
10
- NjBhMmZiY2VjMjY1ZDFkMmJmODEwODJiY2I2ODk0NTRiMWU0OWYyOGRiMDJl
11
- OTk4ZGIwMTkzYTI3OWQzZGQwZDFkZWIyZDI5MDQyZTNiZTY1ZmQ=
9
+ Yjk1ZTc4YTM3NzNmZGZmNTc2MjJiNmQ1NzgyNzk0MjMwNDEyZmQ4MWM5ZWNk
10
+ NmU5YjNkOTViMThjMzIxMTcxOTg0MmRjMTA2Y2JjNmE4NDQzN2I0MWQ4NTg3
11
+ NDUzMjk2Njg4ZjFhNWVjNWJlMGM1Y2Q1Y2IwZjVjY2VhZTU0NjY=
12
12
  data.tar.gz: !binary |-
13
- MDJjZjBkNGFjYWI3Y2I2YWRhNmQzMzk3Y2JiNWU0YzQyYzlkNzMyNDc0Yzky
14
- MjYzYjAwZTYyN2NmYTJhOWY1Y2ViNDQwNjZlYjBlMjM1ZjVhZjk4OTQwMGYy
15
- YzUzZWNjMDQzZWVkMDQ2ZmMzODYyMDkwNDM3NTdjNjMxZWJhODE=
13
+ YWRhODgzMzVkNDgwNzlhYzBjNTE1OGEzOTdjZmRhNDBmZjI3MDQzM2NjMjU0
14
+ ZGVkYWI3ZWRiNmZhZWJhZTc5MGMwNGI0YTk3ODk3MGQzNzA3MTk1MzgxYzM5
15
+ ODFlM2FlNWVlYmFlODE4NGQ5MDRmNjRiOWQ2ZjAzNmQwNTU0ZWI=
data/README.md CHANGED
@@ -27,7 +27,7 @@ using in middleware:
27
27
  using in your Rails application, add the following line to your application config file (`config/application.rb` for Rails 3 and above, `config/environment.rb` for Rails 2):
28
28
 
29
29
  ```ruby
30
- config.middleware.use Staccato::Rack::Middleware, 'UA-TRACKING-KEY-HERE'
30
+ config.middleware.use Staccato::Rack::Middleware, 'UA-TRACKING-KEY-HERE', logger: Rails.logger
31
31
  ```
32
32
  ## Development
33
33
 
data/lib/staccato/rack.rb CHANGED
@@ -5,66 +5,74 @@ require 'ostruct'
5
5
 
6
6
  module Staccato
7
7
  module Rack
8
- # middleware
9
- class Middleware
10
- # page view wrapper
11
- class PageView < OpenStruct
12
- def initialize
13
- super
14
- @custom_metrics = []
15
- @custom_dimensions = []
16
- end
8
+ class PageView < OpenStruct
9
+ def initialize
10
+ super
11
+ @custom_metrics = []
12
+ @custom_dimensions = []
13
+ end
17
14
 
18
- def add_custom_metric(position, value)
19
- @custom_metrics << [position, value]
20
- end
15
+ def add_custom_metric(position, value)
16
+ @custom_metrics << [position, value]
17
+ end
21
18
 
22
- def add_custom_dimension(position, value)
23
- @custom_dimensions << [position, value]
24
- end
19
+ def add_custom_dimension(position, value)
20
+ @custom_dimensions << [position, value]
21
+ end
25
22
 
26
- def track!(default_tracker, tracking_id, request)
27
- page_view_params = marshal_dump
28
- if page_view_params[:client_id]
29
- tracker = Staccato.tracker(tracking_id, page_view_params[:client_id])
30
- else
31
- tracker = default_tracker
32
- end
33
- track_hit(tracker, page_view_params, request)
23
+ def track!(default_tracker, tracking_id, request)
24
+ page_view_params = marshal_dump
25
+ if page_view_params[:client_id]
26
+ tracker = Staccato.tracker(tracking_id, page_view_params[:client_id])
27
+ else
28
+ tracker = default_tracker
34
29
  end
30
+ track_hit(tracker, page_view_params, request)
31
+ end
35
32
 
36
- private
33
+ private
37
34
 
38
- def track_hit(tracker, page_view_params, request)
39
- hit = Staccato::Pageview.new(tracker, page_view_params.merge(path: request.fullpath,
40
- hostname: request.host,
41
- user_agent: request.env['HTTP_USER_AGENT'],
42
- user_ip: request.ip))
43
- add_custom_to_hit(hit)
44
- hit.track!
45
- hit
46
- end
35
+ def track_hit(tracker, page_view_params, request)
36
+ hit = Staccato::Pageview.new(tracker, page_view_params.merge(path: request.fullpath,
37
+ hostname: request.host,
38
+ user_agent: request.env['HTTP_USER_AGENT'],
39
+ user_ip: request.ip))
40
+ add_custom_to_hit(hit)
41
+ r = hit.track!
42
+ logger.info "GA Tracking: #{hit.params.inspect} => #{r.response.code}"
43
+ hit
44
+ end
47
45
 
48
- def add_custom_to_hit(hit)
49
- @custom_metrics.each do |p, v|
50
- hit.add_custom_metric(p, v)
51
- end
52
- @custom_dimensions.each do |p, v|
53
- hit.add_custom_dimension(p, v)
54
- end
46
+ def add_custom_to_hit(hit)
47
+ @custom_metrics.each do |p, v|
48
+ hit.add_custom_metric(p, v)
49
+ end
50
+ @custom_dimensions.each do |p, v|
51
+ hit.add_custom_dimension(p, v)
55
52
  end
56
53
  end
54
+ end
55
+
56
+ class NullLogger
57
+ def info(*)
58
+ end
59
+ end
60
+
61
+ # middleware
62
+ class Middleware
63
+ # page view wrapper
57
64
 
58
65
  attr_accessor :last_hit
59
66
 
60
- def initialize(app, tracking_id)
67
+ def initialize(app, tracking_id, options = {})
61
68
  @app = app
62
69
  @tracking_id = tracking_id
63
70
  @default_tracker = Staccato.tracker(tracking_id)
71
+ @logger = options[:logger] || NullLogger.new
64
72
  end
65
73
 
66
74
  def call(env)
67
- env['staccato.pageview'] = PageView.new
75
+ env['staccato.pageview'] = PageView.new.tap{|p| p.logger = @logger }
68
76
 
69
77
  @last_hit = nil
70
78
  status, headers, body = @app.call(env)
@@ -2,6 +2,6 @@
2
2
  module Staccato
3
3
  # rack module
4
4
  module Rack
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: staccato-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grant Speelman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-04-08 00:00:00.000000000 Z
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack