gosquared 3.0.1 → 3.0.3

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: 88379cf385bcdca47258e96149e3f9f9d0534b2d
4
- data.tar.gz: 97592708e18c0a9627d433c8fdb0c91c11a94ddd
3
+ metadata.gz: 78358a00b7bf496eef23fa1b7dacbb2f1e1096e1
4
+ data.tar.gz: dd61d41cf61c67bf9ec5c505335448e792af6c67
5
5
  SHA512:
6
- metadata.gz: a14fab23a886e2a959f3a1ac5d92e0cc8d15f5be5ce8f576bdf9551e40a2cda00d9ebd4dfc27836293e778ced178f6b32712932017dbab9ee49d06c6ded1889c
7
- data.tar.gz: 45ad5d99aa0b145a03e4997f78b57c27853e3d993e18896095f62b494cc0e8489f1df5bf94a3f0ba88e271b3f360409f2a23a722163dd36bcfc9345917b5208a
6
+ metadata.gz: 38f86d39c694124b9f2e517cb7e12e74dc20c32b91010852da37951957cbd79b04e766029a04fb8319c17b9581b030807d744e1747447e7e6ff7aaa84aa9c4f0
7
+ data.tar.gz: 868a7cb63f24a03d094c19f87245caa2e749455dfd638c9f8e3caf86284a609c363f1d105b841aa7fe33846290f2cdd745fa965095f1fb667616a57a5be46fb9
data/README.md CHANGED
@@ -4,7 +4,10 @@
4
4
 
5
5
  **This is an early beta, please open an issue if you find anything not working, or to leave feedback for improvement. You can also get in touch directly: russell@gosquared.com**
6
6
 
