ruby-oembed 0.13.1 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -2
  3. data/CHANGELOG.rdoc +25 -1
  4. data/README.md +23 -5
  5. data/lib/oembed/provider.rb +54 -5
  6. data/lib/oembed/providers/{embedly_urls.yml → aggregators/embedly_urls.yml} +0 -0
  7. data/lib/oembed/providers/{noembed_urls.yml → aggregators/noembed_urls.yml} +0 -0
  8. data/lib/oembed/providers/{oohembed_urls.yml → aggregators/oohembed_urls.yml} +0 -0
  9. data/lib/oembed/providers/builtin_providers.rb +297 -0
  10. data/lib/oembed/providers/facebook_post.rb +35 -0
  11. data/lib/oembed/providers/facebook_video.rb +30 -0
  12. data/lib/oembed/providers/instagram.rb +45 -0
  13. data/lib/oembed/providers/tiktok.rb +13 -0
  14. data/lib/oembed/providers.rb +46 -322
  15. data/lib/oembed/version.rb +2 -2
  16. data/lib/oembed.rb +1 -0
  17. data/lib/tasks/oembed.rake +2 -2
  18. data/ruby-oembed.gemspec +1 -2
  19. metadata +16 -55
  20. data/integration_test/test.rb +0 -31
  21. data/integration_test/test_urls.csv +0 -502
  22. data/spec/cassettes/OEmbed_Provider.yml +0 -987
  23. data/spec/cassettes/OEmbed_ProviderDiscovery.yml +0 -27184
  24. data/spec/cassettes/OEmbed_Providers_Slideshare.yml +0 -1433
  25. data/spec/cassettes/OEmbed_Providers_Twitter.yml +0 -612
  26. data/spec/formatter/ducktype_backend_spec.rb +0 -94
  27. data/spec/formatter/json/.DS_Store +0 -0
  28. data/spec/formatter/json/jsongem_backend_spec.rb +0 -71
  29. data/spec/formatter/json/yaml_backend_spec.rb +0 -55
  30. data/spec/formatter/xml/nokogiri_backend_spec.rb +0 -59
  31. data/spec/formatter/xml/rexml_backend_spec.rb +0 -55
  32. data/spec/formatter/xml/xmlsimple_backend_spec.rb +0 -59
  33. data/spec/formatter_spec.rb +0 -37
  34. data/spec/provider_discovery_spec.rb +0 -141
  35. data/spec/provider_spec.rb +0 -366
  36. data/spec/providers/slideshare_spec.rb +0 -42
  37. data/spec/providers/twitter_spec.rb +0 -44
  38. data/spec/providers_spec.rb +0 -258
  39. data/spec/response_spec.rb +0 -230
  40. data/spec/spec_helper.rb +0 -111
  41. data/spec/spec_helper_examples.yml +0 -27
  42. data/spec/support/shared_examples_for_providers.rb +0 -39
