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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/analytics-psw.rb +38 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de0efb83a69a5c20b8bd58daabc909ab7301e6f1
4
- data.tar.gz: 46c672d6321ba3f8719b65f84c268edc60a7595c
3
+ metadata.gz: e7b734790fb9ee2506c504372e73f1519b55562a
4
+ data.tar.gz: d4ac1d25f848cc6b62e54c9178b6a819922f43cb
5
5
  SHA512:
6
- metadata.gz: e3f54f7c433b67e32d3ffc4f264f247a76a495c8479eca12357682ce7dbb3bf600d7a0bdad1c537cd2e096b47f4e9501774c0c6c3855d90027319ad6ecb92c31
7
- data.tar.gz: d0ffdf14ff644f5e51976e9f11a4b52afa26b3d74e6dfbed718c70a9f068ceba558db85415694cc62907a479fa8c3f78944df9b92204a6672edc7843117b48d9
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.9"
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
- @service_location = find_or_create_service(@service_name)
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
- resp = create_service(service_name)
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["location"] if service["name"] == service_name
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.9
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-28 00:00:00.000000000 Z
11
+ date: 2014-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler