songkick-transport 1.2.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -1,31 +1,37 @@
1
1
  require 'rubygems'
2
2
  require File.expand_path('../../lib/songkick/transport', __FILE__)
3
3
 
4
+ require 'active_support/notifications'
4
5
  require 'logger'
5
6
  require 'sinatra'
6
7
  require 'thin'
7
8
 
8
9
  Thin::Logging.silent = true
9
10
  Songkick::Transport.logger = Logger.new(StringIO.new)
11
+ #RSpec.configure { |config| config.raise_errors_for_deprecations! }
10
12
 
11
13
  class TestApp < Sinatra::Base
12
14
  before do
13
15
  headers 'Content-Type' => 'application/json'
14
16
  end
15
-
17
+
16
18
  get('/') { Yajl::Encoder.encode(params) }
17
19
  post('/') { Yajl::Encoder.encode(params) }
18
-
20
+
21
+ not_found do
22
+ halt 404, '{"error": "not found"}'
23
+ end
24
+
19
25
  get '/invalid' do
20
26
  '}'
21
27
  end
22
-
28
+
23
29
  get '/authenticate' do
24
30
  env['HTTP_AUTHORIZATION'] ?
25
31
  Yajl::Encoder.encode('successful' => true) :
26
32
  Yajl::Encoder.encode('successful' => false)
27
33
  end
28
-
34
+
29
35
  get '/artists/:id' do
30
36
  Yajl::Encoder.encode('id' => params[:id].to_i)
31
37
  end
@@ -34,15 +40,15 @@ class TestApp < Sinatra::Base
34
40
  headers 'Access-Control-Allow-Methods' => 'GET, PUT, DELETE'
35
41
  ''
36
42
  end
37
-
43
+
38
44
  post '/artists' do
39
45
  Yajl::Encoder.encode('id' => 'new', 'name' => params[:name].upcase)
40
46
  end
41
-
47
+
42
48
  post '/content' do
43
49
  Yajl::Encoder.encode('type' => env['CONTENT_TYPE'])
44
50
  end
45
-
51
+
46
52
  put '/artists/:id' do
47
53
  name = params[:name] || CGI.parse(env['rack.input'].read)['name'].first || ''
48
54
  Yajl::Encoder.encode('id' => params[:id].to_i, 'name' => name.downcase)
@@ -51,9 +57,10 @@ class TestApp < Sinatra::Base
51
57
  post '/process' do
52
58
  Yajl::Encoder.encode('body' => request.body.read, 'type' => request.env['CONTENT_TYPE'])
53
59
  end
54
-
60
+
55
61
  %w[post put].each do |verb|
56
62
  __send__(verb, '/upload') do
63
+ begin
57
64
  c = params[:concert]
58
65
  Yajl::Encoder.encode(
59
66
  "filename" => c[:file][:filename],
@@ -61,24 +68,26 @@ class TestApp < Sinatra::Base
61
68
  "size" => c[:file][:tempfile].size,
62
69
  "foo" => c[:foo]
63
70
  )
71
+ rescue => e
72
+ p e
73
+ end
64
74
  end
65
75
  end
66
-
76
+
67
77
  def self.ensure_reactor_running
68
78
  Thread.new { EM.run } unless EM.reactor_running?
69
79
  Thread.pass until EM.reactor_running?
70
80
  end
71
-
81
+
72
82
  def self.listen(port)
73
83
  ensure_reactor_running
74
84
  thin = Rack::Handler.get('thin')
75
85
  app = Rack::Lint.new(self)
76
86
  thin.run(app, :Port => port) { |s| @server = s }
77
87
  end
78
-
88
+
79
89
  def self.stop
80
90
  @server.stop
81
91
  sleep 1
82
92
  end
83
93
  end
84
-
metadata CHANGED
@@ -1,184 +1,220 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: songkick-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Daniel Lucraft
7
8
  - James Coglan
9
+ - Sabrina Leandro
10
+ - Robin Tweedie
11
+ - Paul Lawson
12
+ - Sabina Bejasa-Dimmock
8
13
  autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
- date: 2014-06-27 00:00:00.000000000 Z
16
+ date: 2015-07-29 00:00:00.000000000 Z
12
17
  dependencies:
13
18
  - !ruby/object:Gem::Dependency
14
19
  name: multipart-post
15
20
  requirement: !ruby/object:Gem::Requirement
16
21
  requirements:
17
- - - '>='
22
+ - - ">="
18
23
  - !ruby/object:Gem::Version
19
24
  version: 1.1.0
20
25
  type: :runtime
21
26
  prerelease: false
22
27
  version_requirements: !ruby/object:Gem::Requirement
23
28
  requirements:
