gosquared 3.0.7 → 3.0.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 591265182e4e5898f3bb73eec0b53bff8473210b
4
- data.tar.gz: e42f68999d291a84f02f01cf44eabda722463ce5
3
+ metadata.gz: 309ca7ef73e75ec39499fb1a9829252e005becf1
4
+ data.tar.gz: 9bc864358cf057b48bf20309ac27d5ccbf9c1419
5
5
  SHA512:
6
- metadata.gz: 902168134149ddcfc2bf8c525b548f10e879a88c6ab4c2b01481860460862d0fdbe9031114409a48afb0d046d3ce25de0a33b8e8da06e91b33a6deee47aeb0fb
7
- data.tar.gz: 26ec10fb9b56191e0afd977b71ce7d4033b1332097ccdce7fcdfdfbf46c46feafb603a570cf8dda4c8c2ecfd63e51e4b820d62a08e4fe2f3152fe6838dc1b875
6
+ metadata.gz: e45e02c53f0b434d3febef577d0a103df52050becd72656f0a37ae94f5173008ab044e00ae5d73fcfab7255c8dcb652e9cad25fb14217d809addc9aa34f709f2
7
+ data.tar.gz: 921a827fd9a71960975fd729d16f97a8a88b46588de9e266a10e460387d8883bab7fd7a02392142d1b591ce4a2040996cfeb01556d17c9af1a30b1c8b5c16489
data/Gemfile CHANGED
@@ -4,5 +4,5 @@ ruby '2.2.2'
4
4
 
5
5
  group :development, :test do
6
6
  gem 'rspec'
7
- gem 'webmock'
7
+ gem 'webmock'
8
8
  end
@@ -1,45 +1,42 @@
1
- require_relative "gosquared/trends"
2
- require_relative "gosquared/tracking"
3
- require_relative "gosquared/people"
4
- require_relative "gosquared/now"
5
- require_relative "gosquared/account"
1
+ require_relative 'gosquared/trends'
2
+ require_relative 'gosquared/tracking'
3
+ require_relative 'gosquared/people'
4
+ require_relative 'gosquared/now'
5
+ require_relative 'gosquared/account'
6
6
 
7
7
  module Gosquared
8
-
9
- VERSION = "3.0.6"
10
-
11
- class RubyLibrary
12
-
13
- def initialize api_key, site_id
14
- @api_key = api_key
15
- @site_id = site_id
16
- raise 'api key cannot be empty/nil' if api_key.nil? || api_key.empty?
17
- raise 'site_token cannot be empty/nil' if site_id.nil? || site_id.empty?
18
- end
19
-
20
- def trends
21
- @trends ||= Gosquared::Trends.new(@api_key, @site_id)
22
- end
23
-
24
- def tracking
25
- @tracking ||= Gosquared::Tracking.new(@api_key, @site_id)
26
- end
27
-
28
- def people
29
- @people ||= Gosquared::People.new(@api_key, @site_id)
30
- end
31
-
32
- def now
33
- @now ||= Gosquared::Now.new(@api_key, @site_id)
34
- end
35
-
36
- def account
37
- @account ||= Gosquared::Account.new(@api_key, @site_id)
38
- end
39
-
40
- end
8
+ VERSION = '3.0.7'.freeze
9
+
10
+ class RubyLibrary
11
+ def initialize(api_key, site_id)
12
+ @api_key = api_key
13
+ @site_id = site_id
14
+ raise 'api key cannot be empty/nil' if api_key.nil? || api_key.empty?
15
+ raise 'site_token cannot be empty/nil' if site_id.nil? || site_id.empty?
16
+ end
17
+
18
+ def trends
19
+ @trends ||= Gosquared::Trends.new(@api_key, @site_id)
20
+ end
21
+
22
+ def tracking
23
+ @tracking ||= Gosquared::Tracking.new(@api_key, @site_id)
24
+ end
25
+
26
+ def people
27
+ @people ||= Gosquared::People.new(@api_key, @site_id)
28
+ end
29
+
30
+ def now
31
+ @now ||= Gosquared::Now.new(@api_key, @site_id)
32
+ end
33
+
34
+ def account
35
+ @account ||= Gosquared::Account.new(@api_key, @site_id)
36
+ end
37
+ end
41
38
  end
42
39
 
43
40
  module GoSquared
44
- include Gosquared
41
+ include Gosquared
45
42
  end
