analytics-psw 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/analytics-psw.rb +38 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7b734790fb9ee2506c504372e73f1519b55562a
|
4
|
+
data.tar.gz: d4ac1d25f848cc6b62e54c9178b6a819922f43cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fa836545d19823c98705bf00fef78859ef1e42b838940b6c0105eaa617588785c1c9114d33693b559c22a024927200d8ceab0fa5651da7bcd2123dd10c754ef
|
7
|
+
data.tar.gz: 48a8204692a574822b975855bb13174e7924f4f45175ebe73777e39fdf30ed3fb1b1e2fff214208a6cc59006ba9bd68e69fc9b11e931baa0fe92f291d2030d15
|
data/lib/analytics-psw.rb
CHANGED
@@ -3,7 +3,7 @@ require 'json'
|
|
3
3
|
|
4
4
|
class AnalyticsPSW
|
5
5
|
|
6
|
-
VERSION = "0.0
|
6
|
+
VERSION = "0.1.0"
|
7
7
|
API_VERSION = "v#{VERSION}"
|
8
8
|
API_URL = "/api/#{API_VERSION}/services"
|
9
9
|
JSON_CONTENT_TYPE = 'application/json'
|
@@ -13,7 +13,10 @@ class AnalyticsPSW
|
|
13
13
|
def initialize(opts = {})
|
14
14
|
set_vars_from_opts(opts)
|
15
15
|
@conn = faraday_connection
|
16
|
-
|
16
|
+
service = find_or_create_service(@service_name)
|
17
|
+
@service_location = service["location"] if service
|
18
|
+
find_or_create_event_types(@event_types) if @event_types
|
19
|
+
find_or_create_dimensions(@dimensions) if @dimensions
|
17
20
|
end
|
18
21
|
|
19
22
|
def record_event(event_type, metadata = {})
|
@@ -49,6 +52,8 @@ class AnalyticsPSW
|
|
49
52
|
@server_url = @server_url.chomp("/")
|
50
53
|
@proxy = opts['proxy']
|
51
54
|
@proxy = "" if @server_url.start_with?("http://127.0.0.1") or @server_url.start_with?("http://localhost")
|
55
|
+
@event_types = opts['event_types']
|
56
|
+
@dimensions = opts['dimensions']
|
52
57
|
end
|
53
58
|
|
54
59
|
def post_json(url, object_type, metadata)
|
@@ -77,11 +82,39 @@ class AnalyticsPSW
|
|
77
82
|
metadata
|
78
83
|
end
|
79
84
|
|
85
|
+
def find_or_create_event_types(event_types)
|
86
|
+
all_event_types = JSON.parse(get_with_hash("#{@service_location}/event_types.json").body)
|
87
|
+
all_event_types["event_types"].each do |event_type|
|
88
|
+
event_types.delete(event_type["name"]) if event_types.include?(event_type["name"])
|
89
|
+
end
|
90
|
+
event_types.each do |event_type|
|
91
|
+
create_event_type(event_type)
|
92
|
+
end
|
93
|
+
event_types
|
94
|
+
end
|
95
|
+
|
96
|
+
def find_or_create_dimensions(dimensions)
|
97
|
+
all_dimensions = get_all_dimensions
|
98
|
+
dimensions.each do |dimension|
|
99
|
+
dimension.each do |name, data_type|
|
100
|
+
create_dimension(name, data_type) unless all_dimensions.include?(name)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def get_all_dimensions
|
106
|
+
all_dimensions = []
|
107
|
+
dimensions = JSON.parse(get_with_hash("#{@service_location}/dimensions.json").body)
|
108
|
+
dimensions["dimensions"].each do |one_dimension|
|
109
|
+
all_dimensions << one_dimension["name"]
|
110
|
+
end
|
111
|
+
all_dimensions
|
112
|
+
end
|
113
|
+
|
80
114
|
def find_or_create_service(service_name)
|
81
115
|
service_location = find_service_location(service_name)
|
82
116
|
if !service_location
|
83
|
-
|
84
|
-
service_location = resp["location"]
|
117
|
+
service_location = create_service(service_name)
|
85
118
|
end
|
86
119
|
service_location
|
87
120
|
end
|
@@ -90,7 +123,7 @@ class AnalyticsPSW
|
|
90
123
|
service_location = nil
|
91
124
|
all_services = JSON.parse(get_with_hash("#{API_URL}.json").body)
|
92
125
|
all_services["services"].each do |service|
|
93
|
-
service_location = service
|
126
|
+
service_location = service if service["name"] == service_name
|
94
127
|
end
|
95
128
|
service_location
|
96
129
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytics-psw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Keyes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|