analytics-psw 0.0.5 → 0.0.6

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 +99 -99
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75574711d1ca2e4c45546a0a1349c6e321cdefb2
4
- data.tar.gz: f8926d51d32e9e5f0192b047e07510839effe58e
3
+ metadata.gz: fe0c7434249cf66e30bf8b4615b8fc059ef26f52
4
+ data.tar.gz: 9d491fa4a11171f9f977cb5ec073302bcf59f4a2
5
5
  SHA512:
6
- metadata.gz: a06e68ef5a53c2a0d1ba85726052dbf4abcb18aaac436231636e52dddfc248928d0e3a2c91847ad5d9b2cb2573a213170fc0bcff521a2224208d95d128f36dcb
7
- data.tar.gz: e75ccb3dfddaf206a1ed4d06d0ac8845feb04e0345a5d4dd798685daca4ec2c0a8a0119b04f7a15622e55d92af1bd611446c603ec8f230f9817321e52f15972b
6
+ metadata.gz: 886806b59dc92b9bf7332944bdde76917285771abb895b25a499384db405c1f46ce4db6a37bef456b2adad34adfe68dbe2d90a13dc723d164282cbca9dfaeb0d
7
+ data.tar.gz: ba1ff44fbab4d5c1e95eeb18e81cb1ebac8edfb5b3d7c5d564ffe23fe233074aa5542e236302f8d47d25c781525ce1d0853c5f6878797993381bfda3262301a1
data/lib/analytics-psw.rb CHANGED
@@ -1,100 +1,100 @@
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 = opts['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
- return Faraday.new(@server_url) unless @proxy == ""
97
- Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
98
- end
99
-
1
+ require 'faraday'
2
+ require 'json'
3
+
4
+ class AnalyticsPSW
5
+
6
+ VERSION = "0.0.6"
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 = opts['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
+ return Faraday.new(@server_url) if @proxy == "" or @proxy == nil
97
+ Faraday.new(@server_url, {:proxy => {:uri => @proxy}})
98
+ end
99
+
100
100
  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.5
4
+ version: 0.0.6
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-23 00:00:00.000000000 Z
11
+ date: 2014-01-24 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.0.14
112
+ rubygems_version: 2.1.11
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Perceptive Cloud Platform Analytics Service Wrapper