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.
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