webtrends 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b044a6b10e47219c7d79647a087efc1a7e47dc5f
4
+ data.tar.gz: 947b21a38363fbacce82efc0c64c9133d12f288b
5
+ SHA512:
6
+ metadata.gz: aa27e001d17dd63b235e810d43341b59c606dd37cf83d5a434455d3d0a065726704d329f9f6849e5418dd77fb6f529184f2b5374fb5573c93a24d84d2926f91c
7
+ data.tar.gz: d86806b8493f40d48873d8ac00edf91aa41ac5760a1052951c3985e74c617e586ae9abf22ee6e6648cc9ae599147de7361abdbe65b85db86a449da73fd2fc5d8
@@ -1,3 +1,3 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.0
3
+ - 2.0.0
@@ -3,5 +3,6 @@ require "rest_client"
3
3
  require "webtrends/version"
4
4
  require "webtrends/service"
5
5
  require "webtrends/event"
6
+ require "webtrends/visitor"
6
7
  require "webtrends/configuration"
7
8
  require "webtrends/exception"
@@ -11,7 +11,7 @@ module Webtrends
11
11
  end
12
12
 
13
13
  class Configuration
14
- attr_accessor :verbose, :format, :protocol, :domain, :version, :customer_id, :event_service
14
+ attr_accessor :verbose, :format, :protocol, :domain, :version, :customer_id, :event_service, :visitor_service
15
15
 
16
16
  def initialize
17
17
  self.verbose = false
@@ -20,6 +20,7 @@ module Webtrends
20
20
  self.domain = 'dc.webtrends.com'
21
21
  self.version = 'v1'
22
22
  self.event_service = 'events.svc'
23
+ self.visitor_service = 'ids.svc'
23
24
  end
24
25
  end
25
26
  end
@@ -1,3 +1,3 @@
1
1
  module Webtrends
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,13 @@
1
+ module Webtrends
2
+ class Visitor < Service
3
+
4
+ def initialize(args = {})
5
+ super
6
+ self.service = args.fetch(:service, Webtrends.configuration.visitor_service)
7
+ end
8
+
9
+ def track
10
+ RestClient.post endpoint, options
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,66 @@
1
+ describe Webtrends::Visitor do
2
+ let(:successful_response) { OpenStruct.new({response: '10.62.80.61-2450180400.29991975', code: 200}) }
3
+ let(:default_configuration) do
4
+ OpenStruct.new(
5
+ customer_id: 'whereevermd',
6
+ verbose: false,
7
+ format: 'xml')
8
+ end
9
+
10
+ before(:each) do
11
+ Webtrends.configure do |c|
12
+ c.customer_id = default_configuration.customer_id
13
+ end
14
+ end
15
+
16
+ describe '#track' do
17
+ context 'successful response' do
18
+ it 'returns success code' do
19
+ RestClient.stub(:post).and_return(successful_response)
20
+ response = subject.track
21
+ expect(response.code).to eq(200)
22
+ end
23
+
24
+ it 'returns a valid id' do
25
+ RestClient.stub(:post).and_return(successful_response)
26
+ response = subject.track
27
+ expect(response.response).to eq('10.62.80.61-2450180400.29991975')
28
+ end
29
+ end
30
+
31
+ context 'unsuccessful response' do
32
+ it 'triggers an exception' do
33
+ RestClient.stub(:post).and_raise(RestClient::BadRequest.new '400 Bad Request')
34
+ begin
35
+ response = subject.track
36
+ rescue Exception => e
37
+ expect(e).to be_kind_of(RestClient::BadRequest)
38
+ end
39
+ expect(response).to be_nil
40
+ end
41
+ end
42
+ end
43
+
44
+ describe '.initialize' do
45
+ context 'not passing custom configuration' do
46
+ it 'uses default configuration' do
47
+ expect(subject.customer_id).to eq(default_configuration.customer_id)
48
+ expect(subject.verbose).to eq(default_configuration.verbose)
49
+ expect(subject.format).to eq(default_configuration.format)
50
+ end
51
+ end
52
+
53
+ context 'passing custom configuration' do
54
+ let(:custom_configuration) do
55
+ { customer_id: 'somedifferent', verbose: true, format: 'plain' }
56
+ end
57
+
58
+ let(:subject) { Webtrends::Visitor.new(custom_configuration) }
59
+ it 'does not use default configuration' do
60
+ expect(subject.customer_id).to_not eq(default_configuration.customer_id)
61
+ expect(subject.verbose).to_not eq(default_configuration.verbose)
62
+ expect(subject.format).to_not eq(default_configuration.format)
63
+ end
64
+ end
65
+ end
66
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webtrends
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michael van den Beuken
@@ -14,12 +13,11 @@ authors:
14
13
  autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
