teamsnap_rb 2.0.0.beta10 → 2.0.0.beta11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 81655759f5f779f3c76911d37b18c6e1998ffe4c
4
+ data.tar.gz: 9991061adc2b212d443f8a0bc17b7f91b03d2c22
5
+ SHA512:
6
+ metadata.gz: 32bd7c2e21f4614effe6f600e2dd382a2ab1a282e84cb1603be310dba4f5ef21109106dd1f38eafe4bb70a36e77ed5b3f8eac6d0ef58a5d117bfcc3f7bd45bdd
7
+ data.tar.gz: f00c4eda9ad63baebdc7e0c2bca521664d2ce2b349e153dede2081087008f124bebdbc56a78fda6d5651130aab2b1067f61e732e431086d5f0870cbc40b61e33
data/CHANGELOG.md CHANGED
@@ -35,3 +35,8 @@ v2.0.0.beta10
35
35
  ------
36
36
 
37
37
  - Allow uploading of Files or Tempfiles
38
+
39
+ v2.0.0.beta11
40
+ ------
41
+
42
+ - Allow uploading Rack::Test::UploadFile for testing purposes
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source "https://rubygems.org"
3
3
  gem "simplecov", "0.11.2", :require => false
4
4
  gem "coveralls", :require => false
5
5
  gem "pry", :require => false
6
+ gem "rack-test", "0.6.2", :require => false
7
+ gem "rack", "1.6.4", :require => false
6
8
  gem "awesome_print"
7
9
 
8
10
  gemspec
data/lib/teamsnap.rb CHANGED
@@ -68,7 +68,7 @@ module TeamSnap
68
68
  client.send(via, href, args)
69
69
  when :patch, :post
70
70
  client.send(via, href) do |req|
71
- if args.values.any? { |a| a.kind_of?(File) || a.kind_of?(Tempfile) }
71
+ if use_multipart?(args)
72
72
  req.body = args
73
73
  else
74
74
  req.body = Oj.dump(args)
@@ -79,5 +79,16 @@ module TeamSnap
79
79
  end
80
80
  end
81
81
 
82
+ private
83
+
84
+ def use_multipart?(args)
85
+ valid_file_types.any? { |type|
86
+ args.values.any? { |a| defined?(type) && a.kind_of?(type) }
87
+ }
88
+ end
89
+
90
+ def valid_file_types
91
+ [File, Tempfile, Rack::Test::UploadedFile]
92
+ end
82
93
  end
83
94
  end
@@ -52,7 +52,7 @@ module TeamSnap
52
52
  end
53
53
 
54
54
  def message(env)
55
- env.body || ""
55
+ env.body.to_s || ""
56
56
  end
57
57
  end
58
58
  end
@@ -1,3 +1,3 @@
1
1
  module TeamSnap
2
- VERSION = "2.0.0.beta10"
2
+ VERSION = "2.0.0.beta11"
3
3
  end