@@ -3,8 +3,8 @@ require_relative 'client'
3
3
  module Gosquared
4
4
  class Account
5
5
  BASEURL = 'https://api.gosquared.com/account/v1/'.freeze
6
- DIMENSIONS = %w(blocked feeds reportPreferences sharedUsers sites taggedVisitors triggerTypes webhooks).freeze
7
- DIMENSION_FILTER = %w(token webhookID visitorID triggerType).freeze
6
+ DIMENSIONS = %w[blocked feeds reportPreferences sharedUsers sites taggedVisitors triggerTypes webhooks].freeze
7
+ DIMENSION_FILTER = %w[token webhookID visitorID triggerType].freeze
8
8
  @@filters = { presenter: @presenter, ip: @ip, url: @url, email: @email }
9
9
 
10
10
  def initialize(api_key, site_token, client = Gosquared::Client.new)
@@ -4,67 +4,65 @@ require 'json'
4
4
 
5
5
  module Gosquared
6
6
  class Client
7
+ def get(url)
8
+ uri = URI(url)
9
+ begin
10
+ response = Net::HTTP.get(uri)
11
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
12
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
13
+ puts "[error] HTTP error: #{e}"
14
+ begin
15
+ JSON.parse(response)
16
+ rescue StandardError => e
17
+ puts '[error] StandardError: Could not parse JSON'
18
+ response = false
19
+ end
20
+ end
21
+ @data = JSON.parse(response) if response
22
+ end
7
23
 
8
- def get(url)
9
- uri = URI(url)
10
- begin
11
- response = Net::HTTP.get(uri)
12
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
13
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
14
- puts "[error] HTTP error: #{e}"
15
- begin
16
- JSON.parse(response)
17
- rescue StandardError => e
18
- puts "[error] StandardError: Could not parse JSON"
19
- response = false
20
- end
21
- end
22
- @data = JSON.parse(response) if response
23
- end
24
+ def post(url, data)
25
+ uri = URI.parse(url)
26
+ begin
27
+ https = Net::HTTP.new(uri.host, uri.port)
28
+ https.use_ssl = true
29
+ request = Net::HTTP::Post.new(uri.request_uri, initheader = { 'Content-Type' => 'application/json', 'User-Agent' => 'ruby-client/' + VERSION })
30
+ request.body = "[#{data.to_json}]"
31
+ response = https.request(request)
32
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
33
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
34
+ puts "[error] HTTP error: #{e}"
35
+ begin
36
+ response.message
37
+ rescue StandardError => e
38
+ puts '[error] StandardError: Could not print response message'
39
+ response = false
40
+ end
41
+ end
24
42
 
25
- def post(url,data)
26
- uri = URI.parse(url)
27
- begin
28
- https = Net::HTTP.new(uri.host, uri.port)
29
- https.use_ssl = true
30
- request = Net::HTTP::Post.new(uri.request_uri, initheader = {'Content-Type' =>'application/json', 'User-Agent' => 'ruby-client/'+ VERSION})
31
- request.body = "[#{data.to_json}]"
32
- response = https.request(request)
33
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
34
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
35
- puts "[error] HTTP error: #{e}"
36
- begin
37
- response.message
38
- rescue StandardError => e
39
- puts "[error] StandardError: Could not print response message"
40
- response = false
41
- end
42
- end
43
-
44
- response
43
+ response
45
44
  end
46
45
 
47
- def delete(url,data)
48
- uri = URI.parse(url)
49
- begin
50
- https = Net::HTTP.new(uri.host, uri.port)
51
- https.use_ssl = true
52
- request = Net::HTTP::Delete.new(uri.request_uri, initheader = {'Content-Type' =>'application/json'})
53
- request.body = "[#{data.to_json}]"
54
- response = https.request(request)
55
- rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
56
- Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
57
- puts "[error] HTTP error: #{e}"
58
- begin
59
- response.message
60
- rescue StandardError => e
61
- puts "[error] StandardError: Could not print response message"
62
- response = false
63
- end
64
- end
65
-
66
- response
67
- end
46
+ def delete(url, data={})
47
+ uri = URI.parse(url)
48
+ begin
49
+ https = Net::HTTP.new(uri.host, uri.port)
50
+ https.use_ssl = true
51
+ request = Net::HTTP::Delete.new(uri.request_uri, initheader = { 'Content-Type' => 'application/json' })
52
+ request.body = "[#{data.to_json}]"
53
+ response = https.request(request)
54
+ rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
55
+ Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
56
+ puts "[error] HTTP error: #{e}"
57
+ begin
58
+ response.message
59
+ rescue StandardError => e
60
+ puts '[error] StandardError: Could not print response message'
61
+ response = false
62
+ end
63
+ end
68
64
 
