analytics-psw 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4bf8f2134683aece988ea3f1726661d3d7c556d0
4
- data.tar.gz: afa99d34d709b1efcc5144aa4cc32452445f2fa5
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTdmY2VhYmRjMGVkNTRlOGZjYzQzNmY5MTFmMzU5YWJkY2EwY2M3ZQ==
5
+ data.tar.gz: !binary |-
6
+ NTAzOTQ0YzM0NjY3MTgwYzI0MjUyNmFiODVmM2U3YjI1ZGQwMTAxNA==
5
7
  SHA512:
6
- metadata.gz: 22b87c82d55db88f9b3856ab87c49a28248e649bad06c120395438edea07766dcc2473f63ff9f0d7011d892a1643365fc48280ed907a7f57007f2dbc906e8957
7
- data.tar.gz: e1f5403a0206bace7f8687dbc9512d850a6c1dba8dcf092a65bc04af2c0d58250acfced6f730354afee2ada4a45db55e2615fbe0f3aa7f57b0a61a8ddca5924e
8
+ metadata.gz: !binary |-
9
+ MDIzNzFlYWQ4NjczMjUyMTA2YmM4ZjBiYzU0NDIzZjUwNjQ3MjAxNzRmYmE3
10
+ MzY4ZTNhNjY3MDQ2YzM5YmM1MzI1OGFhZWI0ZTFmZmU1M2Y0Y2VhODI4NjU2
11
+ YmIwMzk3ZGU1ZmMyYzcwNjFkMmM0ODkxMWI2MmU0ODdhZDRkYmQ=
12
+ data.tar.gz: !binary |-
13
+ MjYyZDIzNTBiMmEyMWEzYzIzZWMzMWMxZjMzOWQzNTUwZGU0NmUzNDY1NmFl
14
+ YTg4YzYzMzhiZDI0MjE4NjdlOTNmMDMxYjNkMmE0Nzg5OTQ4YzZiOTY3MDUx
15
+ ZWUzYjJiNGNhYmU2YmFiYjEyNmUzYzg0NmIzMjJmYmNhMTJiMzA=
data/lib/analytics-psw.rb CHANGED
@@ -29,7 +29,12 @@ module AnalyticsPSW
29
29
  AnalyticsPSW::Utilities,
30
30
  AnalyticsPSW::RecentEvents
31
31
 
32
- attr_accessor :service_location
32
+ attr_accessor :service_location, :event_types, :dimensions
33
+
34
+ def self.get(opts = {})
35
+ klass = opts['mock'] ? MockAnalytics : Analytics
36
+ klass.new(opts)
37
+ end
33
38
 
34
39
  def initialize(opts = {})
35
40
  set_vars_from_opts(opts)
@@ -56,4 +61,24 @@ module AnalyticsPSW
56
61
  @client_secret = opts['client_secret']
57
62
  end
58
63
  end
64
+
65
+ class MockAnalytics
66
+ attr_accessor :event_types, :dimensions
67
+
68
+ def initialize(opts = {})
69
+ debug("initializing mock Analytics")
70
+ @event_types = opts['event_types'] || []
71
+ @dimensions = opts['dimensions'] ? (opts['dimensions'].map { |hsh| hsh.keys }.flatten) : []
72
+ end
73
+
74
+ def record_event(event_type, metadata = {}, asynchronous = false)
75
+ debug("record event: #{event_type}, #{metadata.inspect}")
76
+ end
77
+
78
+ def debug(msg)
79
+ return unless defined?(Rails)
80
+
81
+ Rails.logger.info("Analytics: " + msg)
82
+ end
83
+ end
59
84
  end
@@ -54,5 +54,11 @@ module AnalyticsPSW::Rack
54
54
  def request
55
55
  Rack::Request.new(@env)
56
56
  end
57
+
58
+ def analytics_load
59
+ if @env['request_logging.load']
60
+ @env['request_logging.load'].call
61
+ end
62
+ end
57
63
  end
58
64
  end
@@ -3,6 +3,7 @@ module AnalyticsPSW::Rack
3
3
  protected
4
4
 
5
5
  def log_request
6
+ return unless analytics_load
6
7
  return unless analytics_service
7
8
  return unless analytics_event_types.include?(analytics_event_type)
8
9
  analytics_service.record_event(analytics_event_type, log_request_params, true)
@@ -17,15 +18,15 @@ module AnalyticsPSW::Rack
17
18
  end
18
19
 
19
20
  def analytics_event_types
20
- analytics_service.instance_variable_get('@event_types')
21
+ analytics_service.event_types
21
22
  end
22
23
 
23
24
  def analytics_dimensions
24
- analytics_service.instance_variable_get('@dimensions')
25
+ analytics_service.dimensions
25
26
  end
26
27
 