24
- - - '>='
29
+ - - ">="
25
30
  - !ruby/object:Gem::Version
26
31
  version: 1.1.0
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: yajl-ruby
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
- - - '>='
36
+ - - ">="
32
37
  - !ruby/object:Gem::Version
33
38
  version: 1.1.0
34
39
  type: :runtime
35
40
  prerelease: false
36
41
  version_requirements: !ruby/object:Gem::Requirement
37
42
  requirements:
38
- - - '>='
43
+ - - ">="
39
44
  - !ruby/object:Gem::Version
40
45
  version: 1.1.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: activesupport
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 3.0.0
53
+ type: :development
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 3.0.0
41
60
  - !ruby/object:Gem::Dependency
42
61
  name: curb
43
62
  requirement: !ruby/object:Gem::Requirement
44
63
  requirements:
45
- - - '>='
64
+ - - ">="
46
65
  - !ruby/object:Gem::Version
47
66
  version: 0.3.0
48
67
  type: :development
49
68
  prerelease: false
50
69
  version_requirements: !ruby/object:Gem::Requirement
51
70
  requirements:
52
- - - '>='
71
+ - - ">="
53
72
  - !ruby/object:Gem::Version
54
73
  version: 0.3.0
55
74
  - !ruby/object:Gem::Dependency
56
75
  name: httparty
57
76
  requirement: !ruby/object:Gem::Requirement
58
77
  requirements:
59
- - - '>='
78
+ - - ">="
60
79
  - !ruby/object:Gem::Version
61
80
  version: 0.4.0
62
81
  type: :development
63
82
  prerelease: false
64
83
  version_requirements: !ruby/object:Gem::Requirement
65
84
  requirements:
66
- - - '>='
85
+ - - ">="
67
86
  - !ruby/object:Gem::Version
68
87
  version: 0.4.0
69
88
  - !ruby/object:Gem::Dependency
70
89
  name: rack-test
71
90
  requirement: !ruby/object:Gem::Requirement
72
91
  requirements:
73
- - - '>='
92
+ - - ">="
74
93
  - !ruby/object:Gem::Version
75
94
  version: 0.4.0
76
95
  type: :development
77
96
  prerelease: false
78
97
  version_requirements: !ruby/object:Gem::Requirement
79
98
  requirements:
80
- - - '>='
99
+ - - ">="
81
100
  - !ruby/object:Gem::Version
82
101
  version: 0.4.0
102
+ - !ruby/object:Gem::Dependency
103
+ name: rake
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
83
116
  - !ruby/object:Gem::Dependency
84
117
  name: rspec
85
118
  requirement: !ruby/object:Gem::Requirement
86
119
  requirements:
87
- - - '>='
120
+ - - ">="
88
121
  - !ruby/object:Gem::Version
89
122
  version: '0'
90
123
  type: :development
91
124
  prerelease: false
92
125
  version_requirements: !ruby/object:Gem::Requirement
93
126
  requirements:
94
- - - '>='
127
+ - - ">="
95
128
  - !ruby/object:Gem::Version
96
129
  version: '0'
97
130
  - !ruby/object:Gem::Dependency
98
131
  name: sinatra
99
132
  requirement: !ruby/object:Gem::Requirement
100
133
  requirements:
101
- - - '>='
134
+ - - ">="
102
135
  - !ruby/object:Gem::Version
103
136
  version: '0'
104
137
  type: :development
105
138
  prerelease: false
106
139
  version_requirements: !ruby/object:Gem::Requirement
107
140
  requirements:
108
- - - '>='
141
+ - - ">="
109
142
  - !ruby/object:Gem::Version
110
143
  version: '0'
111
144
  - !ruby/object:Gem::Dependency
112
145
  name: thin
113
146
  requirement: !ruby/object:Gem::Requirement
114
147
  requirements:
115
- - - '>='
148
+ - - ">="
116
149
  - !ruby/object:Gem::Version
117
150
  version: '0'
118
151
  type: :development
119
152
  prerelease: false
120
153
  version_requirements: !ruby/object:Gem::Requirement
121
154
  requirements:
122
- - - '>='
155
+ - - ">="
123
156
  - !ruby/object:Gem::Version
124
157
  version: '0'
125
- description:
126
- email: james@songkick.com
158
+ description: HTTP client abstraction for service clients
159
+ email: developers@songkick.com
127
160
  executables: []
128
161
  extensions: []
129
162
  extra_rdoc_files:
130
163
  - README.rdoc
131
164
  files:
132
165
  - README.rdoc
133
- - examples/thread_safety.rb
134
- - examples/server.rb
135
166
  - examples/example.rb
136
167
  - examples/loop.rb
168
+ - examples/server.rb
137
169
  - examples/tcp_server.rb
