gosquared 0.1.5 → 1.0.1

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.
@@ -0,0 +1,21 @@
1
+ describe Tracking do
2
+ subject(:gs) { described_class.new("demo", "GSN-2194840-F") }
3
+
4
+ Tracking::DIMENSIONS.each do |dimension|
5
+ before do
6
+ stub_request(:post, "https://api.gosquared.com/tracking/v1/#{dimension}?api_key=demo&site_token=GSN-2194840-F").
7
+ with(:body => "[ {\"person_id\":\"email:test@example.com\",\"properties\":{\"email\":\"test@example.com\"}} ]",
8
+ :headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Content-Type'=>'application/json', 'User-Agent'=>'Ruby'}).
9
+ to_return(:status => 200, :body => "", :headers => {response: "success"})
10
+ end
11
+ end
12
+
13
+ Tracking::DIMENSIONS.each do |dimension|
14
+ it "posts a request to the GoSquared Track API with #{dimension} dimension" do
15
+ gs.send "#{dimension}", ({person_id: "email:test@example.com",
16
+ properties:{email: "test@example.com"}})
17
+ expect(gs.post.code).to eq('200')
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,37 @@
1
+ describe Trends do
2
+ subject(:gs) { described_class.new("demo","GSN-106863-S") }
3
+
4
+ GoSquared::Trends::DIMENSIONS.each do |dimension|
5
+ before do
6
+ data = '{"a": [{"test": "response"}]}'
7
+ stub_request(:get, "https://api.gosquared.com/trends/v2/#{dimension}?api_key=demo&site_token=GSN-106863-S").
8
+ with(headers: {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
9
+ to_return(status: 200, body: data, headers: {})
10
+ end
11
+ end
12
+
13
+ GoSquared::Trends::DIMENSIONS.each do |dimension|
14
+ it "fetches a request from the GoSquared Trends API with #{dimension} dimension" do
15
+ gs.send "#{dimension}"
16
+ expect(gs.fetch).to eq("a" => [{"test"=>"response"}])
17
+ end
18
+ end
19
+
20
+ GoSquared::Trends::DIMENSIONS.each do |dimension|
21
+ before do
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").
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
+ to_return(:status => 200, :body => data, :headers => {})
26
+ end
27
+ end
28
+
29
+ GoSquared::Trends::DIMENSIONS.each do |dimension|
30
+ it "fetches a request from the GoSquared Trends API with #{dimension} dimension and paramaters" do
31
+ gs.send("#{dimension}").from('2016-06-20').to('2016-06-30')
32
+ .date_format('yyyy-mm-dd').sort('visits').group(true).format('json').limit(5)
33
+ expect(gs.fetch).to eq("a" => [{"test"=>"response"}, {"with"=>"params"}])
34
+ end
35
+ end
36
+
37
+ end
metadata CHANGED
@@ -1,119 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gosquared
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 1.0.1
6
5
  platform: ruby
7
6
  authors:
8
- - Geoff Wagstaff
7
+ - Russell Vaughan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-16 00:00:00.000000000 Z
11
+ date: 2016-07-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: minitest
14
+ name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: '3.2'
19
+ version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '3.2'
26
+ version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rake
28
+ name: webmock
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
- version: '0.9'
33
+ version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
- version: '0.9'
46
- - !ruby/object:Gem::Dependency
47
- name: faraday
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '0.8'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '0.8'
62
- - !ruby/object:Gem::Dependency
63
- name: json
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '1.7'
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '1.7'
78
- description: For use with the API and for tracking metrics
40
+ version: '0'
41
+ description: A Ruby library for posting data from your application to the GoSquared
42
+ Tracking API and fetching metrics from the GoSquared Reporting API.
79
43
  email:
80
- - geoff@gosquared.com
44
+ - russell@gosquared.com
81
45
  executables: []
82
46
  extensions: []
83
47
  extra_rdoc_files: []
84
48
  files:
85
- - lib/client.rb
86
- - lib/gosquared.rb
49
+ - ".rspec"
87
50
  - Gemfile
88
- - gosquared.gemspec
89
- - Rakefile
51
+ - LICENSE
90
52
  - README.md
91
- - test/api.rb
92
- - test/event.rb
53
+ - lib/gosquared.rb
54
+ - lib/gosquared/account.rb
55
+ - lib/gosquared/client.rb
56
+ - lib/gosquared/now.rb
57
+ - lib/gosquared/people.rb
58
+ - lib/gosquared/tracking.rb
59
+ - lib/gosquared/trends.rb
60
+ - spec/account_spec.rb
61
+ - spec/client_spec.rb
62
+ - spec/now_spec.rb
63
+ - spec/people_spec.rb
64
+ - spec/spec_helper.rb
65
+ - spec/tracking_spec.rb
66
+ - spec/trends_spec.rb
93
67
  homepage: https://github.com/gosquared/ruby-client
94
68
  licenses: []
69
+ metadata: {}
95
70
  post_install_message:
96
71
  rdoc_options: []
97
72
  require_paths:
98
73
  - lib
99
74
  required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
75
  requirements:
102
- - - ! '>='
76
+ - - ">="
103
77
  - !ruby/object:Gem::Version
104
78
  version: '0'
105
79
  required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
80
  requirements:
108
- - - ! '>='
81
+ - - ">="
109
82
  - !ruby/object:Gem::Version
110
83
  version: '0'
111
84
  requirements: []
112
85
  rubyforge_project:
113
- rubygems_version: 1.8.25
86
+ rubygems_version: 2.6.6
114
87
  signing_key:
115
- specification_version: 3
116
- summary: Official GoSquared Ruby Client
88
+ specification_version: 4
89
+ summary: GoSquared Ruby Library
117
90
  test_files:
118
- - test/api.rb
119
- - test/event.rb
91
+ - spec/account_spec.rb
92
+ - spec/client_spec.rb
93
+ - spec/now_spec.rb
94
+ - spec/people_spec.rb
95
+ - spec/spec_helper.rb
96
+ - spec/tracking_spec.rb
97
+ - spec/trends_spec.rb
data/Rakefile DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env rake
2
-
3
- require 'bundler/setup'
4
- require 'rake/testtask'
5
-
6
- Rake::TestTask.new do |t|
7
- t.pattern = 'test/*.rb'
8
- end
9
-
10
- Rake::TestTask.new("test:event") do |t|
11
- t.pattern = 'test/event.rb'
12
- end
13
-
14
- task :default => [:test]
data/gosquared.gemspec DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env gem build
2
- # -*- encoding: utf-8 -*-
3
- lib = File.expand_path('../lib/', __FILE__)
4
- $:.unshift lib unless $:.include?(lib)
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "gosquared"
8
- spec.version = "0.1.5"
9
- spec.authors = ["Geoff Wagstaff"]
10
- spec.email = ["geoff@gosquared.com"]
11
- spec.homepage = "https://github.com/gosquared/ruby-client"
12
- spec.summary = %q{Official GoSquared Ruby Client}
13
- spec.description = %q{For use with the API and for tracking metrics}
14
-
15
- # Packaged like a gem so that we can easily share it between projects
16
- # spec.rubyforge_project = "infrastructure"
17
-
18
- spec.files = Dir['lib/**/*', 'examples/**/*', 'benchmarks/**/*', 'Gemfile', 'gosquared.gemspec', 'Rakefile', 'README.md', 'LICENSE']
19
- spec.executables = Dir['bin/*']
20
- spec.test_files = Dir['test/**/*']
21
- spec.require_paths = ['lib']
22
-
23
- spec.add_development_dependency 'minitest', '~> 3.2'
24
- spec.add_development_dependency 'rake', '~> 0.9'
25
-
26
- spec.add_runtime_dependency 'faraday', '~> 0.8'
27
- spec.add_runtime_dependency 'json', '~> 1.7'
28
- end
data/lib/client.rb DELETED
@@ -1,58 +0,0 @@
1
- require 'json'
2
- require 'faraday'
3
- require 'uri'
4
- require_relative '../config/default'
5
-
6
- module GoSquared
7
- class Client
8
- @@opts = {}
9
- Error = Class.new(StandardError)
10
-
11
- def initialize(opts={})
12
- @opts = @@opts.merge(opts)
13
- debug 1, GoSquared::DEBUG_WARNING if opts[:site_token].nil?
14
- @opts[:debugLevel] ||= GoSquared::DEBUG_DEFAULT_LEVEL
15
-
16
- @req_opts = {
17
- :site_token => opts[:site_token]
18
- }
19
- end
20
-
21
- def RESTClient
22
- @RESTClient ||= Faraday.new(:url => @url)
23
- end
24
-
25
- def get(path, query_params={})
26
- response = RESTClient().get do | req |
27
- req.url url + path
28
- req.params = @req_opts.merge(query_params)
29
- end
30
- return false unless response.status.to_s.start_with?("20")
31
- parse(response.body)
32
- end
33
-
34
- def post(path, query_params, post_body="")
35
- response = RESTClient().post do | req |
36
- req.url url + path
37
- req.headers['Content-Type'] = 'application/json'
38
- req.params = @req_opts.merge(query_params)
39
- req.body = post_body
40
- end
41
- return false unless response.status.to_s.start_with?("20")
42
- parse(response.body)
43
- end
44
-
45
- def parse(content)
46
- JSON.parse(content)
47
- end
48
-
49
- def debug(code, level, extra)
50
- return true if (@opts[:debugLevel] & level).zero?
51
-
52
- stream = level > GoSquared::DEBUG_LEVELS[:NOTICE] ? $stdout : $stderr
53
-
54
- # Errors are machine-parseable
55
- stream.printf "[GoSquared][%s]:%s\n", level, JSON.generate({message: GoSquared::DEBUG_CODES[code], code: code, extra: extra})
56
- end
57
- end
58
- end
data/test/api.rb DELETED
@@ -1,17 +0,0 @@
1
- require 'minitest/autorun'
2
-
3
- require 'gosquared'
4
-
5
- describe GoSquared do
6
- before do
7
- @gosquared = GoSquared::API.new({:site_token => "GSN-106863-S", :api_key => "demo"})
8
- end
9
-
10
- describe "getting functions" do
11
- GoSquared::API_FUNCTIONS.each do | func_name |
12
- it "gets #{func_name}" do
13
- response = @gosquared.send(func_name)
14
- end
15
- end
16
- end
17
- end
data/test/event.rb DELETED
@@ -1,19 +0,0 @@
1
- require 'minitest/autorun'
2
-
3
- require 'gosquared'
4
-
5
- describe GoSquared do
6
- before do
7
- @gosquared = GoSquared::Event.new({:site_token => "GSN-106863-S"})
8
- end
9
-
10
- describe "storing events" do
11
- it "stores an event with name and parameters" do
12
- response = @gosquared.store_event "Test Event", {:random => "params", :cause => "I can"}
13
- end
14
-
15
- it "stores an event with name and without parameters" do
16
- response = @gosquared.store_event "Test Event"
17
- end
18
- end
19
- end