analytics-psw 0.0.5 → 0.0.6

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