27
28
  def log_request_headers
28
- %w(HTTP_USER_AGENT REQUEST_PATH)
29
+ %w(HTTP_USER_AGENT REQUEST_PATH PATH_INFO SERVER_NAME REMOTE_HOST REQUEST_METHOD)
29
30
  end
30
31
 
31
32
  def log_request_header_params
@@ -41,6 +42,7 @@ module AnalyticsPSW::Rack
41
42
 
42
43
  def canonical_request_path
43
44
  return nil unless defined?(Rails)
45
+ return nil unless Rails.application.routes.respond_to?(:router)
44
46
 
45
47
  Rails.application.routes.router.recognize(request) do |route, _|
46
48
  return route.path.spec.to_s
@@ -1,10 +1,27 @@
1
1
  require 'active_model'
2
2
 
3
3
  class AnalyticsReport
4
+ if defined?(ActiveModel::Model)
5
+ include ActiveModel::Model
6
+ else
7
+ extend ActiveSupport::Concern
8
+ include ActiveModel::Validations
9
+ include ActiveModel::Conversion
4
10
 
5
- include ActiveModel::Model
11
+ included do
12
+ extend ActiveModel::Naming
13
+ extend ActiveModel::Translation
14
+ end
15
+
16
+ def initialize(params={})
17
+ params.each do |attr, value|
18
+ self.public_send("#{attr}=", value)
19
+ end if params
20
+
21
+ super()
22
+ end
23
+ end
6
24
 
7
25
  # :rows is an array of hashes where each hash is a row containing AnalyticsReportField objects
8
26
  attr_accessor :status, :rows, :error_message
9
-
10
- end
27
+ end
@@ -1,8 +1,26 @@
1
1
  require 'active_model'
2
2
 
3
3
  class AnalyticsReportField
4
-
5
- include ActiveModel::Model
4
+ if defined?(ActiveModel::Model)
5
+ include ActiveModel::Model
6
+ else
7
+ extend ActiveSupport::Concern
8
+ include ActiveModel::Validations
9
+ include ActiveModel::Conversion
10
+
11
+ included do
12
+ extend ActiveModel::Naming
13
+ extend ActiveModel::Translation
14
+ end
15
+
16
+ def initialize(params={})
17
+ params.each do |attr, value|
18
+ self.public_send("#{attr}=", value)
19
+ end if params
20
+
21
+ super()
22
+ end
23
+ end
6
24
 
7
25
  attr_accessor :name, :value, :is_aggregate
8
26
 
@@ -22,4 +40,4 @@ class AnalyticsReportField
22
40
  @value['stddev'].present? ? @value['stddev'] : 0
23
41
  end
24
42
 
25
- end
43
+ end
@@ -39,7 +39,7 @@ namespace :analytics do
39
39
  end
40
40
  opts[:where] = [
41
41
  "event_time gte #{begin_date}",
42
- "event_time lte #{end_date}",
42
+ "event_time lte #{end_date}T23:59:59+00:00",
43
43
  ]
44
44
  dump_report(event_type, analytics.query_analytics(opts))
45
45
  puts ""
@@ -56,6 +56,6 @@ def analytics_define_group_by_tasks(analytics, event_type, dimensions)
56
56
  end
57
57
 
58
58
  desc "Display all analytics reports"
59
- task all: Rake.application.tasks.select { |t| t.scope.path == "analytics" && t.name != 'analytics:group_by' }.map(&:name)
59
+ task all: Rake.application.tasks.select { |t| (t.scope.is_a?(Array) ? t.scope == [ "analytics" ] : t.scope.path == "analytics") && t.name != 'analytics:group_by' }.map(&:name)
60
60
  end
61
61
  end
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analytics-psw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lexmark International Technology S.A
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-08 00:00:00.000000000 Z
11
+ date: 2015-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.14.8
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.14.8
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.14.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.14.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: faraday
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: eventmachine
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: em-http-request
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: activemodel
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - ! '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - ! '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: Analytics-psw is a wrapper providing access to the Perceptive Cloud Platform
@@ -172,17 +172,17 @@ require_paths:
172
172
  - lib
173
173
  required_ruby_version: !ruby/object:Gem::Requirement
174
174
  requirements:
175
- - - ">="
175
+ - - ! '>='
176
176
  - !ruby/object:Gem::Version
177
177
  version: '0'
178
178
  required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - ">="
180
+ - - ! '>='
181
181
  - !ruby/object:Gem::Version
182
182
  version: '0'
183
183
  requirements: []
184
184
  rubyforge_project:
185
- rubygems_version: 2.4.3
185
+ rubygems_version: 2.4.5
186
186
  signing_key:
187
187
  specification_version: 4
188
188
  summary: Perceptive Cloud Platform Analytics Service Wrapper