@@ -0,0 +1,42 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: patch
5
+ uri: http://localhost:3000/?hmac_client_id=classic&hmac_nonce=e773621e-2824-4f67-9d6b-0136f1776a23&hmac_timestamp=1469043061
6
+ body:
7
+ encoding: UTF-8
8
+ string: "-------------RubyMultipartPost\r\nContent-Disposition: form-data; name=\"file\";
9
+ filename=\"spec_helper.rb\"\r\nContent-Length: 848\r\nContent-Type: txt/csv\r\nContent-Transfer-Encoding:
10
+ binary\r\n\r\nrequire \"simplecov\"\nrequire \"coveralls\"\nrequire \"awesome_print\"\nrequire
11
+ \"rack/test\"\n\nSimpleCov::Formatter::MultiFormatter[\n SimpleCov::Formatter::HTMLFormatter,\n
12
+ \ Coveralls::SimpleCov::Formatter\n]\nSimpleCov.start do\n add_filter \"vendor\"\nend\n\nrequire
13
+ \"vcr\"\nrequire \"pry\"\n\nROOT_TEST_URL = \"http://localhost:3000\"\n\nVCR.configure
14
+ do |c|\n c.cassette_library_dir = \"spec/cassettes\"\n c.hook_into :typhoeus\n
15
+ \ c.configure_rspec_metadata!\n c.default_cassette_options = {\n :record
16
+ => :once,\n :match_requests_on => [\n :method,\n VCR.request_matchers.uri_without_params(\n
17
+ \ :hmac_client_id, :hmac_nonce, :hmac_timestamp\n )\n ]\n }\n
18
+ \ c.before_record do |i|\n i.response.body.force_encoding('UTF-8')\n end\nend\n\nRSpec.configure
19
+ do |c|\n c.expose_dsl_globally = false\n c.order = \"random\"\n c.backtrace_inclusion_patterns
20
+ = []\nend\n\r\n-------------RubyMultipartPost--\r\n\r\n"
21
+ headers:
22
+ User-Agent:
23
+ - Faraday v0.9.2
24
+ Content-Type:
25
+ - multipart/form-data; boundary=-----------RubyMultipartPost
26
+ Content-Length:
27
+ - '1071'
28
+ X-Teamsnap-Hmac:
29
+ - 2b7109a8cfee7a332f234a9325e436e4b63aa26c16bacbd48ca9cfefb0b12c82
30
+ response:
31
+ status:
32
+ code: 0
33
+ message:
34
+ headers: {}
35
+ body:
36
+ encoding: UTF-8
37
+ string: ''
38
+ http_version:
39
+ adapter_metadata:
40
+ effective_url: http://localhost:3000/?hmac_client_id=classic&hmac_nonce=e773621e-2824-4f67-9d6b-0136f1776a23&hmac_timestamp=1469043061
41
+ recorded_at: Wed, 20 Jul 2016 19:31:01 GMT
42
+ recorded_with: VCR 2.9.3
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "simplecov"
2
2
  require "coveralls"
3
3
  require "awesome_print"
4
+ require "rack/test"
4
5
 
5
6
  SimpleCov::Formatter::MultiFormatter[
6
7
  SimpleCov::Formatter::HTMLFormatter,
@@ -140,6 +140,19 @@ RSpec.describe "teamsnap_rb", :vcr => true do
140
140
  expect(client).to receive(via).with(href).and_call_original
141
141
  TeamSnap.client_send(client, via, href, args)
142
142
  end
143
+
144
+ it "accepts test file arg when creating HMAC" do
145
+ via = :patch
146
+ href = "/"
147
+ args = {
148
+ :file => Rack::Test::UploadedFile.new(
149
+ File.expand_path(File.dirname(__FILE__)) +
150
+ "/spec_helper.rb", "txt/csv")
151
+ }
152
+
153
+ expect(client).to receive(via).with(href).and_call_original
154
+ TeamSnap.client_send(client, via, href, args)
155
+ end
143
156
  end
144
157
 
145
158
  context "when sent unknown `via`" do
@@ -224,7 +237,7 @@ RSpec.describe "teamsnap_rb", :vcr => true do
224
237
  TeamSnap.bulk_load
225
238
  }.to raise_error(
226
239
  ArgumentError,
227
- "wrong number of arguments (0 for 1+)"
240
+ "wrong number of arguments (given 0, expected 1+)"
228
241
  )
229
242
  end
230
243
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teamsnap_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta10
5
- prerelease: 6
4
+ version: 2.0.0.beta11
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shane Emmons
@@ -10,150 +9,132 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2016-07-15 00:00:00.000000000 Z
12
+ date: 2016-07-20 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rake
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - ">="
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - ">="
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: bundler
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ~>
32
+ - - "~>"
37
33
  - !ruby/object:Gem::Version
38
34
  version: 1.10.2
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ~>
39
+ - - "~>"
45
40
  - !ruby/object:Gem::Version
46
41
  version: 1.10.2
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rspec
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ~>
46
+ - - "~>"
53
47
  - !ruby/object:Gem::Version
54
48
  version: 3.2.0
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ~>
53
+ - - "~>"
61
54
  - !ruby/object:Gem::Version
62
55
  version: 3.2.0
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: vcr
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ~>
60
+ - - "~>"
69
61
  - !ruby/object:Gem::Version
70
62
  version: 2.9.3
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ~>
67
+ - - "~>"
77
68
  - !ruby/object:Gem::Version
78
69
  version: 2.9.3
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: faraday
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ~>
74
+ - - "~>"
85
75
  - !ruby/object:Gem::Version
86
76
  version: 0.9.1
87
77
  type: :runtime
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ~>
81
+ - - "~>"
93
82
  - !ruby/object:Gem::Version
94
83
  version: 0.9.1
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: typhoeus
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
- - - ~>
88
+ - - "~>"
101
89
  - !ruby/object:Gem::Version
