analytics-psw 0.0.3 → 0.0.4

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 +98 -98
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 04a65cc794cffd8541a3df2a5c6c1743e2574e23
4
- data.tar.gz: 68a776f1a5157ba653f3cea130d4029c01cf0977
3
+ metadata.gz: 59bd6ee99df8ab35f64909e1ebd76d9df91890d5
4
+ data.tar.gz: a500ffd54a6e840aa334ffa3ce1c13c35134fbbd
5
5
  SHA512:
6
- metadata.gz: 49267f29aa1a377dcf15373184b9ffa864e382b140b9095fea51c92aa58f83646a4ba2c40938cc7419f77b31481bcb712d0c45dbf9133fd7ef9d479b559e2faf
7
- data.tar.gz: 77f23384541f3a2346476f202d53ebf4dbcc1479b1ec1aa18718cdbd7af7a69f17160f3f737a19b68218811abbfbcc040f2b1dda5c313d93d2547951d8e84e50
6
+ metadata.gz: 76d7d4eeed01aa3cce64b36d715e05a5ef7c36150199e72bb1b0253c788c06dc3ee62d2f1c4b1c7dcc2cefd70227f06c106915c7a7824e66acdf7a0eecca0eb6
7
+ data.tar.gz: ffe957ebbf65c8e1e4ddb18cc9c79358d031d1f59bab4209aadcc3ba45a9f0aedfde626a604c911a1271a181891bc2b8b922f20d01ad50dd131d2451cfd5e41c
data/lib/analytics-psw.rb CHANGED
@@ -1,99 +1,99 @@
1
- require 'faraday'
2
- require 'json'
3
-
4
- class AnalyticsPSW
5
-
6
- VERSION = "0.0.1"
7
- API_VERSION = "v#{VERSION}"
8
- API_URL = "/api/#{API_VERSION}/services"
9
- JSON_CONTENT_TYPE = 'application/json'
10
-
11
- attr_accessor :service_location
12
-
13
- def initialize(opts = {})
14
- @server_url = opts['server_url']
15
- service_name = opts['service']
16
- raise "Please ensure you have provided the appropriate server url and service name" unless @server_url && service_name
17
- @proxy = ENV['http_proxy']
18
- @proxy = "" if @server_url.start_with?("http://127.0.0.1") or @server_url.start_with?("http://localhost")
19
- @conn = faraday_connection
20
- @service_location = find_or_create_service(service_name)
21
- end
22
-
23
- def record_event(event_type, metadata = {})
24
- metadata[:event_type] = event_type
25
- post_json("#{@service_location}/events", "event", metadata)
26
- end
27
-
28
- def query_analytics(query_parameters)
29
- resp = get_with_hash("#{@service_location}/reports/query.json", query_parameters)
30
- raise "Problem with your query. Please check the required parameters and try again" if resp.status == 400
31
- JSON.parse(resp.body)
32
- end
33
-
34
- def create_event_type(name, description = "")
35
- metadata = create_metadata({:name => name, :description => description})
36
- post_json("#{@service_location}/event_types", "event_type", metadata)
37
- end
38
-
39
- def create_dimension(name, data_type, units = "", description = "")
40
- metadata = create_metadata({:name => name, :description => description, :data_type => data_type, :units => units})
41
- post_json("#{@service_location}/dimensions", "dimension", metadata)
42
- end
43
-
44
- private
45
-
46
- def post_json(url, object_type, metadata)
47
- json_object = create_json_object(object_type, metadata)
48
- @conn.post do |req|
49
- req.url url
50
- req.headers['Content-Type'] = JSON_CONTENT_TYPE
51
- req.body = json_object
52
- end
53
- end
54
-
55
- def get_with_hash(url, hash_object = {})
56
- @conn.get url, hash_object
57
- end
58
-
59
- def create_json_object(object_type, metadata = {})
60
- json_object= {object_type => metadata}
61
- json_object.to_json
62
- end
63
-
64
- def create_metadata(hashmap)
65
- metadata = {}
66
- hashmap.each do |key, value|
67
- metadata[key] = value unless value == ""
68
- end
69
- metadata
70
- end
71
-
72
- def find_or_create_service(service_name)
73
- service_location = find_service_location(service_name)
74
- if !service_location
75
- resp = create_service(service_name)
76
- service_location = resp["location"]
77
- end
78
- service_location
79
- end
80
-
81
- def find_service_location(service_name)
82
- service_location = nil
83
- all_services = JSON.parse(get_with_hash("#{API_URL}.json").body)
84
- all_services["services"].each do |service|
85
- service_location = service["location"] if service["name"] == service_name
86
- end
87
- service_location
88
- end
89
-
90
- def create_service(name, description = "")
91
- metadata = create_metadata({:name => name, :description => description})
92
- post_json(API_URL, "service", metadata)
93
- end
94
-
95
- def faraday_connection
96
- Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
97
- end
98
-
1
+ require 'faraday'
2
+ require 'json'
3
+
4
+ class AnalyticsPSW
5
+
6
+ VERSION = "0.0.1"
7
+ API_VERSION = "v#{VERSION}"
8
+ API_URL = "/api/#{API_VERSION}/services"
9
+ JSON_CONTENT_TYPE = 'application/json'
10
+
11
+ attr_accessor :service_location
12
+
13
+ def initialize(opts = {})
14
+ @server_url = opts['server_url']
15
+ service_name = opts['service']
16
+ raise "Please ensure you have provided the appropriate server url and service name" unless @server_url && service_name
17
+ @proxy = "" if @server_url.start_with?("http://127.0.0.1") or @server_url.start_with?("http://localhost")
18
+ @conn = faraday_connection
19
+ @service_location = find_or_create_service(service_name)
20
+ end
21
+
22
+ def record_event(event_type, metadata = {})
23
+ metadata[:event_type] = event_type
24
+ post_json("#{@service_location}/events", "event", metadata)
25
+ end
26
+
27
+ def query_analytics(query_parameters)
28
+ resp = get_with_hash("#{@service_location}/reports/query.json", query_parameters)
29
+ raise "Problem with your query. Please check the required parameters and try again" if resp.status == 400
30
+ JSON.parse(resp.body)
31
+ end
32
+
33
+ def create_event_type(name, description = "")
34
+ metadata = create_metadata({:name => name, :description => description})
35
+ post_json("#{@service_location}/event_types", "event_type", metadata)
36
+ end
37
+
38
+ def create_dimension(name, data_type, units = "", description = "")
39
+ metadata = create_metadata({:name => name, :description => description, :data_type => data_type, :units => units})
40
+ post_json("#{@service_location}/dimensions", "dimension", metadata)
41
+ end
42
+
43
+ private
44
+
45
+ def post_json(url, object_type, metadata)
46
+ json_object = create_json_object(object_type, metadata)
47
+ @conn.post do |req|
48
+ req.url url
49
+ req.headers['Content-Type'] = JSON_CONTENT_TYPE
50
+ req.body = json_object
51
+ end
52
+ end
53
+
54
+ def get_with_hash(url, hash_object = {})
55
+ @conn.get url, hash_object
56
+ end
57
+
58
+ def create_json_object(object_type, metadata = {})
59
+ json_object= {object_type => metadata}
60
+ json_object.to_json
61
+ end
62
+
63
+ def create_metadata(hashmap)
64
+ metadata = {}
65
+ hashmap.each do |key, value|
66
+ metadata[key] = value unless value == ""
67
+ end
68
+ metadata
69
+ end
70
+
71
+ def find_or_create_service(service_name)
72
+ service_location = find_service_location(service_name)
73
+ if !service_location
74
+ resp = create_service(service_name)
75
+ service_location = resp["location"]
76
+ end
77
+ service_location
78
+ end
79
+
80
+ def find_service_location(service_name)
81
+ service_location = nil
82
+ all_services = JSON.parse(get_with_hash("#{API_URL}.json").body)
83
+ all_services["services"].each do |service|
84
+ service_location = service["location"] if service["name"] == service_name
85
+ end
86
+ service_location
87
+ end
88
+
89
+ def create_service(name, description = "")
90
+ metadata = create_metadata({:name => name, :description => description})
91
+ post_json(API_URL, "service", metadata)
92
+ end
93
+
94
+ def faraday_connection
95
+ return Faraday.new(@server_url) unless @proxy == ""
96
+ Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
97
+ end
98
+
99
99
  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.3
4
+ version: 0.0.4
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-20 00:00:00.000000000 Z
11
+ date: 2014-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  requirements: []
111
111
  rubyforge_project:
112
- rubygems_version: 2.1.11
112
+ rubygems_version: 2.0.14
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Perceptive Cloud Platform Analytics Service Wrapper