teamsnap_rb 2.0.0.beta10 → 2.0.0.beta11

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