65
+ response
66
+ end
69
67
  end
70
68
  end
@@ -1,53 +1,50 @@
1
- require_relative "client"
1
+ require_relative 'client'
2
2
 
3
3
  module Gosquared
4
4
  class Now
5
-
6
- BASEURL = "https://api.gosquared.com/now/v3/".freeze
7
- DIMENSIONS = %w(browsers campaigns concurrents engagement geo languages notifications
8
- organisations overview pages platforms sources time timeSeries visitors).freeze
9
- @@filters = {date_format: @date_format, from: @from, to: @to,
10
- format: @format, limit: @limit, sort: @sort,
11
- presenter: @presenter, visitors_mode: @string, href: @href,
12
- drill_limit: @drill_limit, sections: @sections,
13
- minimal: @minimal, interval: @interval}
14
-
15
- def initialize(api_key, site_token, client = Gosquared::Client.new)
16
- @site_token = site_token
17
- @api_key = api_key
18
- @client = client
19
- end
20
-
21
-
22
- DIMENSIONS.each do |dimension|
23
- define_method dimension do
24
- @dimension = dimension
25
- self
26
- end
27
- end
28
-
29
- @@filters.each do |key, value|
30
- define_method key do |argument|
31
- @@filters[key] = argument
32
- self
33
- end
34
- end
35
-
36
- def fetch
37
- data = @client.get(url)
38
- @@filters.each{|key, value| @@filters[key]=nil} if data
39
- data
40
- end
41
-
42
- private
43
-
44
- def url
45
- array = [""]
46
- @url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
47
- @@filters.each {|key, value| array << "#{key}=#{value}" if value }
48
- parameters=array.join('&')
49
- @url = @url.concat(parameters)
50
- end
51
-
5
+ BASEURL = 'https://api.gosquared.com/now/v3/'.freeze
6
+ DIMENSIONS = %w[browsers campaigns concurrents engagement geo languages notifications
7
+ organisations overview pages platforms sources time timeSeries visitors].freeze
8
+ @@filters = { date_format: @date_format, from: @from, to: @to,
9
+ format: @format, limit: @limit, sort: @sort,
10
+ presenter: @presenter, visitors_mode: @string, href: @href,
11
+ drill_limit: @drill_limit, sections: @sections,
12
+ minimal: @minimal, interval: @interval }
13
+
14
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
15
+ @site_token = site_token
16
+ @api_key = api_key
17
+ @client = client
18
+ end
19
+
20
+ DIMENSIONS.each do |dimension|
21
+ define_method dimension do
22
+ @dimension = dimension
23
+ self
24
+ end
25
+ end
26
+
27
+ @@filters.each do |key, _value|
28
+ define_method key do |argument|
29
+ @@filters[key] = argument
30
+ self
31
+ end
32
+ end
33
+
34
+ def fetch
35
+ data = @client.get(url)
36
+ @@filters.each { |key, _value| @@filters[key] = nil } if data
37
+ data
38
+ end
39
+
40
+ private
41
+
42
+ def url
43
+ array = ['']
44
+ @url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
45
+ @@filters.each { |key, value| array << "#{key}=#{value}" if value }
46
+ parameters = array.join('&')
47
+ @url = @url.concat(parameters)
48
+ end
52
49
  end
53
50
  end
@@ -1,74 +1,76 @@
1
- require_relative "client"
1
+ require_relative 'client'
2
2
 
3
3
  module Gosquared
4
4
  class People
5
+ BASEURL = 'https://api.gosquared.com/people/v1/'.freeze
6
+ VERSION = %w[v1 v2 v3].freeze
7
+ DIMENSIONS = %w[devices eventTypes people propertyTypes feed].freeze
8
+ @@filters = { query: @query, filters: @filters, sort: @sort,
9
+ format: @presenter, limit: @limit, type: @type, from: @from, to: @to }
5
10
 