7
- This gems works with the [GoSquared API](https://www.gosquared.com/docs/api/), making it simple to integrate GoSquared with your Rails app. You can use it for both fetching metrics from your GoSquared account and also posting new events and contacts.
7
+ This gems works with the [GoSquared API](https://www.gosquared.com/docs/api/), You can use it for both fetching metrics from your GoSquared account and also posting new events and contacts.
8
+
9
+ Note, if you are looking to set up GoSquared for the first time and install Analytics, People and Live Chat within a Rails app, you can do so by using our [GoSquared-Rails gem]
10
+ (https://github.com/gosquared/gosquared-rails)
8
11
 
9
12
  All functions listed in the API documentation are methods you can call on the GoSquared class.
10
13
 
data/lib/gosquared.rb CHANGED
@@ -16,23 +16,23 @@ module Gosquared
16
16
  end
17
17
 
18
18
  def trends
19
- @trends ||= Trends.new(@api_key, @site_id)
19
+ @trends ||= Gosquared::Trends.new(@api_key, @site_id)
20
20
  end
21
21
 
22
22
  def tracking
23
- @tracking ||= Tracking.new(@api_key, @site_id)
23
+ @tracking ||= Gosquared::Tracking.new(@api_key, @site_id)
24
24
  end
25
25
 
26
26
  def people
27
- @people ||= People.new(@api_key, @site_id)
27
+ @people ||= Gosquared::People.new(@api_key, @site_id)
28
28
  end
29
29
 
30
30
  def now
31
- @now ||= Now.new(@api_key, @site_id)
31
+ @now ||= Gosquared::Now.new(@api_key, @site_id)
32
32
  end
33
33
 
34
34
  def account
35
- @account ||= Account.new(@api_key, @site_id)
35
+ @account ||= Gosquared::Account.new(@api_key, @site_id)
36
36
  end
37
37
 
38
38
  end
@@ -1,83 +1,83 @@
1
- require_relative "client"
1
+ require_relative 'client'
2
2
 
3
- class Account
3
+ module Gosquared
4
+ class Account
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
8
+ @@filters = { presenter: @presenter, ip: @ip, url: @url, email: @email }
4
9
 
5
- BASEURL = "https://api.gosquared.com/account/v1/"
6
- DIMENSIONS = %w(blocked feeds reportPreferences sharedUsers sites taggedVisitors triggerTypes webhooks)
7
- DIMENSION_FILTER = %w(token webhookID visitorID triggerType)
8
- @@filters = {presenter: @presenter, ip: @ip, url: @url, email: @email}
10
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
11
+ @site_token = site_token
12
+ @api_key = api_key
13
+ @client = client
14
+ @bots = ''
15
+ @ips = ''
16
+ @visitor = ''
17
+ @dimension_filter = ''
18
+ end
9
19
 
10
- def initialize(api_key, site_token, client = Client.new)
11
- @site_token = site_token
12
- @api_key = api_key
13
- @client = client
14
- @bots= ""
15
- @ips = ""
16
- @visitor = ""
17
- @dimension_filter = ""
18
- end
20
+ DIMENSION_FILTER.each do |filter|
21
+ define_method filter do |parameter = ''|
22
+ @dimension_filter = '/' + parameter
23
+ self
24
+ end
25
+ end
19
26
 
20
- DIMENSION_FILTER.each do |filter|
21
- define_method filter do |parameter = ""|
22
- @dimension_filter = "/" + parameter
23
- self
24
- end
25
- end
27
+ DIMENSIONS.each do |dimension|
28
+ define_method dimension do |options = ''|
29
+ @dimension = dimension
30
+ @data = options
31
+ self
32
+ end
33
+ end
26
34
 
27
- DIMENSIONS.each do |dimension|
28
- define_method dimension do |options = ""|
29
- @dimension = dimension
30
- @data = options
31
- self
32
- end
33
- end
35
+ @@filters.each do |key, _value|
36
+ define_method key do |argument|
37
+ @@filters[key] = argument
38
+ self
39
+ end
40
+ end
34
41
 
35
- @@filters.each do |key, value|
36
- define_method key do |argument|
37
- @@filters[key] = argument
38
- self
39
- end
40
- end
42
+ def fetch
43
+ data = @client.get(build_url)
44
+ @@filters.each { |key, _value| @@filters[key] = nil } if data
45
+ data
46
+ end
41
47
 
42
- def fetch
43
- data = @client.get(build_url)
44
- @@filters.each{|key, value| @@filters[key]=nil} if data
45
- data
46
- end
48
+ def post
49
+ response = @client.post(build_url, @data)
50
+ @@filters.each { |key, _value| @@filters[key] = nil } if response.code === '200'
51
+ response
52
+ end
47
53
 
48
- def post
49
- response = @client.post(build_url, @data)
50
- @@filters.each{|key, value| @@filters[key]=nil} if response.code === '200'
51
- response
52
- end
54
+ def delete
55
+ response = @client.post(build_url, @data)
56
+ @@filters.each { |key, _value| @@filters[key] = nil } if response.code === '200'
57
+ response
58
+ end
53
59
 
54
- def delete
55
- response = @client.post(build_url, @data)
56
- @@filters.each{|key, value| @@filters[key]=nil} if response.code === '200'
57
- response
58
- end
60
+ def bots
61
+ @bots = '/bots'
62
+ end
59
63
 
60
- def bots
61
- @bots = "/bots"
62
- end
64
+ def ips
65
+ @ips = '/ips'
66
+ self
67
+ end
63
68
 
64
- def ips
65
- @ips = "/ips"
66
- self
67
- end
68
-
69
- def visitors(id="")
70
- @visitor = "/visitors/#{id}"
71
- self
72
- end
73
-
74
- def build_url(ips = @ips)
75
- array = [""]
76
- @url = BASEURL + @dimension + @dimension_filter + @visitor + @bots + ips +
77
- "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
78
- @@filters.each {|key, value| array << "#{key}=#{value}" if value }
79
- parameters=array.join('&')
80
- @url = @url.concat(parameters)
81
- end
69
+ def visitors(id = '')
70
+ @visitor = "/visitors/#{id}"
71
+ self
72
+ end
82
73
 
74
+ def build_url(ips = @ips)
75
+ array = ['']
76
+ @url = BASEURL + @dimension + @dimension_filter + @visitor + @bots + ips +
77
+ "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
78
+ @@filters.each { |key, value| array << "#{key}=#{value}" if value }
79
+ parameters = array.join('&')
80
+ @url = @url.concat(parameters)
81
+ end
82
+ end
83
83
  end
@@ -2,67 +2,69 @@ require 'net/https'
2
2
  require 'uri'
3
3
  require 'json'
4
4
 
5
- class Client
5
+ module Gosquared
6
+ class Client
6
7
 
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
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
23
24
 
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'})
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
42
- puts "Response Message: #{response.message}" if response
43
- response
44
- end
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'})
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
+ puts "Response Message: #{response.message}" if response
44
+ response
45
+ end
45
46
 
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
64
- puts "Response Message: #{response.message}" if response
65
- response
66
- end
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
+ puts "Response Message: #{response.message}" if response
66
+ response
67
+ end
67
68
 
68
- end
69
+ end
70
+ end
data/lib/gosquared/now.rb CHANGED
@@ -1,50 +1,53 @@
1
1
  require_relative "client"
2
- class Now
3
-
4
- BASEURL = "https://api.gosquared.com/now/v3/"
5
- DIMENSIONS = %w(browsers campaigns concurrents engagement geo languages notifications
6
- organisations overview pages platforms sources time timeSeries visitors)
7
- @@filters = {dateFormat: @date_format, from: @from, to: @to,
8
- format: @format, limit: @limit, sort: @sort,
9
- presenter: @presenter, visitors_mode: @string, href: @href,
10
- drill_limit: @drill_limit, sections: @sections,
11
- minimal: @minimal, interval: @interval}
12
-
13
- def initialize(api_key, site_token, client=Client.new)
14
- @site_token = site_token
15
- @api_key = api_key
16
- @client = client
17
- end
18
-
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
49
2
 
3
+ module Gosquared
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
+
52
+ end
50
53
  end
@@ -1,54 +1,57 @@
1
1
  require_relative "client"
2
- class People
3
-
4
- BASEURL = "https://api.gosquared.com/people/v1/"
5
- VERSION = %w(v1 v2 v3)
6
- DIMENSIONS = %w(devices eventTypes people propertyTypes feed smartgroups)
7
- @@filters = {query: @query, filters: @filters, sort: @sort,
8
- format: @presenter, limit: @limit, type: @type, from: @from, to: @to}
9
-
10
- def initialize(api_key, site_token, client =Client.new)
11
- @site_token = site_token
12
- @api_key = api_key
13
- @person_id = ""
14
- @person_filter = ""
15
- @client = client
16
- end
17
-
18
- DIMENSIONS.each do |dimension|
19
- define_method dimension do |options = ""|
20
- @dimension = dimension
21
- @data = options
22
- self
23
- end
24
- end
25
-
26
- @@filters.each do |key, value|
27
- define_method key do |argument|
28
- @@filters[key] = argument
29
- self
30
- end
31
- end
32
-
33
- def person_id(object, filter)
34
- @person_id = "/" + object
35
- @person_filter = "/" + filter
36
- self
37
- end
38
-
39
- def fetch
40
- data = @client.get(url)
41
- @@filters.each{|key, value| @@filters[key]=nil} if data
42
- data
43
- end
44
-
45
- def url
46
- array = [""]
47
- url = BASEURL + @dimension + @person_id + @person_filter +
48
- "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
49
- @@filters.each { |key, value| array << "#{key}=#{value}" if value }
50
- parameters=array.join('&')
51
- url.concat(parameters)
52
- end
53
-
54
- end
2
+
3
+ module Gosquared
4
+ class People
5
+
6
+ BASEURL = "https://api.gosquared.com/people/v1/".freeze
7
+ VERSION = %w(v1 v2 v3).freeze
8
+ DIMENSIONS = %w(devices eventTypes people propertyTypes feed smartgroups).freeze
9
+ @@filters = {query: @query, filters: @filters, sort: @sort,
10
+ format: @presenter, limit: @limit, type: @type, from: @from, to: @to}
11
+
12
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
13
+ @site_token = site_token
14
+ @api_key = api_key
15
+ @person_id = ""
16
+ @person_filter = ""
17
+ @client = client
18
+ end
19
+
20
+ DIMENSIONS.each do |dimension|
21
+ define_method dimension do |options = ""|
22
+ @dimension = dimension
23
+ @data = options
24
+ self
25
+ end
26
+ end
27
+
28
+ @@filters.each do |key, value|
29
+ define_method key do |argument|
30
+ @@filters[key] = argument
31
+ self
32
+ end
33
+ end
34
+
35
+ def person_id(object, filter)
36
+ @person_id = "/" + object
37
+ @person_filter = "/" + filter
38
+ self
39
+ end
40
+
41
+ def fetch
42
+ data = @client.get(url)
43
+ @@filters.each{|key, value| @@filters[key]=nil} if data
44
+ data
45
+ end
46
+
47
+ def url
48
+ array = [""]
49
+ url = BASEURL + @dimension + @person_id + @person_filter +
50
+ "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
51
+ @@filters.each { |key, value| array << "#{key}=#{value}" if value }
52
+ parameters=array.join('&')
53
+ url.concat(parameters)
54
+ end
55
+
56
+ end
57
+ end
@@ -1,41 +1,44 @@
1
1
  require_relative "client"
2
- class Tracking
3
-
4
- BASEURL = "https://api.gosquared.com/tracking/v1/"
5
- DIMENSIONS = %w(event identify pageview ping properties timeout transaction)
6
-
7
- def initialize(api_key, site_token, client=Client.new)
8
- @site_token = site_token
9
- @api_key = api_key
10
- @client = client
11
- end
12
-
13
- DIMENSIONS.each do |dimension|
14
- define_method dimension do |options|
15
- @dimension = dimension
16
- @data = options
17
- self
18
- end
19
- end
20
-
21
- def post
22
- check_for_nil_user
23
- response = @client.post(url, @data)
24
- @data = nil if response.code === '200'
25
- response
26
- end
27
-
28
- def url
29
- url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
30
- end
31
-
32
- private
33
-
34
- def check_for_nil_user
35
- if @data.key?(:person_id) && @data[:person_id] == nil
36
- @data.tap { |data| @data.delete(:person_id) }
37
- warn 'person_id is nil, event will not be track against a user'
38
- end
39
- end
40
2
 
3
+ module Gosquared
4
+ class Tracking
5
+
6
+ BASEURL = "https://api.gosquared.com/tracking/v1/".freeze
7
+ DIMENSIONS = %w(event identify pageview ping properties timeout transaction).freeze
8
+
9
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
10
+ @site_token = site_token
11
+ @api_key = api_key
12
+ @client = client
13
+ end
14
+
15
+ DIMENSIONS.each do |dimension|
16
+ define_method dimension do |options|
17
+ @dimension = dimension
18
+ @data = options
19
+ self
20
+ end
21
+ end
22
+
23
+ def post
24
+ check_for_nil_user
25
+ response = @client.post(url, @data)
26
+ @data = nil if response.code === '200'
27
+ response
28
+ end
29
+
30
+ def url
31
+ url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
32
+ end
33
+
34
+ private
35
+
36
+ def check_for_nil_user
37
+ if @data.key?(:person_id) && @data[:person_id] == nil
38
+ @data.tap { |data| @data.delete(:person_id) }
39
+ warn 'person_id is nil, event will not be track against a user'
40
+ end
41
+ end
42
+
43
+ end
41
44
  end
@@ -1,12 +1,15 @@
1
1
  require_relative "client"
2
+
3
+ module Gosquared
2
4
  class Trends
3
5
 
4
- BASEURL = "https://api.gosquared.com/trends/v2/"
5
- DIMENSIONS = %w(aggregate browser category country event language organisation os page path1 product screenDimensions sources transactions)
6
+ BASEURL = "https://api.gosquared.com/trends/v2/".freeze
7
+ DIMENSIONS = %w(aggregate browser category country event language organisation os page path1 product screenDimensions sources transactions).freeze
6
8
  @@filters = {date_format: @date_format, from: @from, to: @to,
7
- format: @format, limit: @limit, sort: @sort, group: @group}
9
+ format: @format, limit: @limit, sort: @sort, group: @group,
10
+ source_type: @source_type}
8
11
 
9
- def initialize(api_key, site_token, client=Client.new)
12
+ def initialize(api_key, site_token, client = Gosquared::Client.new)
10
13
  @site_token = site_token
11
14
  @api_key = api_key
12
15
  @client = client
@@ -37,8 +40,13 @@ require_relative "client"
37
40
  def url
38
41
  array = [""]
39
42
  url = BASEURL + @dimension + "?api_key=#{@api_key}" + "&site_token=#{@site_token}"
40
- @@filters.each {|key, value| array << "#{key}=#{value}" if value }
43
+ @@filters.each {|key, value| array << "#{camelize(key.to_s)}=#{value}" if value }
41
44
  parameters=array.join('&')
42
45
  url.concat(parameters)
43
46
  end
47
+
48
+ def camelize(key)
49
+ key.split('_').each_with_index.map{|fragment, index| index == 0 ? fragment : fragment.capitalize }.join('')
50
+ end
44
51
  end
52
+ end
data/spec/account_spec.rb CHANGED
@@ -1,8 +1,8 @@
1
- describe Account do
1
+ describe Gosquared::Account do
2
2
  subject(:gs) { described_class.new("demo", "GSN-2194840-F") }
3
3
 
4
- Account::DIMENSIONS.each do |dimension|
5
- before do
4
+ Gosquared::Account::DIMENSIONS.each do |dimension|
5
+ before do
6
6
  data = '{"a": [{"test": "response"}]}'
7
7
  stub_request(:get, "https://api.gosquared.com/account/v1/#{dimension}?api_key=demo&site_token=GSN-2194840-F" ).
8
8
  with(headers: {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
@@ -10,26 +10,26 @@ describe Account do
10
10
  end
11
11
  end
12
12
 
13
- Account::DIMENSIONS.each do |dimension|
14
- it "fetches a request from the GoSquared Account API with #{dimension} dimension" do
13
+ Gosquared::Account::DIMENSIONS.each do |dimension|
14
+ it "fetches a request from the GoSquared Account API with #{dimension} dimension" do
15
15
  gs.send("#{dimension}")
16
16
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
17
17
  end
18
18
  end
19
19
 
20
- before do
20
+ before do
21
21
  data = '{"a": [{"test": "response"}]}'
22
22
  stub_request(:get, "https://api.gosquared.com/account/v1/sites/GSN-086224-W?api_key=demo&site_token=GSN-2194840-F").
23
23
  with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Host'=>'api.gosquared.com', 'User-Agent'=>'Ruby'}).
24
24
  to_return(:status => 200, :body => data, :headers => {})
25
25
  end
26
26
 
27
- it "retrieves a site by its site token" do
27
+ it "retrieves a site by its site token" do
28
28
  gs.sites.token("GSN-086224-W")
29
29
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
30
30
  end
31
31
 
32
- before do
32
+ before do
33
33
  stub_request(:post, "https://api.gosquared.com/account/v1/blocked/ips?api_key=demo&ip=20.15.33.99&site_token=GSN-2194840-F").
34
34
  with(:body => "[ \"\" ]",
35
35
  :headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Content-Type'=>'application/json', 'User-Agent'=>'Ruby'}).
@@ -40,28 +40,28 @@ describe Account do
40
40
  to_return(:status => 200, :body => "", :headers => {})
41
41
  end
42
42
 
43
- it "posts a request to the GoSquared Account API with an IP address to block bots" do
43
+ it "posts a request to the GoSquared Account API with an IP address to block bots" do
44
44
  gs.blocked.ips.ip('20.15.33.99')
45
45
  expect(gs.post.code).to eq('200')
46
46
  end
47
47
 
48
- it "sends a delete request to the GoSquared Account API with an IP address to block bots" do
48
+ it "sends a delete request to the GoSquared Account API with an IP address to block bots" do
49
49
  gs.blocked.ips.ip('20.15.33.99')
50
50
  expect(gs.delete.code).to eq('200')
51
51
  end
52
52
 
53
- before do
53
+ before do
54
54
  data = '{"a": [{"test": "response"}]}'
55
55
  stub_request(:get, "https://api.gosquared.com/account/v1/blocked/visitors/test.email@gmail.com?api_key=demo&site_token=GSN-2194840-F").
56
56
  with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Host'=>'api.gosquared.com', 'User-Agent'=>'Ruby'}).
57
57
  to_return(:status => 200, :body => data, :headers => {})
58
58
  end
59
59
 
60
- it "retrieves a list of blocked visitors" do
60
+ it "retrieves a list of blocked visitors" do
61
61
  gs.blocked.visitors("test.email@gmail.com")
62
62
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
63
63
  end
64
64
 
65
-
66
65
 
67
- end
66
+
67
+ end
data/spec/client_spec.rb CHANGED
@@ -2,38 +2,38 @@ require 'net/https'
2
2
  require 'uri'
3
3
  require 'json'
4
4
 
5
- describe Client do
5
+ describe Gosquared::Client do
6
6
  subject(:client) { described_class.new }
7
7
 
8
8
  EXCEPTIONS = [Timeout::Error, EOFError,
9
9
  Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError]
10
10
 
11
- EXCEPTIONS.each do |exception|
11
+ EXCEPTIONS.each do |exception|
12
12
  it "raises a #{exception} error on a get request" do
13
13
  uri = URI('www.example.com')
14
14
  allow(Net::HTTP).to receive(:get).with(uri).and_raise(exception)
15
15
  expect{client.get('www.example.com')}.to output("[error] HTTP error: #{exception}\n[error] StandardError: Could not parse JSON\n").to_stdout
16
- end
16
+ end
17
17
  end
18
18
 
19
19
  it "raises a Errno::EINVAL error on a get request" do
20
20
  uri = URI('www.example.com')
21
21
  allow(Net::HTTP).to receive(:get).with(uri).and_raise(Errno::EINVAL)
22
22
  expect{client.get('www.example.com')}.to output("[error] HTTP error: Invalid argument\n[error] StandardError: Could not parse JSON\n").to_stdout
23
- end
23
+ end
24
24
 
25
25
  it "raises a Errno::ECONNRESET error on a get request" do
26
26
  uri = URI('www.example.com')
27
27
  allow(Net::HTTP).to receive(:get).with(uri).and_raise(Errno::ECONNRESET)
28
28
  expect{client.get('www.example.com')}.to output("[error] HTTP error: Connection reset by peer\n[error] StandardError: Could not parse JSON\n").to_stdout
29
- end
29
+ end
30
30
 
31
- EXCEPTIONS.each do |exception|
31
+ EXCEPTIONS.each do |exception|
32
32
  it "raises a #{exception} error on a post request" do
33
33
  uri = URI.parse("www.example.com")
34
34
  allow(Net::HTTP).to receive(:new).with(uri.host, uri.port).and_raise(exception)
35
35
  expect{client.post("www.example.com", "body")}.to output("[error] HTTP error: #{exception}\n[error] StandardError: Could not print response message\n").to_stdout
36
- end
36
+ end
37
37
  end
38
38
 
39
39
  it "raises a Errno::EINVAL error on a post request" do
@@ -46,14 +46,14 @@ it "raises a Errno::ECONNRESET error on a post request" do
46
46
  uri = URI.parse("www.example.com")
47
47
  allow(Net::HTTP).to receive(:new).with(uri.host, uri.port).and_raise(Errno::ECONNRESET)
48
48
  expect{client.post("www.example.com", "body")}.to output("[error] HTTP error: Connection reset by peer\n[error] StandardError: Could not print response message\n").to_stdout
49
- end
49
+ end
50
50
 
51
- EXCEPTIONS.each do |exception|
51
+ EXCEPTIONS.each do |exception|
52
52
  it "raises a #{exception} error on a delete request" do
53
53
  uri = URI.parse("www.example.com")
54
54
  allow(Net::HTTP).to receive(:new).with(uri.host, uri.port).and_raise(exception)
55
55
  expect{client.delete("www.example.com", "body")}.to output("[error] HTTP error: #{exception}\n[error] StandardError: Could not print response message\n").to_stdout
56
- end
56
+ end
57
57
  end
58
58
 
59
59
  it "raises a Errno::EINVAL error on a delete request" do
@@ -66,6 +66,6 @@ it "raises a Errno::ECONNRESET error on a delete request" do
66
66
  uri = URI.parse("www.example.com")
67
67
  allow(Net::HTTP).to receive(:new).with(uri.host, uri.port).and_raise(Errno::ECONNRESET)
68
68
  expect{client.delete("www.example.com", "body")}.to output("[error] HTTP error: Connection reset by peer\n[error] StandardError: Could not print response message\n").to_stdout
69
- end
69
+ end
70
70
 
71
- end
71
+ end
data/spec/now_spec.rb CHANGED
@@ -1,8 +1,8 @@
1
- describe Now do
1
+ describe Gosquared::Now do
2
2
  subject(:gs) { described_class.new("demo", "GSN-2194840-F") }
3
3
 
4
- Now::DIMENSIONS.each do |dimension|
5
- before do
4
+ Gosquared::Now::DIMENSIONS.each do |dimension|
5
+ before do
6
6
  data = '{"a": [{"test": "response"}]}'
7
7
  stub_request(:get, "https://api.gosquared.com/now/v3/#{dimension}?api_key=demo&site_token=GSN-2194840-F" ).
8
8
  with(headers: {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
@@ -10,14 +10,14 @@ describe Now do
10
10
  end
11
11
  end
12
12
 
13
- Now::DIMENSIONS.each do |dimension|
14
- it "fetches a request from the GoSquared Now API with #{dimension} dimension" do
13
+ Gosquared::Now::DIMENSIONS.each do |dimension|
14
+ it "fetches a request from the GoSquared Now API with #{dimension} dimension" do
15
15
  gs.send "#{dimension}"
16
16
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
17
17
  end
18
18
  end
19
19
 
20
- before do
20
+ before do
21
21
  data = '{"a": [{"test": "response"}, {"with": "params"}]}'
22
22
  stub_request(:get, "https://api.gosquared.com/now/v3/browsers?api_key=demo&site_token=GSN-2194840-F&limit=5").
23
23
  with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Host'=>'api.gosquared.com', 'User-Agent'=>'Ruby'}).
@@ -29,4 +29,4 @@ describe Now do
29
29
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}, {"with"=>"params"}])
30
30
  end
31
31
 
32
- end
32
+ end
data/spec/people_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
- describe People do
1
+ describe Gosquared::People do
2
2
  subject(:gs) { described_class.new("demo", "GSN-106863-S") }
3
3
 
4
- People::DIMENSIONS.each do |dimension|
4
+ Gosquared::People::DIMENSIONS.each do |dimension|
5
5
  before do
6
6
  data = '{"a": [{"test": "response"}]}'
7
7
  stub_request(:get, "https://api.gosquared.com/people/v1/#{dimension}?api_key=demo&site_token=GSN-106863-S"
@@ -11,7 +11,7 @@ describe People do
11
11
  end
12
12
  end
13
13
 
14
- People::DIMENSIONS.each do |dimension|
14
+ Gosquared::People::DIMENSIONS.each do |dimension|
15
15
  it "fetches a request from the GoSquared People API with #{dimension} dimension" do
16
16
  gs.send "#{dimension}"
17
17
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
@@ -31,7 +31,7 @@ describe People do
31
31
  end
32
32
 
33
33
 
34
- People::DIMENSIONS.each do |dimension|
34
+ Gosquared::People::DIMENSIONS.each do |dimension|
35
35
  before do
36
36
  data = '{"a": [{"test": "response"}, {"with": "params"}]}'
37
37
  stub_request(:get, "https://api.gosquared.com/people/v1/#{dimension}?api_key=demo&site_token=GSN-106863-S&limit=5").
@@ -40,7 +40,7 @@ describe People do
40
40
  end
41
41
  end
42
42
 
43
- People::DIMENSIONS.each do |dimension|
43
+ Gosquared::People::DIMENSIONS.each do |dimension|
44
44
  it "fetches a request from the GoSquared People API with dimension and paramaters" do
45
45
  gs.send("#{dimension}").limit(5)
46
46
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}, {"with"=>"params"}])
@@ -1,7 +1,7 @@
1
- describe Tracking do
1
+ describe Gosquared::Tracking do
2
2
  subject(:gs) { described_class.new("demo", "GSN-2194840-F") }
3
3
 
4
- Tracking::DIMENSIONS.each do |dimension|
4
+ Gosquared::Tracking::DIMENSIONS.each do |dimension|
5
5
  before do
6
6
  stub_request(:post, "https://api.gosquared.com/tracking/v1/#{dimension}?api_key=demo&site_token=GSN-2194840-F").
7
7
  with(:body => "[ {\"person_id\":\"email:test@example.com\",\"properties\":{\"email\":\"test@example.com\"}} ]",
@@ -10,7 +10,7 @@ describe Tracking do
10
10
  end
11
11
  end
12
12
 
13
- Tracking::DIMENSIONS.each do |dimension|
13
+ Gosquared::Tracking::DIMENSIONS.each do |dimension|
14
14
  it "posts a request to the GoSquared Track API with #{dimension} dimension" do
15
15
  gs.send "#{dimension}", ({person_id: "email:test@example.com",
16
16
  properties:{email: "test@example.com"}})
data/spec/trends_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
- describe Trends do
1
+ describe Gosquared::Trends do
2
2
  subject(:gs) { described_class.new("demo","GSN-106863-S") }
3
3
 
4
- Trends::DIMENSIONS.each do |dimension|
4
+ Gosquared::Trends::DIMENSIONS.each do |dimension|
5
5
  before do
6
6
  data = '{"a": [{"test": "response"}]}'
7
7
  stub_request(:get, "https://api.gosquared.com/trends/v2/#{dimension}?api_key=demo&site_token=GSN-106863-S").
@@ -10,23 +10,23 @@ describe Trends do
10
10
  end
11
11
  end
12
12
 
13
- Trends::DIMENSIONS.each do |dimension|
13
+ Gosquared::Trends::DIMENSIONS.each do |dimension|
14
14
  it "fetches a request from the GoSquared Trends API with #{dimension} dimension" do
15
15
  gs.send "#{dimension}"
16
16
  expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
17
17
  end
18
18
  end
19
19
 
20
- Trends::DIMENSIONS.each do |dimension|
20
+ Gosquared::Trends::DIMENSIONS.each do |dimension|
21
21
  before do
22
22
  data = '{"a": [{"test": "response"}, {"with": "params"}]}'
23
- stub_request(:get, "https://api.gosquared.com/trends/v2/#{dimension}?api_key=demo&site_token=GSN-106863-S&date_format=yyyy-mm-dd&format=json&from=2016-06-20&group=true&limit=5&site_token=GSN-106863-S&sort=visits&to=2016-06-30").
23
+ stub_request(:get, "https://api.gosquared.com/trends/v2/#{dimension}?api_key=demo&site_token=GSN-106863-S&dateFormat=yyyy-mm-dd&format=json&from=2016-06-20&group=true&limit=5&site_token=GSN-106863-S&sort=visits&to=2016-06-30").
24
24
  with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Host'=>'api.gosquared.com', 'User-Agent'=>'Ruby'}).
25
25
  to_return(:status => 200, :body => data, :headers => {})
26
26
  end
27
27
  end
28
28
 
29
- Trends::DIMENSIONS.each do |dimension|
29
+ Gosquared::Trends::DIMENSIONS.each do |dimension|
30
30
  it "fetches a request from the GoSquared Trends API with #{dimension} dimension and paramaters" do
31
31
  gs.send("#{dimension}").from('2016-06-20').to('2016-06-30')
32
32
  .date_format('yyyy-mm-dd').sort('visits').group(true).format('json').limit(5)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gosquared
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russell Vaughan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-20 00:00:00.000000000 Z
11
+ date: 2017-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  requirements: []
86
86
  rubyforge_project:
87
- rubygems_version: 2.6.6
87
+ rubygems_version: 2.4.8
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: GoSquared Ruby Library