analytics-psw 0.0.9 → 0.1.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 +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
|