gosquared 0.1.5 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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