170
+ - examples/thread_safety.rb
138
171
  - lib/songkick/transport.rb
139
- - lib/songkick/transport/timeout_decorator.rb
140
- - lib/songkick/transport/header_decorator.rb
141
- - lib/songkick/transport/upstream_error.rb
142
- - lib/songkick/transport/httparty.rb
143
- - lib/songkick/transport/service.rb
144
- - lib/songkick/transport/http_error.rb
145
- - lib/songkick/transport/curb.rb
146
- - lib/songkick/transport/request.rb
147
- - lib/songkick/transport/response.rb
172
+ - lib/songkick/transport/authentication.rb
148
173
  - lib/songkick/transport/base.rb
149
- - lib/songkick/transport/rack_test.rb
174
+ - lib/songkick/transport/curb.rb
150
175
  - lib/songkick/transport/headers.rb
176
+ - lib/songkick/transport/html_report.html.erb
177
+ - lib/songkick/transport/http_error.rb
178
+ - lib/songkick/transport/httparty.rb
179
+ - lib/songkick/transport/rack_test.rb
151
180
  - lib/songkick/transport/reporting.rb
181
+ - lib/songkick/transport/request.rb
182
+ - lib/songkick/transport/response.rb
152
183
  - lib/songkick/transport/serialization.rb
153
- - spec/spec_helper.rb
154
- - spec/songkick/transport_spec.rb
184
+ - lib/songkick/transport/service.rb
185
+ - lib/songkick/transport/upstream_error.rb
186
+ - spec/songkick/transport/authentication_spec.rb
187
+ - spec/songkick/transport/base_spec.rb
188
+ - spec/songkick/transport/curb_spec.rb
189
+ - spec/songkick/transport/httparty_spec.rb
155
190
  - spec/songkick/transport/request_spec.rb
156
191
  - spec/songkick/transport/response_spec.rb
157
- - spec/songkick/transport/httparty_spec.rb
158
- - spec/songkick/transport/curb_spec.rb
159
- - lib/songkick/transport/html_report.html.erb
192
+ - spec/songkick/transport/service_spec.rb
193
+ - spec/songkick/transport_spec.rb
194
+ - spec/spec_helper.rb
160
195
  homepage: http://github.com/songkick/transport
161
- licenses: []
196
+ licenses:
197
+ - MIT
162
198
  metadata: {}
163
199
  post_install_message:
164
200
  rdoc_options:
165
- - --main
201
+ - "--main"
166
202
  - README.rdoc
167
203
  require_paths:
168
204
  - lib
169
205
  required_ruby_version: !ruby/object:Gem::Requirement
170
206
  requirements:
171
- - - '>='
207
+ - - ">="
172
208
  - !ruby/object:Gem::Version
173
- version: '0'
209
+ version: 1.8.7
174
210
  required_rubygems_version: !ruby/object:Gem::Requirement
175
211
  requirements:
176
- - - '>='
212
+ - - ">="
177
213
  - !ruby/object:Gem::Version
178
214
  version: '0'
179
215
  requirements: []
180
216
  rubyforge_project:
181
- rubygems_version: 2.1.11
217
+ rubygems_version: 2.4.5
182
218
  signing_key:
183
219
  specification_version: 4
184
220
  summary: HTTP client abstraction for service clients
@@ -1,27 +0,0 @@
1
- module Songkick
2
- module Transport
3
-
4
- class HeaderDecorator
5
- def initialize(client, headers)
6
- @client = client
7
- @headers = Headers.new(headers)
8
- end
9
-
10
- HTTP_VERBS.each do |verb|
11
- class_eval %{
12
- def #{verb}(path, params = {}, headers = {}, timeout = nil)
13
- @client.__send__(:#{verb}, path, params, @headers.merge(headers), timeout)
14
- end
15
- }
16
- end
17
-
18
- private
19
-
20
- def method_missing(*args, &block)
21
- @client.__send__(*args, &block)
22
- end
23
- end
24
-
25
- end
26
- end
27
-
@@ -1,27 +0,0 @@
1
- module Songkick
2
- module Transport
3
-
4
- class TimeoutDecorator
5
- def initialize(client, timeout)
6
- @client = client
7
- @timeout = timeout
8
- end
9
-
10
- HTTP_VERBS.each do |verb|
11
- class_eval %{
12
- def #{verb}(path, params = {}, headers ={}, timeout = nil)
13
- @client.__send__(:#{verb}, path, params, headers, timeout || @timeout)
14
- end
15
- }
16
- end
17
-
18
- private
19
-
20
- def method_missing(*args, &block)
21
- @client.__send__(*args, &block)
22
- end
23
- end
24
-
25
- end
26
- end
27
-