webtrends 0.0.3 → 0.0.4

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,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