@@ -1,612 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.twitter.com/1/statuses/oembed.json?url=https%3A%2F%2Ftwitter.com%2FRailsGirlsSoC%2Fstatus%2F702136612822634496
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- User-Agent:
13
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
14
- response:
15
- status:
16
- code: 200
17
- message: OK
18
- headers:
19
- Cache-Control:
20
- - must-revalidate, max-age=3153600000
21
- Content-Disposition:
22
- - attachment; filename=json.json
23
- Content-Length:
24
- - '511'
25
- Content-Type:
26
- - application/json; charset=utf-8
27
- Date:
28
- - Sun, 22 May 2016 04:42:50 GMT
29
- Expires:
30
- - Tue, 28 Apr 2116 04:42:50 GMT
31
- Last-Modified:
32
- - Sun, 22 May 2016 04:42:50 GMT
33
- Server:
34
- - tsa_a
35
- Set-Cookie:
36
- - guest_id=v1%3A146389217092127692; Domain=.twitter.com; Path=/; Expires=Tue,
37
- 22-May-2018 04:42:50 UTC
38
- Strict-Transport-Security:
39
- - max-age=631138519
40
- X-Connection-Hash:
41
- - 94a2de9aaa8f85b2411f08f3a47cd023
42
- X-Content-Type-Options:
43
- - nosniff
44
- X-Frame-Options:
45
- - SAMEORIGIN
46
- X-Response-Time:
47
- - '16'
48
- X-Xss-Protection:
49
- - 1; mode=block
50
- body:
51
- encoding: ASCII-8BIT
52
- string: !binary |-
53
- eyJ1cmwiOiJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0NcL3N0YXR1c1wvNzAyMTM2NjEyODIyNjM0NDk2IiwiYXV0aG9yX25hbWUiOiJSYWlscyBHaXJscyBTb0MiLCJhdXRob3JfdXJsIjoiaHR0cHM6XC9cL3R3aXR0ZXIuY29tXC9SYWlsc0dpcmxzU29DIiwiaHRtbCI6Ilx1MDAzQ2Jsb2NrcXVvdGUgY2xhc3M9XCJ0d2l0dGVyLXR3ZWV0XCJcdTAwM0VcdTAwM0NwIGxhbmc9XCJlblwiIGRpcj1cImx0clwiXHUwMDNFT3VyIDIwMTYgZnVuZHJhaXNpbmcgY2FtcGFpZ24gaXMgbm93IG9wZW4hISBMZXTigJlzIG1ha2UgYW5vdGhlciBhbWF6aW5nIHN1bW1lciBoYXBwZW4h4pyoXHVEODNEXHVEQzlDXHVEODNEXHVEQ0FBXHVEODNEXHVEQzlB4pyoXHVEODNEXHVEQzQ5IFx1MDAzQ2EgaHJlZj1cImh0dHBzOlwvXC90LmNvXC9SOEpnMzZ4YVF4XCJcdTAwM0VodHRwczpcL1wvdC5jb1wvUjhKZzM2eGFReFx1MDAzQ1wvYVx1MDAzRSBcdTAwM0NhIGhyZWY9XCJodHRwczpcL1wvdC5jb1wvbUl3S1IwZnpHUlwiXHUwMDNFcGljLnR3aXR0ZXIuY29tXC9tSXdLUjBmekdSXHUwMDNDXC9hXHUwMDNFXHUwMDNDXC9wXHUwMDNFJm1kYXNoOyBSYWlscyBHaXJscyBTb0MgKEBSYWlsc0dpcmxzU29DKSBcdTAwM0NhIGhyZWY9XCJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0NcL3N0YXR1c1wvNzAyMTM2NjEyODIyNjM0NDk2XCJcdTAwM0VGZWJydWFyeSAyMywgMjAxNlx1MDAzQ1wvYVx1MDAzRVx1MDAzQ1wvYmxvY2txdW90ZVx1MDAzRVxuXHUwMDNDc2NyaXB0IGFzeW5jIHNyYz1cIlwvXC9wbGF0Zm9ybS50d2l0dGVyLmNvbVwvd2lkZ2V0cy5qc1wiIGNoYXJzZXQ9XCJ1dGYtOFwiXHUwMDNFXHUwMDNDXC9zY3JpcHRcdTAwM0UiLCJ3aWR0aCI6NTUwLCJ0eXBlIjoicmljaCIsImNhY2hlX2FnZSI6IjMxNTM2MDAwMDAiLCJwcm92aWRlcl9uYW1lIjoiVHdpdHRlciIsInByb3ZpZGVyX3VybCI6Imh0dHBzOlwvXC90d2l0dGVyLmNvbSIsImhlaWdodCI6bnVsbCwidmVyc2lvbiI6IjEuMCJ9
54
- http_version: '1.1'
55
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
56
- - request:
57
- method: get
58
- uri: https://api.twitter.com/1/statuses/oembed.json?url=https%3A%2F%2Fwww.twitter.com%2Fbpoweski%2Fstatus%2F71633762
59
- body:
60
- encoding: US-ASCII
61
- string: ''
62
- headers:
63
- Accept-Encoding:
64
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
65
- User-Agent:
66
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
67
- response:
68
- status:
69
- code: 200
70
- message: OK
71
- headers:
72
- Cache-Control:
73
- - must-revalidate, max-age=3153600000
74
- Content-Disposition:
75
- - attachment; filename=json.json
76
- Content-Length:
77
- - '377'
78
- Content-Type:
79
- - application/json; charset=utf-8
80
- Date:
81
- - Sun, 22 May 2016 04:42:51 GMT
82
- Expires:
83
- - Tue, 28 Apr 2116 04:42:51 GMT
84
- Last-Modified:
85
- - Sun, 22 May 2016 04:42:51 GMT
86
- Server:
87
- - tsa_a
88
- Set-Cookie:
89
- - guest_id=v1%3A146389217180318801; Domain=.twitter.com; Path=/; Expires=Tue,
90
- 22-May-2018 04:42:51 UTC
91
- Strict-Transport-Security:
92
- - max-age=631138519
93
- X-Connection-Hash:
94
- - 7a694516718ce415b38581035d0967e0
95
- X-Content-Type-Options:
96
- - nosniff
97
- X-Frame-Options:
98
- - SAMEORIGIN
99
- X-Response-Time:
100
- - '15'
101
- X-Xss-Protection:
102
- - 1; mode=block
103
- body:
104
- encoding: UTF-8
105
- string: '{"url":"https:\/\/twitter.com\/bpoweski\/status\/71633762","author_name":"Ben
106
- Poweski","author_url":"https:\/\/twitter.com\/bpoweski","html":"\u003Cblockquote
107
- class=\"twitter-tweet\"\u003E\u003Cp lang=\"en\" dir=\"ltr\"\u003Eworking
108
- on my Ruby Security book\u003C\/p\u003E— Ben Poweski (@bpoweski) \u003Ca
109
- href=\"https:\/\/twitter.com\/bpoweski\/status\/71633762\"\u003EMay 20, 2007\u003C\/a\u003E\u003C\/blockquote\u003E\n\u003Cscript
110
- async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"\u003E\u003C\/script\u003E","width":550,"type":"rich","cache_age":"3153600000","provider_name":"Twitter","provider_url":"https:\/\/twitter.com","height":null,"version":"1.0"}'
111
- http_version: '1.1'
112
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
113
- - request:
114
- method: get
115
- uri: https://api.twitter.com/1/statuses/oembed.xml?url=https%3A%2F%2Ftwitter.com%2FRailsGirlsSoC%2Fstatus%2F702136612822634496
116
- body:
117
- encoding: US-ASCII
118
- string: ''
119
- headers:
120
- Accept-Encoding:
121
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
122
- User-Agent:
123
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
124
- response:
125
- status:
126
- code: 410
127
- message: Gone
128
- headers:
129
- Content-Length:
130
- - '181'
131
- Content-Type:
132
- - application/xml;charset=utf-8
133
- Date:
134
- - Sun, 22 May 2016 04:47:50 GMT
135
- Server:
136
- - tsa_a
137
- Set-Cookie:
138
- - guest_id=v1%3A146389247047875048; Domain=.twitter.com; Path=/; Expires=Tue,
139
- 22-May-2018 04:47:50 UTC
140
- Strict-Transport-Security:
141
- - max-age=631138519
142
- X-Connection-Hash:
143
- - 4362d0593f7be75dc40b9a6f51ada770
144
- X-Response-Time:
145
- - '2'
146
- body:
147
- encoding: UTF-8
148
- string: <?xml version="1.0" encoding="UTF-8"?><errors> <error code="64">The
149
- Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.</error></errors>
150
- http_version: '1.1'
151
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
152
- - request:
153
- method: get
154
- uri: https://api.twitter.com/1/statuses/oembed.xml?url=https%3A%2F%2Fwww.twitter.com%2Fbpoweski%2Fstatus%2F71633762
155
- body:
156
- encoding: US-ASCII
157
- string: ''
158
- headers:
159
- Accept-Encoding:
160
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
161
- User-Agent:
162
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
163
- response:
164
- status:
165
- code: 410
166
- message: Gone
167
- headers:
168
- Content-Length:
169
- - '181'
170
- Content-Type:
171
- - application/xml;charset=utf-8
172
- Date:
173
- - Sun, 22 May 2016 04:47:50 GMT
174
- Server:
175
- - tsa_a
176
- Set-Cookie:
177
- - guest_id=v1%3A146389247091551370; Domain=.twitter.com; Path=/; Expires=Tue,
178
- 22-May-2018 04:47:50 UTC
179
- Strict-Transport-Security:
180
- - max-age=631138519
181
- X-Connection-Hash:
182
- - 0ad11ae6624c326369f0b9f878dd4faa
183
- X-Response-Time:
184
- - '3'
185
- body:
186
- encoding: UTF-8
187
- string: <?xml version="1.0" encoding="UTF-8"?><errors> <error code="64">The
188
- Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.</error></errors>
189
- http_version: '1.1'
190
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
191
- - request:
192
- method: get
193
- uri: https://publish.twitter.com/oembed?url=https%3A%2F%2Ftwitter.com%2FRailsGirlsSoC%2Fstatus%2F702136612822634496&format=json
194
- body:
195
- encoding: US-ASCII
196
- string: ''
197
- headers:
198
- Accept-Encoding:
199
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
200
- User-Agent:
201
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
202
- response:
203
- status:
204
- code: 200
205
- message: OK
206
- headers:
207
- Cache-Control:
208
- - must-revalidate, max-age=3153600000
209
- Content-Disposition:
210
- - attachment; filename=json.json
211
- Content-Length:
212
- - '511'
213
- Content-Type:
214
- - application/json; charset=utf-8
215
- Date:
216
- - Sun, 22 May 2016 05:28:56 GMT
217
- Expires:
218
- - Tue, 28 Apr 2116 05:28:56 GMT
219
- Last-Modified:
220
- - Sun, 22 May 2016 05:28:56 GMT
221
- Server:
222
- - tsa_a
223
- Set-Cookie:
224
- - guest_id=v1%3A146389493674598630; Domain=.twitter.com; Path=/; Expires=Tue,
225
- 22-May-2018 05:28:56 UTC
226
- Strict-Transport-Security:
227
- - max-age=631138519
228
- X-Connection-Hash:
229
- - af69b197ce2eeb32bfa62ea1f1c8647e
230
- X-Content-Type-Options:
231
- - nosniff
232
- X-Frame-Options:
233
- - SAMEORIGIN
234
- X-Response-Time:
235
- - '35'
236
- X-Xss-Protection:
237
- - 1; mode=block
238
- body:
239
- encoding: ASCII-8BIT
240
- string: !binary |-
241
- eyJ1cmwiOiJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0NcL3N0YXR1c1wvNzAyMTM2NjEyODIyNjM0NDk2IiwiYXV0aG9yX25hbWUiOiJSYWlscyBHaXJscyBTb0MiLCJhdXRob3JfdXJsIjoiaHR0cHM6XC9cL3R3aXR0ZXIuY29tXC9SYWlsc0dpcmxzU29DIiwiaHRtbCI6Ilx1MDAzQ2Jsb2NrcXVvdGUgY2xhc3M9XCJ0d2l0dGVyLXR3ZWV0XCJcdTAwM0VcdTAwM0NwIGxhbmc9XCJlblwiIGRpcj1cImx0clwiXHUwMDNFT3VyIDIwMTYgZnVuZHJhaXNpbmcgY2FtcGFpZ24gaXMgbm93IG9wZW4hISBMZXTigJlzIG1ha2UgYW5vdGhlciBhbWF6aW5nIHN1bW1lciBoYXBwZW4h4pyoXHVEODNEXHVEQzlDXHVEODNEXHVEQ0FBXHVEODNEXHVEQzlB4pyoXHVEODNEXHVEQzQ5IFx1MDAzQ2EgaHJlZj1cImh0dHBzOlwvXC90LmNvXC9SOEpnMzZ4YVF4XCJcdTAwM0VodHRwczpcL1wvdC5jb1wvUjhKZzM2eGFReFx1MDAzQ1wvYVx1MDAzRSBcdTAwM0NhIGhyZWY9XCJodHRwczpcL1wvdC5jb1wvbUl3S1IwZnpHUlwiXHUwMDNFcGljLnR3aXR0ZXIuY29tXC9tSXdLUjBmekdSXHUwMDNDXC9hXHUwMDNFXHUwMDNDXC9wXHUwMDNFJm1kYXNoOyBSYWlscyBHaXJscyBTb0MgKEBSYWlsc0dpcmxzU29DKSBcdTAwM0NhIGhyZWY9XCJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0NcL3N0YXR1c1wvNzAyMTM2NjEyODIyNjM0NDk2XCJcdTAwM0VGZWJydWFyeSAyMywgMjAxNlx1MDAzQ1wvYVx1MDAzRVx1MDAzQ1wvYmxvY2txdW90ZVx1MDAzRVxuXHUwMDNDc2NyaXB0IGFzeW5jIHNyYz1cIlwvXC9wbGF0Zm9ybS50d2l0dGVyLmNvbVwvd2lkZ2V0cy5qc1wiIGNoYXJzZXQ9XCJ1dGYtOFwiXHUwMDNFXHUwMDNDXC9zY3JpcHRcdTAwM0UiLCJ3aWR0aCI6NTUwLCJ0eXBlIjoicmljaCIsImNhY2hlX2FnZSI6IjMxNTM2MDAwMDAiLCJwcm92aWRlcl9uYW1lIjoiVHdpdHRlciIsInByb3ZpZGVyX3VybCI6Imh0dHBzOlwvXC90d2l0dGVyLmNvbSIsImhlaWdodCI6bnVsbCwidmVyc2lvbiI6IjEuMCJ9
242
- http_version: '1.1'
243
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
244
- - request:
245
- method: get
246
- uri: https://publish.twitter.com/oembed?url=https%3A%2F%2Fwww.twitter.com%2Fbpoweski%2Fstatus%2F71633762&format=json
247
- body:
248
- encoding: US-ASCII
249
- string: ''
250
- headers:
251
- Accept-Encoding:
252
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
253
- User-Agent:
254
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
255
- response:
256
- status:
257
- code: 200
258
- message: OK
259
- headers:
260
- Cache-Control:
261
- - must-revalidate, max-age=3153600000
262
- Content-Disposition:
263
- - attachment; filename=json.json
264
- Content-Length:
265
- - '377'
266
- Content-Type:
267
- - application/json; charset=utf-8
268
- Date:
269
- - Sun, 22 May 2016 05:28:58 GMT
270
- Expires:
271
- - Tue, 28 Apr 2116 05:28:58 GMT
272
- Last-Modified:
273
- - Sun, 22 May 2016 05:28:58 GMT
274
- Server:
275
- - tsa_a
276
- Set-Cookie:
277
- - guest_id=v1%3A146389493840609737; Domain=.twitter.com; Path=/; Expires=Tue,
278
- 22-May-2018 05:28:58 UTC
279
- Strict-Transport-Security:
280
- - max-age=631138519
281
- X-Connection-Hash:
282
- - 753e3b3ca5ace007543400fc1a736700
283
- X-Content-Type-Options:
284
- - nosniff
285
- X-Frame-Options:
286
- - SAMEORIGIN
287
- X-Response-Time:
288
- - '15'
289
- X-Xss-Protection:
290
- - 1; mode=block
291
- body:
292
- encoding: UTF-8
293
- string: '{"url":"https:\/\/twitter.com\/bpoweski\/status\/71633762","author_name":"Ben
294
- Poweski","author_url":"https:\/\/twitter.com\/bpoweski","html":"\u003Cblockquote
295
- class=\"twitter-tweet\"\u003E\u003Cp lang=\"en\" dir=\"ltr\"\u003Eworking
296
- on my Ruby Security book\u003C\/p\u003E&mdash; Ben Poweski (@bpoweski) \u003Ca
297
- href=\"https:\/\/twitter.com\/bpoweski\/status\/71633762\"\u003EMay 20, 2007\u003C\/a\u003E\u003C\/blockquote\u003E\n\u003Cscript
298
- async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"\u003E\u003C\/script\u003E","width":550,"type":"rich","cache_age":"3153600000","provider_name":"Twitter","provider_url":"https:\/\/twitter.com","height":null,"version":"1.0"}'
299
- http_version: '1.1'
300
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
301
- - request:
302
- method: get
303
- uri: https://publish.twitter.com/oembed?url=https%3A%2F%2Ftwitter.com%2FRailsGirlsSoC%2Fstatus%2F702136612822634496&format=xml
304
- body:
305
- encoding: US-ASCII
306
- string: ''
307
- headers:
308
- Accept-Encoding:
309
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
310
- User-Agent:
311
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
312
- response:
313
- status:
314
- code: 400
315
- message: Bad Request
316
- headers:
317
- Content-Disposition:
318
- - attachment; filename=json.json
319
- Content-Length:
320
- - '60'
321
- Content-Type:
322
- - application/json; charset=utf-8
323
- Date:
324
- - Sun, 22 May 2016 05:28:58 GMT
325
- Server:
326
- - tsa_a
327
- Set-Cookie:
328
- - guest_id=v1%3A146389493885489875; Domain=.twitter.com; Path=/; Expires=Tue,
329
- 22-May-2018 05:28:58 UTC
330
- Strict-Transport-Security:
331
- - max-age=631138519
332
- X-Connection-Hash:
333
- - a457da9c9aa85d3abd203831bbbb83d3
334
- X-Content-Type-Options:
335
- - nosniff
336
- X-Frame-Options:
337
- - SAMEORIGIN
338
- X-Response-Time:
339
- - '7'
340
- X-Xss-Protection:
341
- - 1; mode=block
342
- body:
343
- encoding: UTF-8
344
- string: '{"errors":["xml not implemented"]}'
345
- http_version: '1.1'
346
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
347
- - request:
348
- method: get
349
- uri: https://publish.twitter.com/oembed?url=https%3A%2F%2Fwww.twitter.com%2Fbpoweski%2Fstatus%2F71633762&format=xml
350
- body:
351
- encoding: US-ASCII
352
- string: ''
353
- headers:
354
- Accept-Encoding:
355
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
356
- User-Agent:
357
- - Mozilla/5.0 (compatible; ruby-oembed/0.10.0)
358
- response:
359
- status:
360
- code: 400
361
- message: Bad Request
362
- headers:
363
- Content-Disposition:
364
- - attachment; filename=json.json
365
- Content-Length:
366
- - '60'
367
- Content-Type:
368
- - application/json; charset=utf-8
369
- Date:
370
- - Sun, 22 May 2016 05:28:59 GMT
371
- Server:
372
- - tsa_a
373
- Set-Cookie:
374
- - guest_id=v1%3A146389493910837135; Domain=.twitter.com; Path=/; Expires=Tue,
375
- 22-May-2018 05:28:59 UTC
376
- Strict-Transport-Security:
377
- - max-age=631138519
378
- X-Connection-Hash:
379
- - 3543953c1c553fbcf1c441417b26f66d
380
- X-Content-Type-Options:
381
- - nosniff
382
- X-Frame-Options:
383
- - SAMEORIGIN
384
- X-Response-Time:
385
- - '6'
386
- X-Xss-Protection:
387
- - 1; mode=block
388
- body:
389
- encoding: UTF-8
390
- string: '{"errors":["xml not implemented"]}'
391
- http_version: '1.1'
392
- recorded_at: Sat, 28 Mar 2020 02:32:33 GMT
393
- - request:
394
- method: get
395
- uri: https://publish.twitter.com/oembed?format=json&url=https://twitter.com/RailsGirlsSoC/status/702136612822634496
396
- body:
397
- encoding: US-ASCII
398
- string: ''
399
- headers:
400
- Accept-Encoding:
401
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
402
- Accept:
403
- - "*/*"
404
- User-Agent:
405
- - Mozilla/5.0 (compatible; ruby-oembed/0.12.0)
406
- response:
407
- status:
408
- code: 200
409
- message: OK
410
- headers:
411
- Cache-Control:
412
- - must-revalidate, max-age=3153600000
413
- Content-Disposition:
414
- - attachment; filename=json.json
415
- Content-Length:
416
- - '534'
417
- Content-Type:
418
- - application/json; charset=utf-8
419
- Date:
420
- - Sat, 28 Mar 2020 02:57:13 GMT
421
- Expires:
422
- - Mon, 04 Mar 2120 02:57:13 GMT
423
- Last-Modified:
424
- - Sat, 28 Mar 2020 02:57:13 GMT
425
- Server:
426
- - tsa_b
427
- Set-Cookie:
428
- - guest_id=v1%3A158536423309272551; Max-Age=63072000; Expires=Mon, 28 Mar 2022
429
- 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
430
- - personalization_id="v1_KiUPAkKw0EcXtxGVGK/V+g=="; Max-Age=63072000; Expires=Mon,
431
- 28 Mar 2022 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
432
- Strict-Transport-Security:
433
- - max-age=631138519
434
- X-Connection-Hash:
435
- - 59bf8165569d5ff7d12803bcf8cb4a3d
436
- X-Content-Type-Options:
437
- - nosniff
438
- X-Frame-Options:
439
- - SAMEORIGIN
440
- X-Response-Time:
441
- - '13'
442
- X-Xss-Protection:
443
- - '0'
444
- body:
445
- encoding: ASCII-8BIT
446
- string: !binary |-
447
- eyJ1cmwiOiJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0NcL3N0YXR1c1wvNzAyMTM2NjEyODIyNjM0NDk2IiwiYXV0aG9yX25hbWUiOiJSYWlscyBHaXJscyBTdW1tZXIgb2YgQ29kZSIsImF1dGhvcl91cmwiOiJodHRwczpcL1wvdHdpdHRlci5jb21cL1JhaWxzR2lybHNTb0MiLCJodG1sIjoiXHUwMDNDYmxvY2txdW90ZSBjbGFzcz1cInR3aXR0ZXItdHdlZXRcIlx1MDAzRVx1MDAzQ3AgbGFuZz1cImVuXCIgZGlyPVwibHRyXCJcdTAwM0VPdXIgMjAxNiBmdW5kcmFpc2luZyBjYW1wYWlnbiBpcyBub3cgb3BlbiEhIExldOKAmXMgbWFrZSBhbm90aGVyIGFtYXppbmcgc3VtbWVyIGhhcHBlbiHinKhcdUQ4M0RcdURDOUNcdUQ4M0RcdURDQUFcdUQ4M0RcdURDOUHinKhcdUQ4M0RcdURDNDkgXHUwMDNDYSBocmVmPVwiaHR0cHM6XC9cL3QuY29cL1I4SmczNnhhUXhcIlx1MDAzRWh0dHBzOlwvXC90LmNvXC9SOEpnMzZ4YVF4XHUwMDNDXC9hXHUwMDNFIFx1MDAzQ2EgaHJlZj1cImh0dHBzOlwvXC90LmNvXC9tSXdLUjBmekdSXCJcdTAwM0VwaWMudHdpdHRlci5jb21cL21Jd0tSMGZ6R1JcdTAwM0NcL2FcdTAwM0VcdTAwM0NcL3BcdTAwM0UmbWRhc2g7IFJhaWxzIEdpcmxzIFN1bW1lciBvZiBDb2RlIChAUmFpbHNHaXJsc1NvQykgXHUwMDNDYSBocmVmPVwiaHR0cHM6XC9cL3R3aXR0ZXIuY29tXC9SYWlsc0dpcmxzU29DXC9zdGF0dXNcLzcwMjEzNjYxMjgyMjYzNDQ5Nj9yZWZfc3JjPXR3c3JjJTVFdGZ3XCJcdTAwM0VGZWJydWFyeSAyMywgMjAxNlx1MDAzQ1wvYVx1MDAzRVx1MDAzQ1wvYmxvY2txdW90ZVx1MDAzRVxuXHUwMDNDc2NyaXB0IGFzeW5jIHNyYz1cImh0dHBzOlwvXC9wbGF0Zm9ybS50d2l0dGVyLmNvbVwvd2lkZ2V0cy5qc1wiIGNoYXJzZXQ9XCJ1dGYtOFwiXHUwMDNFXHUwMDNDXC9zY3JpcHRcdTAwM0VcbiIsIndpZHRoIjo1NTAsImhlaWdodCI6bnVsbCwidHlwZSI6InJpY2giLCJjYWNoZV9hZ2UiOiIzMTUzNjAwMDAwIiwicHJvdmlkZXJfbmFtZSI6IlR3aXR0ZXIiLCJwcm92aWRlcl91cmwiOiJodHRwczpcL1wvdHdpdHRlci5jb20iLCJ2ZXJzaW9uIjoiMS4wIn0=
448
- http_version: null
449
- recorded_at: Sat, 28 Mar 2020 02:57:13 GMT
450
- - request:
451
- method: get
452
- uri: https://publish.twitter.com/oembed?format=json&url=https://www.twitter.com/bpoweski/status/71633762
453
- body:
454
- encoding: US-ASCII
455
- string: ''
456
- headers:
457
- Accept-Encoding:
458
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
459
- Accept:
460
- - "*/*"
461
- User-Agent:
462
- - Mozilla/5.0 (compatible; ruby-oembed/0.12.0)
463
- response:
464
- status:
465
- code: 200
466
- message: OK
467
- headers:
468
- Cache-Control:
469
- - must-revalidate, max-age=3153600000
470
- Content-Disposition:
471
- - attachment; filename=json.json
472
- Content-Length:
473
- - '390'
474
- Content-Type:
475
- - application/json; charset=utf-8
476
- Date:
477
- - Sat, 28 Mar 2020 02:57:13 GMT
478
- Expires:
479
- - Mon, 04 Mar 2120 02:57:13 GMT
480
- Last-Modified:
481
- - Sat, 28 Mar 2020 02:57:13 GMT
482
- Server:
483
- - tsa_b
484
- Set-Cookie:
485
- - guest_id=v1%3A158536423333913733; Max-Age=63072000; Expires=Mon, 28 Mar 2022
486
- 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
487
- - personalization_id="v1_IZHXNs49gzXyq6HVztwoIA=="; Max-Age=63072000; Expires=Mon,
488
- 28 Mar 2022 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
489
- Strict-Transport-Security:
490
- - max-age=631138519
491
- X-Connection-Hash:
492
- - c8cde87a8443acca9f0c0d47bc2aca11
493
- X-Content-Type-Options:
494
- - nosniff
495
- X-Frame-Options:
496
- - SAMEORIGIN
497
- X-Response-Time:
498
- - '17'
499
- X-Xss-Protection:
500
- - '0'
501
- body:
502
- encoding: ASCII-8BIT
503
- string: '{"url":"https:\/\/twitter.com\/bpoweski\/status\/71633762","author_name":"Ben
504
- Poweski","author_url":"https:\/\/twitter.com\/bpoweski","html":"\u003Cblockquote
505
- class=\"twitter-tweet\"\u003E\u003Cp lang=\"en\" dir=\"ltr\"\u003Eworking
506
- on my Ruby Security book\u003C\/p\u003E&mdash; Ben Poweski (@bpoweski) \u003Ca
507
- href=\"https:\/\/twitter.com\/bpoweski\/status\/71633762?ref_src=twsrc%5Etfw\"\u003EMay
508
- 20, 2007\u003C\/a\u003E\u003C\/blockquote\u003E\n\u003Cscript async src=\"https:\/\/platform.twitter.com\/widgets.js\"
509
- charset=\"utf-8\"\u003E\u003C\/script\u003E\n","width":550,"height":null,"type":"rich","cache_age":"3153600000","provider_name":"Twitter","provider_url":"https:\/\/twitter.com","version":"1.0"}'
510
- http_version: null
511
- recorded_at: Sat, 28 Mar 2020 02:57:13 GMT
512
- - request:
513
- method: get
514
- uri: https://publish.twitter.com/oembed?format=xml&url=https://twitter.com/RailsGirlsSoC/status/702136612822634496
515
- body:
516
- encoding: US-ASCII
517
- string: ''
518
- headers:
519
- Accept-Encoding:
520
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
521
- Accept:
522
- - "*/*"
523
- User-Agent:
524
- - Mozilla/5.0 (compatible; ruby-oembed/0.12.0)
525
- response:
526
- status:
527
- code: 400
528
- message: Bad Request
529
- headers:
530
- Content-Disposition:
531
- - attachment; filename=json.json
532
- Content-Length:
533
- - '82'
534
- Content-Type:
535
- - application/json; charset=utf-8
536
- Date:
537
- - Sat, 28 Mar 2020 02:57:13 GMT
538
- Server:
539
- - tsa_b
540
- Set-Cookie:
541
- - guest_id=v1%3A158536423357150992; Max-Age=63072000; Expires=Mon, 28 Mar 2022
542
- 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
543
- - personalization_id="v1_1iBNx2XMQpbCzil5XE4fYA=="; Max-Age=63072000; Expires=Mon,
544
- 28 Mar 2022 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
545
- Strict-Transport-Security:
546
- - max-age=631138519
547
- X-Connection-Hash:
548
- - 8ebc794f0b8d456857bd216adbc36041
549
- X-Content-Type-Options:
550
- - nosniff
551
- X-Frame-Options:
552
- - SAMEORIGIN
553
- X-Response-Time:
554
- - '5'
555
- X-Xss-Protection:
556
- - '0'
557
- body:
558
- encoding: ASCII-8BIT
559
- string: '{"errors":[{"code":356,"message":"xml not implemented"}]}'
560
- http_version: null
561
- recorded_at: Sat, 28 Mar 2020 02:57:13 GMT
562
- - request:
563
- method: get
564
- uri: https://publish.twitter.com/oembed?format=xml&url=https://www.twitter.com/bpoweski/status/71633762
565
- body:
566
- encoding: US-ASCII
567
- string: ''
568
- headers:
569
- Accept-Encoding:
570
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
571
- Accept:
572
- - "*/*"
573
- User-Agent:
574
- - Mozilla/5.0 (compatible; ruby-oembed/0.12.0)
575
- response:
576
- status:
577
- code: 400
578
- message: Bad Request
579
- headers:
580
- Content-Disposition:
581
- - attachment; filename=json.json
582
- Content-Length:
583
- - '82'
584
- Content-Type:
585
- - application/json; charset=utf-8
586
- Date:
587
- - Sat, 28 Mar 2020 02:57:13 GMT
588
- Server:
589
- - tsa_b
590
- Set-Cookie:
591
- - guest_id=v1%3A158536423380340030; Max-Age=63072000; Expires=Mon, 28 Mar 2022
592
- 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
593
- - personalization_id="v1_2BcqqmIDYZ4fd9wqkZG0lg=="; Max-Age=63072000; Expires=Mon,
594
- 28 Mar 2022 02:57:13 GMT; Path=/; Domain=.twitter.com; Secure; SameSite=None
595
- Strict-Transport-Security:
596
- - max-age=631138519
597
- X-Connection-Hash:
598
- - 7adc752de391db7dc78aaf4c394223fd
599
- X-Content-Type-Options:
600
- - nosniff
601
- X-Frame-Options:
602
- - SAMEORIGIN
603
- X-Response-Time:
604
- - '5'
605
- X-Xss-Protection:
606
- - '0'
607
- body:
608
- encoding: ASCII-8BIT
609
- string: '{"errors":[{"code":356,"message":"xml not implemented"}]}'
610
- http_version: null
611
- recorded_at: Sat, 28 Mar 2020 02:57:13 GMT
612
- recorded_with: VCR 5.1.0
@@ -1,94 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- class WorkingDuck
4
- # The WorkingDuck Class should work as a Backend
5
- class << self
6
- # Fakes a correct deocde response
7
- def decode(value)
8
- {"version"=>1.0, "string"=>"test", "int"=>42, "html"=>"<i>Cool's</i>\n the \"word\"!",}
9
- end
10
- def parse_error; RuntimeError; end
11
- end
12
-
13
- # A WorkingDuck instance should work as a Backend
14
- def decode(value)
15
- self.class.decode(value)
16
- end
17
- def parse_error; RuntimeError; end
18
- end
19
-
20
- class FailingDuckDecode
21
- # Fakes an incorrect decode response
22
- def decode(value)
23
- {}
24
- end
25
- def parse_error; RuntimeError; end
26
- end
27
-
28
- describe "OEmbed::Formatter::JSON::Backends::DuckType" do
29
- include OEmbedSpecHelper
30
-
31
- it "should work with WorkingDuck Class" do
32
- expect {
33
- OEmbed::Formatter::JSON.backend = WorkingDuck
34
- }.not_to raise_error
35
- expect(OEmbed::Formatter::JSON.backend).to be WorkingDuck
36
- end
37
-
38
- it "should work with a WorkingDuck instance" do
39
- instance = WorkingDuck.new
40
- expect {
41
- OEmbed::Formatter::JSON.backend = instance
42
- }.to_not raise_error
43
- expect(OEmbed::Formatter::JSON.backend).to be instance
44
- end
45
-
46
- it "should fail with FailingDuckDecode Class" do
47
- expect {
48
- OEmbed::Formatter::JSON.backend = FailingDuckDecode
49
- }.to raise_error(LoadError)
50
- expect(OEmbed::Formatter::JSON.backend).to_not be(FailingDuckDecode)
51
- end
52
-
53
- it "should fail with a FailingDuckDecode instance" do
54
- instance = FailingDuckDecode.new
55
- expect {
56
- OEmbed::Formatter::JSON.backend = instance
57
- }.to raise_error(LoadError)
58
- expect(OEmbed::Formatter::JSON.backend).to_not be(instance)
59
- end
60
- end
61
-
62
- describe "OEmbed::Formatter::XML::Backends::DuckType" do
63
- include OEmbedSpecHelper
64
-
65
- it "should work with WorkingDuck Class" do
66
- expect {
67
- OEmbed::Formatter::XML.backend = WorkingDuck
68
- }.to_not raise_error
69
- expect(OEmbed::Formatter::XML.backend).to be(WorkingDuck)
70
- end
71
-
72
- it "should work with a WorkingDuck instance" do
73
- instance = WorkingDuck.new
74
- expect {
75
- OEmbed::Formatter::XML.backend = instance
76
- }.to_not raise_error
77
- expect(OEmbed::Formatter::XML.backend).to be(instance)
78
- end
79
-
80
- it "should fail with FailingDuckDecode Class" do
81
- expect {
82
- OEmbed::Formatter::XML.backend = FailingDuckDecode
83
- }.to raise_error(LoadError)
84
- expect(OEmbed::Formatter::XML.backend).to_not be(FailingDuckDecode)
85
- end
86
-
87
- it "should fail with a FailingDuckDecode instance" do
88
- instance = FailingDuckDecode.new
89
- expect {
90
- OEmbed::Formatter::XML.backend = instance
91
- }.to raise_error(LoadError)
92
- expect(OEmbed::Formatter::XML.backend).to_not be(instance)
93
- end
94
- end