102
90
  version: 0.7.1
103
91
  type: :runtime
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
- - - ~>
95
+ - - "~>"
109
96
  - !ruby/object:Gem::Version
110
97
  version: 0.7.1
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: oj
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
- - - ~>
102
+ - - "~>"
117
103
  - !ruby/object:Gem::Version
118
104
  version: 2.11.4
119
105
  type: :runtime
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
- - - ~>
109
+ - - "~>"
125
110
  - !ruby/object:Gem::Version
126
111
  version: 2.11.4
127
112
  - !ruby/object:Gem::Dependency
128
113
  name: inflecto
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
- - - ~>
116
+ - - "~>"
133
117
  - !ruby/object:Gem::Version
134
118
  version: 0.0.2
135
119
  type: :runtime
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
- - - ~>
123
+ - - "~>"
141
124
  - !ruby/object:Gem::Version
142
125
  version: 0.0.2
143
126
  - !ruby/object:Gem::Dependency
144
127
  name: virtus
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
- - - ~>
130
+ - - "~>"
149
131
  - !ruby/object:Gem::Version
150
132
  version: 1.0.4
151
133
  type: :runtime
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
- - - ~>
137
+ - - "~>"
157
138
  - !ruby/object:Gem::Version
158
139
  version: 1.0.4
159
140
  description: A gem to interact with TeamSnap's API
@@ -163,8 +144,8 @@ executables: []
163
144
  extensions: []
164
145
  extra_rdoc_files: []
165
146
  files:
166
- - .gitignore
167
- - .travis.yml
147
+ - ".gitignore"
148
+ - ".travis.yml"
168
149
  - CHANGELOG.md
169
150
  - Gemfile
170
151
  - LICENSE
@@ -205,6 +186,7 @@ files:
205
186
  - spec/cassettes/teamsnap_rb/_bulk_load/can_handle_an_empty_bulk_load.yml
206
187
  - spec/cassettes/teamsnap_rb/_bulk_load/can_handle_an_error_with_bulk_load_without_a_team_id.yml
207
188
  - spec/cassettes/teamsnap_rb/_bulk_load/can_use_bulk_load.yml
189
+ - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/accepts_test_file_arg_when_creating_HMAC.yml
208
190
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_DELETE_on_the_given_client.yml
209
191
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_GET_on_the_given_client.yml
210
192
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_PATCH_on_the_given_client.yml
@@ -227,27 +209,26 @@ files:
227
209
  homepage: http://developer.teamsnap.com/
228
210
  licenses:
229
211
  - MIT
212
+ metadata: {}
230
213
  post_install_message:
231
214
  rdoc_options: []
232
215
  require_paths:
233
216
  - lib
234
217
  required_ruby_version: !ruby/object:Gem::Requirement
235
- none: false
236
218
  requirements:
237
- - - ! '>='
219
+ - - ">="
238
220
  - !ruby/object:Gem::Version
239
221
  version: 1.9.3
240
222
  required_rubygems_version: !ruby/object:Gem::Requirement
241
- none: false
242
223
  requirements:
243
- - - ! '>'
224
+ - - ">"
244
225
  - !ruby/object:Gem::Version
245
226
  version: 1.3.1
246
227
  requirements: []
247
228
  rubyforge_project:
248
- rubygems_version: 1.8.25
229
+ rubygems_version: 2.6.3
249
230
  signing_key:
250
- specification_version: 3
231
+ specification_version: 4
251
232
  summary: A gem to interact with TeamSnap's API
252
233
  test_files:
253
234
  - spec/cassettes/apiv3-error.yml
@@ -274,6 +255,7 @@ test_files:
274
255
  - spec/cassettes/teamsnap_rb/_bulk_load/can_handle_an_empty_bulk_load.yml
275
256
  - spec/cassettes/teamsnap_rb/_bulk_load/can_handle_an_error_with_bulk_load_without_a_team_id.yml
276
257
  - spec/cassettes/teamsnap_rb/_bulk_load/can_use_bulk_load.yml
258
+ - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/accepts_test_file_arg_when_creating_HMAC.yml
277
259
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_DELETE_on_the_given_client.yml
278
260
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_GET_on_the_given_client.yml
279
261
  - spec/cassettes/teamsnap_rb/_client_send/when_sent_a_known_via_/calls_PATCH_on_the_given_client.yml