- date: 2014-03-26 00:00:00.000000000 Z
16
+ date: 2014-07-07 00:00:00.000000000 Z
18
17
  dependencies:
19
18
  - !ruby/object:Gem::Dependency
20
19
  name: bundler
21
20
  requirement: !ruby/object:Gem::Requirement
22
- none: false
23
21
  requirements:
24
22
  - - ~>
25
23
  - !ruby/object:Gem::Version
@@ -27,7 +25,6 @@ dependencies:
27
25
  type: :development
28
26
  prerelease: false
29
27
  version_requirements: !ruby/object:Gem::Requirement
30
- none: false
31
28
  requirements:
32
29
  - - ~>
33
30
  - !ruby/object:Gem::Version
@@ -35,113 +32,99 @@ dependencies:
35
32
  - !ruby/object:Gem::Dependency
36
33
  name: rake
37
34
  requirement: !ruby/object:Gem::Requirement
38
- none: false
39
35
  requirements:
40
- - - ! '>='
36
+ - - '>='
41
37
  - !ruby/object:Gem::Version
42
38
  version: '0'
43
39
  type: :development
44
40
  prerelease: false
45
41
  version_requirements: !ruby/object:Gem::Requirement
46
- none: false
47
42
  requirements:
48
- - - ! '>='
43
+ - - '>='
49
44
  - !ruby/object:Gem::Version
50
45
  version: '0'
51
46
  - !ruby/object:Gem::Dependency
52
47
  name: pry
53
48
  requirement: !ruby/object:Gem::Requirement
54
- none: false
55
49
  requirements:
56
- - - ! '>='
50
+ - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: '0'
59
53
  type: :development
60
54
  prerelease: false
61
55
  version_requirements: !ruby/object:Gem::Requirement
62
- none: false
63
56
  requirements:
64
- - - ! '>='
57
+ - - '>='
65
58
  - !ruby/object:Gem::Version
66
59
  version: '0'
67
60
  - !ruby/object:Gem::Dependency
68
61
  name: rspec
69
62
  requirement: !ruby/object:Gem::Requirement
70
- none: false
71
63
  requirements:
72
- - - ! '>='
64
+ - - '>='
73
65
  - !ruby/object:Gem::Version
74
66
  version: '0'
75
67
  type: :development
76
68
  prerelease: false
77
69
  version_requirements: !ruby/object:Gem::Requirement
78
- none: false
79
70
  requirements:
80
- - - ! '>='
71
+ - - '>='
81
72
  - !ruby/object:Gem::Version
82
73
  version: '0'
83
74
  - !ruby/object:Gem::Dependency
84
75
  name: rspec-instafail
85
76
  requirement: !ruby/object:Gem::Requirement
86
- none: false
87
77
  requirements:
88
- - - ! '>='
78
+ - - '>='
89
79
  - !ruby/object:Gem::Version
90
80
  version: '0'
91
81
  type: :development
92
82
  prerelease: false
93
83
  version_requirements: !ruby/object:Gem::Requirement
94
- none: false
95
84
  requirements:
96
- - - ! '>='
85
+ - - '>='
97
86
  - !ruby/object:Gem::Version
98
87
  version: '0'
99
88
  - !ruby/object:Gem::Dependency
100
89
  name: simplecov
101
90
  requirement: !ruby/object:Gem::Requirement
102
- none: false
103
91
  requirements:
104
- - - ! '>='
92
+ - - '>='
105
93
  - !ruby/object:Gem::Version
106
94
  version: '0'
107
95
  type: :development
108
96
  prerelease: false
109
97
  version_requirements: !ruby/object:Gem::Requirement
110
- none: false
111
98
  requirements:
112
- - - ! '>='
99
+ - - '>='
113
100
  - !ruby/object:Gem::Version
114
101
  version: '0'
115
102
  - !ruby/object:Gem::Dependency
116
103
  name: coveralls
117
104
  requirement: !ruby/object:Gem::Requirement
118
- none: false
119
105
  requirements:
120
- - - ! '>='
106
+ - - '>='
121
107
  - !ruby/object:Gem::Version
122
108
  version: '0'
123
109
  type: :development
124
110
  prerelease: false
125
111
  version_requirements: !ruby/object:Gem::Requirement
126
- none: false
127
112
  requirements:
128
- - - ! '>='
113
+ - - '>='
129
114
  - !ruby/object:Gem::Version
130
115
  version: '0'
131
116
  - !ruby/object:Gem::Dependency
132
117
  name: rest-client
133
118
  requirement: !ruby/object:Gem::Requirement
134
- none: false
135
119
  requirements:
136
- - - ! '>='
120
+ - - '>='
137
121
  - !ruby/object:Gem::Version
138
122
  version: '0'
139
123
  type: :runtime
140
124
  prerelease: false
141
125
  version_requirements: !ruby/object:Gem::Requirement
142
- none: false
143
126
  requirements:
144
- - - ! '>='
127
+ - - '>='
145
128
  - !ruby/object:Gem::Version
146
129
  version: '0'
147
130
  description: Make use of the Webtrends api to post event data for analytics purposes.
@@ -170,42 +153,38 @@ files:
170
153
  - lib/webtrends/exception.rb
171
154
  - lib/webtrends/service.rb
172
155
  - lib/webtrends/version.rb
156
+ - lib/webtrends/visitor.rb
173
157
  - spec/event_spec.rb
174
158
  - spec/fixtures/success.xml
175
159
  - spec/spec_helper.rb
160
+ - spec/visitor_spec.rb
176
161
  - webtrends.gemspec
177
162
  homepage: https://github.com/amaabca/webtrends
178
163
  licenses:
179
164
  - MIT
165
+ metadata: {}
180
166
  post_install_message:
181
167
  rdoc_options: []
182
168
  require_paths:
183
169
  - lib
184
170
  required_ruby_version: !ruby/object:Gem::Requirement
185
- none: false
186
171
  requirements:
187
- - - ! '>='
172
+ - - '>='
188
173
  - !ruby/object:Gem::Version
189
174
  version: '0'
190
- segments:
191
- - 0
192
- hash: -896365430473778280
193
175
  required_rubygems_version: !ruby/object:Gem::Requirement
194
- none: false
195
176
  requirements:
196
- - - ! '>='
177
+ - - '>='
197
178
  - !ruby/object:Gem::Version
198
179
  version: '0'
199
- segments:
200
- - 0
201
- hash: -896365430473778280
202
180
  requirements: []
203
181
  rubyforge_project:
204
- rubygems_version: 1.8.23
182
+ rubygems_version: 2.0.0
205
183
  signing_key:
206
- specification_version: 3
184
+ specification_version: 4
207
185
  summary: Make use of the Webtrends api to post event data for analytics purposes.
208
186
  test_files:
209
187
  - spec/event_spec.rb
210
188
  - spec/fixtures/success.xml
211
189
  - spec/spec_helper.rb
190
+ - spec/visitor_spec.rb