6
- BASEURL = "https://api.gosquared.com/people/v1/".freeze
7
- VERSION = %w(v1 v2 v3).freeze
8
- DIMENSIONS = %w(devices eventTypes people propertyTypes feed).freeze
9
- @@filters = {query: @query, filters: @filters, sort: @sort,
10
- format: @presenter, limit: @limit, type: @type, from: @from, to: @to}
11
+ def initialize(api_key, site_token)
12
+ @site_token = site_token
13
+ @api_key = api_key
14
+ @person_id = ''
15
+ @person_filter = ''
16
+ end
11
17
 
12
- def initialize(api_key, site_token)
13
- @site_token = site_token
14
- @api_key = api_key
15
- @person_id = ""
16
- @person_filter = ""
17
- end
18
-
19
- DIMENSIONS.each do |dimension|
20
- define_method dimension do |options = ""|
21
- @dimension = dimension
22
- @data = options
23
- self
24
- end
25
- end
18
+ DIMENSIONS.each do |dimension|
19
+ define_method dimension do |options = ''|
20
+ @dimension = dimension
21
+ @data = options
22
+ self
23
+ end
24
+ end
26
25
 
27
- @@filters.each do |key, value|
28
- define_method key do |argument|
29
- @@filters[key] = argument
30
- puts @@filters[key]
31
- self
32
- end
26
+ @@filters.each do |key, _value|
27
+ define_method key do |argument|
28
+ @@filters[key] = argument
29
+ self
33
30
  end
31
+ end
32
+
33
+ def person_id(object, filter=nil)
34
+ @person_id = '/' + object
35
+ @person_filter = '/' + filter if filter
36
+ self
37
+ end
34
38
 
35
- def person_id(object, filter)
36
- @person_id = "/" + object
37
- @person_filter = "/" + filter
38
- self
39
- end
39
+ def smartgroups(group_id = nil, filter = nil)
40
+ if group_id
41
+ @dimension = "smartgroups/#{group_id}/people" if filter == 'people'
42
+ @dimension = "smartgroups/#{group_id}/count/latest" if filter == 'count'
43
+ else @dimension = 'smartgroups'
44
+ end
45
+ self
46
+ end
40
47
 
41
- def smartgroups(group_id=nil, filter=nil)
42
- if group_id
43
- @dimension = "smartgroups/#{group_id}/people" if filter == "people"
44
- @dimension = "smartgroups/#{group_id}/count/latest" if filter== "count"
45
- else @dimension = "smartgroups"
46
- end
47
- self
48
- end
48
+ def fetch
49
+ data = Client.new.get(url)
50
+ @@filters.each { |key, _value| @@filters[key] = nil } if data
51
+ data
52
+ end
49
53
 
50
- def fetch
51
- data = Client.new.get(url)
52
- @@filters.each{|key, value| @@filters[key]=nil} if data
53
- data
54
- end
54
+ def delete
55
+ response = Client.new.delete(url)
56
+ end
55
57
 
56
- def url
57
- array = [""]
58
- url = BASEURL + @dimension + @person_id + @person_filter +
59
- "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
60
- @@filters.each do |key, value|
61
- if @dimension=="people" && key == :filters && value.is_a?(Array)
62
- json_object=JSON.generate(value)
63
- filter_request=URI.escape(json_object, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
58
+ def url
59
+ array = ['']
60
+ url = BASEURL + @dimension + @person_id + @person_filter +
61
+ "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
62
+ @@filters.each do |key, value|
63
+ if @dimension == 'people' && key == :filters && value.is_a?(Array)
64
+ json_object = JSON.generate(value)
65
+ filter_request = URI.escape(json_object, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
64
66
  array << "#{key}=#{filter_request}"
65
67
  else
66
68
  array << "#{key}=#{value}" if value
67
69
  end
68
70
  end
69
- parameters=array.join('&')
71
+ parameters = array.join('&')
70
72
  url.concat(parameters)
71
- end
73
+ end
72
74
 
73
75
  def post
74
76
  check_for_nil_user
@@ -78,11 +80,10 @@ module Gosquared
78
80
  end
79
81
 
80
82
  def check_for_nil_user
81
- if @data.key?(:person_id) && @data[:person_id] == nil
82
- @data.tap { |data| @data.delete(:person_id) }
83
+ if @data.key?(:person_id) && @data[:person_id].nil?
84
+ @data.tap { |_data| @data.delete(:person_id) }
83
85
  warn 'person_id is nil, event will not be track against a user'
84
86
  end
85
87
  end
86
-
87
88
  end
88
89
  end