ruby-oembed 0.8.3 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +3 -0
- data/CHANGELOG.rdoc +11 -2
- data/Gemfile +3 -0
- data/Gemfile.lock +6 -0
- data/README.rdoc +2 -12
- data/lib/oembed/formatter/json/backends/yaml.rb +1 -1
- data/lib/oembed/formatter/xml/backends/nokogiri.rb +41 -0
- data/lib/oembed/formatter/xml/backends/xmlsimple.rb +1 -1
- data/lib/oembed/provider.rb +1 -1
- data/lib/oembed/provider_discovery.rb +8 -6
- data/lib/oembed/providers/embedly_urls.yml +49 -6
- data/lib/oembed/providers.rb +8 -1
- data/lib/oembed/version.rb +1 -1
- data/ruby-oembed.gemspec +23 -9
- data/spec/cassettes/OEmbed_ProviderDiscovery.yml +4058 -0
- data/spec/formatter/xml/nokogiri_backend_spec.rb +58 -0
- data/spec/provider_discovery_spec.rb +116 -0
- data/spec/provider_spec.rb +2 -1
- data/spec/spec_helper.rb +3 -2
- metadata +106 -100
data/.travis.yml
ADDED
data/CHANGELOG.rdoc
CHANGED
@@ -1,16 +1,25 @@
|
|
1
1
|
= CHANGELOG
|
2
2
|
|
3
|
+
== 0.8.5 - 14 November 2011
|
4
|
+
|
5
|
+
* Fixed problems ProviderDiscovery and some xml endpoints. Also added much better test coverage. (Marcos Wright Kuhns)
|
6
|
+
* Added support for XML parsing using {Nokogiri}[http://nokogiri.org/] (Marcos Wright Kuhns)
|
7
|
+
* Added built-in providers for MLG.TV (Matt Wilson)
|
8
|
+
* Added https support to the built-in YouTube provider (Marcos Wright Kuhns)
|
9
|
+
* Updated the list of {Embedly}[http://embed.ly] URL schemes. (Marcos Wright Kuhns)
|
10
|
+
|
3
11
|
== 0.8.3 - 26 June 2011
|
4
12
|
|
5
13
|
* Fixing a circular dependency introduced during my recent Jeweler upgrade. (Marcos Wright Kuhns)
|
6
14
|
|
7
15
|
== 0.8.2 - 25 June 2011
|
8
16
|
|
9
|
-
* Added built-in providers for Instagram, Slideshare and Yfrog
|
17
|
+
* Added built-in providers for Instagram, Slideshare and Yfrog (Florian Günther)
|
10
18
|
* Improved support (and error detection) for custom OEmbed::Formatter backends. (Marcos Wright Kuhns)
|
11
19
|
* DRYed up OEmbed::Formatter::JSON and XML methods into OEmbed::Formatter::Base (Marcos Wright Kuhns)
|
12
20
|
* More consistently raise an OEmbed::Parse error if there is any sort of problem parsing the server response, whether it's an expected error type or not. (Marcos Wright Kuhns)
|
13
|
-
* Added in-code comments about the
|
21
|
+
* Added in-code comments about the {OohEmbed}[http://oohembed.com] service becoming part of {Embedly}[http://embed.ly] (Marcos Wright Kuhns)
|
22
|
+
* Updated the list of {Embedly}[http://embed.ly] URL schemes. (Marcos Wright Kuhns)
|
14
23
|
|
15
24
|
== 0.8.1 - 27 February 2011
|
16
25
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,12 +2,14 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
diff-lcs (1.1.2)
|
5
|
+
fakeweb (1.3.0)
|
5
6
|
git (1.2.5)
|
6
7
|
jeweler (1.6.2)
|
7
8
|
bundler (~> 1.0)
|
8
9
|
git (>= 1.2.5)
|
9
10
|
rake
|
10
11
|
json (1.5.3)
|
12
|
+
nokogiri (1.5.0)
|
11
13
|
rake (0.9.2)
|
12
14
|
rspec (2.6.0)
|
13
15
|
rspec-core (~> 2.6.0)
|
@@ -17,14 +19,18 @@ GEM
|
|
17
19
|
rspec-expectations (2.6.0)
|
18
20
|
diff-lcs (~> 1.1.2)
|
19
21
|
rspec-mocks (2.6.0)
|
22
|
+
vcr (1.11.3)
|
20
23
|
xml-simple (1.1.0)
|
21
24
|
|
22
25
|
PLATFORMS
|
23
26
|
ruby
|
24
27
|
|
25
28
|
DEPENDENCIES
|
29
|
+
fakeweb
|
26
30
|
jeweler
|
27
31
|
json
|
32
|
+
nokogiri
|
28
33
|
rake
|
29
34
|
rspec (>= 2.0)
|
35
|
+
vcr (~> 1.0)
|
30
36
|
xml-simple
|
data/README.rdoc
CHANGED
@@ -68,7 +68,7 @@ Code for the ruby-oembed library is {hosted on GitHub}[https://github.com/judofy
|
|
68
68
|
gem install bundler
|
69
69
|
bundle install
|
70
70
|
# Run the tests.
|
71
|
-
rake
|
71
|
+
bundle exec rake
|
72
72
|
|
73
73
|
If you encounter any bug, feel free to {create an Issue}[https://github.com/judofyr/ruby-oembed/issues].
|
74
74
|
|
@@ -78,17 +78,7 @@ We do our best to {keep our tests green}[http://travis-ci.org/metavida/ruby-oemb
|
|
78
78
|
|
79
79
|
= Contributors
|
80
80
|
|
81
|
-
Thanks to
|
82
|
-
|
83
|
-
* {Aris Bartee}[https://github.com/arisbartee]
|
84
|
-
* {Todd Fisher}[https://github.com/taf2]
|
85
|
-
* {Hans de Graff}[https://github.com/graaff]
|
86
|
-
* {Magnus Holm}[https://github.com/judofyr] (original author of this library)
|
87
|
-
* {Alex Kessinger}[https://github.com/voidfiles]
|
88
|
-
* {Ryan Richards}[https://github.com/rrichards]
|
89
|
-
* {Colin Shea}[https://github.com/evaryont]
|
90
|
-
* {Kyle Slattery}[https://github.com/kyleslattery]
|
91
|
-
* {Marcos Wright-Kuhns}[https://github.com/metavida] (current maintainer)
|
81
|
+
Thanks to {all who have made contributions}[https://github.com/judofyr/ruby-oembed/contributors] to this gem, both large and small.
|
92
82
|
|
93
83
|
= License
|
94
84
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Only allow this backend the nokogiri gem is already loaded
|
2
|
+
raise ::LoadError, "The nokogiri library isn't available. require 'nokogiri'" unless defined?(Nokogiri)
|
3
|
+
|
4
|
+
module OEmbed
|
5
|
+
module Formatter
|
6
|
+
module XML
|
7
|
+
module Backends
|
8
|
+
# Use the nokogiri gem to parse XML values.
|
9
|
+
module Nokogiri
|
10
|
+
extend self
|
11
|
+
|
12
|
+
# Parses an XML string or IO and convert it into an object.
|
13
|
+
def decode(xml)
|
14
|
+
obj = {}
|
15
|
+
doc = ::Nokogiri::XML(xml) { |config| config.strict }
|
16
|
+
doc.root.elements.each do |el|
|
17
|
+
obj[el.name] = el.text
|
18
|
+
end
|
19
|
+
obj
|
20
|
+
rescue
|
21
|
+
case $!
|
22
|
+
when parse_error
|
23
|
+
raise $!
|
24
|
+
else
|
25
|
+
raise parse_error, "Couldn't parse the given document."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def decode_fail_msg
|
30
|
+
"The version of the nokogiri library you have installed isn't parsing XML like ruby-oembed expected."
|
31
|
+
end
|
32
|
+
|
33
|
+
def parse_error
|
34
|
+
::Nokogiri::XML::SyntaxError
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/oembed/provider.rb
CHANGED
@@ -140,7 +140,7 @@ module OEmbed
|
|
140
140
|
raise OEmbed::UnknownFormat, format
|
141
141
|
when Net::HTTPNotFound
|
142
142
|
raise OEmbed::NotFound, url
|
143
|
-
when Net::
|
143
|
+
when Net::HTTPSuccess
|
144
144
|
res.body
|
145
145
|
else
|
146
146
|
raise OEmbed::UnknownResponse, res && res.respond_to?(:code) ? res.code : 'Error'
|
@@ -34,22 +34,24 @@ module OEmbed
|
|
34
34
|
case res
|
35
35
|
when Net::HTTPNotFound
|
36
36
|
raise OEmbed::NotFound, url
|
37
|
-
when Net::
|
37
|
+
when Net::HTTPSuccess
|
38
38
|
format = options[:format]
|
39
39
|
|
40
40
|
if format.nil? || format == :json
|
41
|
-
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*application\/json\+oembed.*>/.match(res.body)
|
42
|
-
provider_endpoint ||= /<link.*application\/json\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res.body)
|
41
|
+
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*application\/json\+oembed.*>/.match(res.body)[1] rescue nil
|
42
|
+
provider_endpoint ||= /<link.*application\/json\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res.body)[1] rescue nil
|
43
43
|
format ||= :json if provider_endpoint
|
44
44
|
end
|
45
45
|
if format.nil? || format == :xml
|
46
|
-
|
47
|
-
|
46
|
+
# {The specification}[http://oembed.com/#section4] says XML discovery should have
|
47
|
+
# type="text/xml+oembed" but some providers use type="application/xml+oembed"
|
48
|
+
provider_endpoint ||= /<link.*href=['"]*([^\s'"]+)['"]*.*(application|text)\/xml\+oembed.*>/.match(res.body)[1] rescue nil
|
49
|
+
provider_endpoint ||= /<link.*(application|text)\/xml\+oembed.*href=['"]*([^\s'"]+)['"]*.*>/.match(res.body)[2] rescue nil
|
48
50
|
format ||= :xml if provider_endpoint
|
49
51
|
end
|
50
52
|
|
51
53
|
begin
|
52
|
-
provider_endpoint = URI.parse(provider_endpoint
|
54
|
+
provider_endpoint = URI.parse(provider_endpoint)
|
53
55
|
provider_endpoint.query = nil
|
54
56
|
provider_endpoint = provider_endpoint.to_s
|
55
57
|
rescue URI::Error
|
@@ -1,4 +1,4 @@
|
|
1
|
-
---
|
1
|
+
---
|
2
2
|
- http://*.bandcamp.com/
|
3
3
|
- http://*.bandcamp.com/album/*
|
4
4
|
- http://*.bandcamp.com/track/*
|
@@ -45,22 +45,27 @@
|
|
45
45
|
- http://*crackle.com/c/*
|
46
46
|
- http://*dribbble.com/shots/*
|
47
47
|
- http://*imgur.com/*
|
48
|
-
- http://*justin.tv/*
|
49
48
|
- http://*justin.tv/*/b/*
|
50
49
|
- http://*justin.tv/*/w/*
|
51
50
|
- http://*meetup.com/*
|
52
51
|
- http://*nfb.ca/film/*
|
53
52
|
- http://*revision3.com/*
|
54
53
|
- http://*revver.com/video/*
|
54
|
+
- http://*twitch.tv/*
|
55
|
+
- http://*twitch.tv/*
|
56
|
+
- http://*twitch.tv/*/b/*
|
55
57
|
- http://*twitvid.com/*
|
56
58
|
- http://*viddler.com/explore/*/videos/*
|
57
59
|
- http://*yfrog.*/*
|
58
60
|
- http://*youtube.com/watch*
|
59
61
|
- http://23hq.com/*/photo/*
|
62
|
+
- http://4sq.com/*
|
60
63
|
- http://99dollarmusicvideos.com/*/episode/*
|
61
64
|
- http://99dollarmusicvideos.com/episode/*
|
62
65
|
- http://abcnews.com/*/video/*
|
63
66
|
- http://abcnews.com/video/playerIndex*
|
67
|
+
- http://abcnews.go.com/*/video/*
|
68
|
+
- http://abcnews.go.com/video/playerIndex*
|
64
69
|
- http://achewood.com/*
|
65
70
|
- http://achewood.com/index.php*
|
66
71
|
- http://amzn.com/*
|
@@ -84,10 +89,12 @@
|
|
84
89
|
- http://blip.tv/*/*
|
85
90
|
- http://bnter.com/convo/*
|
86
91
|
- http://boo.fm/b*
|
92
|
+
- http://boston.com/*video*
|
87
93
|
- http://boston.com/video*
|
88
94
|
- http://brainbird.net/notice/*
|
89
95
|
- http://bravotv.com/*/*/videos/*
|
90
96
|
- http://brizzly.com/pic/*
|
97
|
+
- http://canalplus.fr/*
|
91
98
|
- http://cbsnews.com/video/watch/*
|
92
99
|
- http://channelfrederator.com/*/episode/*
|
93
100
|
- http://channelfrederator.com/episode/*
|
@@ -125,6 +132,7 @@
|
|
125
132
|
- http://formspring.me/*
|
126
133
|
- http://formspring.me/*/q/*
|
127
134
|
- http://fotopedia.com/*/*
|
135
|
+
- http://foursquare.com/*
|
128
136
|
- http://freemusicarchive.org/curator/*
|
129
137
|
- http://freemusicarchive.org/music/*
|
130
138
|
- http://funnyordie.com/m/*
|
@@ -136,6 +144,7 @@
|
|
136
144
|
- http://google.com/buzz/*
|
137
145
|
- http://google.com/buzz/*/*/*
|
138
146
|
- http://google.com/profiles/*
|
147
|
+
- http://graphicly.com/*/*/*
|
139
148
|
- http://grindtv.com/*/video/*
|
140
149
|
- http://grooveshark.com/*
|
141
150
|
- http://guardian.co.uk/*/video/*/*/*/*
|
@@ -159,6 +168,9 @@
|
|
159
168
|
- http://instagram.com/p/*
|
160
169
|
- http://investigation.discovery.com/videos/*
|
161
170
|
- http://issuu.com/*/docs/*
|
171
|
+
- http://itunes.apple.com/*
|
172
|
+
- http://lightbox.com/*
|
173
|
+
- http://link.brightcove.com/services/player/bcpid*
|
162
174
|
- http://liveleak.com/view?*
|
163
175
|
- http://lockerz.com/s/*
|
164
176
|
- http://logotv.com/video/*
|
@@ -170,20 +182,21 @@
|
|
170
182
|
- http://maps.google.com/maps?*
|
171
183
|
- http://meadd.com/*
|
172
184
|
- http://meadd.com/*/*
|
185
|
+
- http://media.photobucket.com/image/*
|
173
186
|
- http://mediamatters.org/mmtv/*
|
174
187
|
- http://meetu.ps/*
|
175
188
|
- http://military.discovery.com/videos/*
|
176
189
|
- http://mixergy.com/*
|
177
190
|
- http://mlkshk.com/p/*
|
178
191
|
- http://mobile.twitter.com/*/status/*
|
192
|
+
- http://mobile.twitter.com/*/status/*/photo/*
|
179
193
|
- http://mobile.twitter.com/*/statuses/*
|
194
|
+
- http://mobile.twitter.com/*/statuses/*/photo/*
|
180
195
|
- http://moby.to/*
|
181
196
|
- http://money.cnn.com/video/*
|
182
197
|
- http://movies.yahoo.com/movie/*/trailer
|
183
198
|
- http://movies.yahoo.com/movie/*/video
|
184
199
|
- http://movies.yahoo.com/movie/*/video/*
|
185
|
-
- http://msn.foxsports.com/video*
|
186
|
-
- http://multimedia.foxsports.com/m/video/*/*
|
187
200
|
- http://my.opera.com/*/albums/show.dml?id=*
|
188
201
|
- http://my.opera.com/*/albums/showpic.dml?album=*&picture=*
|
189
202
|
- http://myloc.me/*
|
@@ -194,6 +207,7 @@
|
|
194
207
|
- http://phodroid.com/*/*/*
|
195
208
|
- http://photozou.jp/photo/photo_only/*/*
|
196
209
|
- http://photozou.jp/photo/show/*/*
|
210
|
+
- http://pic.twitter.com/*
|
197
211
|
- http://picasaweb.google.com*/*/*
|
198
212
|
- http://picasaweb.google.com*/*/*#*
|
199
213
|
- http://picasaweb.google.com*/lh/photo/*
|
@@ -201,6 +215,7 @@
|
|
201
215
|
- http://pics.brizzly.com/*.jpg
|
202
216
|
- http://pikchur.com/*
|
203
217
|
- http://ping.fm/p/*
|
218
|
+
- http://pixorial.com/watch/*
|
204
219
|
- http://planetgreen.discovery.com/videos/*
|
205
220
|
- http://polldaddy.com/community/poll/*
|
206
221
|
- http://polldaddy.com/poll/*
|
@@ -244,6 +259,7 @@
|
|
244
259
|
- http://soundcloud.com/*/sets/*
|
245
260
|
- http://soundcloud.com/groups/*
|
246
261
|
- http://speakerdeck.com/u/*/p/*
|
262
|
+
- http://sports.yahoo.com/video/*
|
247
263
|
- http://statsheet.com/*/teams/*/*
|
248
264
|
- http://statsheet.com/statplot/charts/*/*/*/*
|
249
265
|
- http://statsheet.com/statplot/charts/e/*
|
@@ -252,6 +268,7 @@
|
|
252
268
|
- http://streetfire.net/video/*.htm*
|
253
269
|
- http://teachertube.com/viewVideo.php*
|
254
270
|
- http://techcrunch.tv/*/watch*
|
271
|
+
- http://techcrunch.tv/show/*/*
|
255
272
|
- http://techcrunch.tv/watch*
|
256
273
|
- http://theonion.com/video/*
|
257
274
|
- http://threadbanger.com/*/episode/*
|
@@ -276,7 +293,9 @@
|
|
276
293
|
- http://twitpic.com/photos/*
|
277
294
|
- http://twitrpix.com/*
|
278
295
|
- http://twitter.com/*/status/*
|
296
|
+
- http://twitter.com/*/status/*/photo/*
|
279
297
|
- http://twitter.com/*/statuses/*
|
298
|
+
- http://twitter.com/*/statuses/*/photo
|
280
299
|
- http://ultrakawaii.com/*/episode/*
|
281
300
|
- http://ultrakawaii.com/episode/*
|
282
301
|
- http://v.youku.com/v_playlist/*.html
|
@@ -299,6 +318,7 @@
|
|
299
318
|
- http://washingtonpost.com/wp-dyn/*/video/*/*/*/*
|
300
319
|
- http://wh.gov/photos-and-video/video/*
|
301
320
|
- http://wh.gov/video/*
|
321
|
+
- http://wirewax.com/*
|
302
322
|
- http://wordpress.tv/*/*/*/*/
|
303
323
|
- http://worldstarhiphop.com/videos/video*.php?v=*
|
304
324
|
- http://www.23hq.com/*/photo/*
|
@@ -317,9 +337,11 @@
|
|
317
337
|
- http://www.barelydigital.com/episode/*
|
318
338
|
- http://www.barelypolitical.com/*/episode/*
|
319
339
|
- http://www.barelypolitical.com/episode/*
|
340
|
+
- http://www.boston.com/*video*
|
320
341
|
- http://www.boston.com/video*
|
321
342
|
- http://www.bravotv.com/*/*/videos/*
|
322
343
|
- http://www.break.com/*/*
|
344
|
+
- http://www.canalplus.fr/*
|
323
345
|
- http://www.channelfrederator.com/*/episode/*
|
324
346
|
- http://www.channelfrederator.com/episode/*
|
325
347
|
- http://www.clikthrough.com/theater/video/*
|
@@ -346,6 +368,7 @@
|
|
346
368
|
- http://www.formspring.me/*
|
347
369
|
- http://www.formspring.me/*/q/*
|
348
370
|
- http://www.fotopedia.com/*/*
|
371
|
+
- http://www.foursquare.com/*
|
349
372
|
- http://www.freemusicarchive.org/curator/*
|
350
373
|
- http://www.freemusicarchive.org/music/*
|
351
374
|
- http://www.funnyordie.com/m/*
|
@@ -363,6 +386,7 @@
|
|
363
386
|
- http://www.guardian.co.uk/*/video/*/*/*/*
|
364
387
|
- http://www.hark.com/clips/*
|
365
388
|
- http://www.howcast.com/videos/*
|
389
|
+
- http://www.hulu.com/embed/*
|
366
390
|
- http://www.hulu.com/w/*
|
367
391
|
- http://www.hulu.com/watch*
|
368
392
|
- http://www.hungrynation.tv/*/episode/*
|
@@ -381,6 +405,7 @@
|
|
381
405
|
- http://www.last.fm/music/*/_/*
|
382
406
|
- http://www.last.fm/music/+images/*
|
383
407
|
- http://www.last.fm/music/+videos/*
|
408
|
+
- http://www.lightbox.com/*
|
384
409
|
- http://www.liveleak.com/view?*
|
385
410
|
- http://www.livestream.com/*
|
386
411
|
- http://www.logotv.com/video/*
|
@@ -393,8 +418,8 @@
|
|
393
418
|
- http://www.meinvz.net/l/*
|
394
419
|
- http://www.metacafe.com/w/*
|
395
420
|
- http://www.metacafe.com/watch/*
|
396
|
-
- http://www.metacdn.com/
|
397
|
-
- http://www.metacdn.com/
|
421
|
+
- http://www.metacdn.com/r/c/*/*
|
422
|
+
- http://www.metacdn.com/r/m/*/*
|
398
423
|
- http://www.mixcloud.com/*/*/
|
399
424
|
- http://www.mobypicture.com/user/*/view/*
|
400
425
|
- http://www.msnbc.msn.com/id/*/ns/*
|
@@ -408,6 +433,7 @@
|
|
408
433
|
- http://www.nzonscreen.com/title/*
|
409
434
|
- http://www.overstream.net/view.php?oid=*
|
410
435
|
- http://www.pastie.org/*
|
436
|
+
- http://www.pixorial.com/watch/*
|
411
437
|
- http://www.polleverywhere.com/free_text_polls/*
|
412
438
|
- http://www.polleverywhere.com/multiple_choice_polls/*
|
413
439
|
- http://www.polleverywhere.com/polls/*
|
@@ -489,11 +515,14 @@
|
|
489
515
|
- http://www.twitpic.com/photos/*
|
490
516
|
- http://www.twitter.com/*/status/*
|
491
517
|
- http://www.twitter.com/*/statuses/*
|
518
|
+
- http://www.twitter.com/*/statuses/*/photo/*
|
492
519
|
- http://www.ultrakawaii.com/*/episode/*
|
493
520
|
- http://www.ultrakawaii.com/episode/*
|
494
521
|
- http://www.ustream.tv/*
|
495
522
|
- http://www.ustream.tv/channel/*
|
496
523
|
- http://www.ustream.tv/recorded/*
|
524
|
+
- http://www.vevo.com/video/*
|
525
|
+
- http://www.vevo.com/watch/*
|
497
526
|
- http://www.vimeo.com/*
|
498
527
|
- http://www.vimeo.com/groups/*/videos/*
|
499
528
|
- http://www.vodcars.com/*/episode/*
|
@@ -506,6 +535,7 @@
|
|
506
535
|
- http://www.whosay.com/videos/*
|
507
536
|
- http://www.wikimedia.org/wiki/File*
|
508
537
|
- http://www.wikipedia.org/wiki/*
|
538
|
+
- http://www.wirewax.com/*
|
509
539
|
- http://www.worldstarhiphop.com/videos/video*.php?v=*
|
510
540
|
- http://www.xiami.com/song/*
|
511
541
|
- http://www.xkcd.com/*
|
@@ -522,14 +552,27 @@
|
|
522
552
|
- https://*youtube.com/watch*
|
523
553
|
- https://app.wistia.com/embed/medias/*
|
524
554
|
- https://crocodoc.com/*
|
555
|
+
- https://foursquare.com/*
|
556
|
+
- https://ganxy.com/*
|
525
557
|
- https://img.skitch.com/*
|
558
|
+
- https://itunes.apple.com/*
|
526
559
|
- https://mobile.twitter.com/*/status/*
|
560
|
+
- https://mobile.twitter.com/*/status/*/photo/*
|
527
561
|
- https://mobile.twitter.com/*/statuses/*
|
562
|
+
- https://mobile.twitter.com/*/statuses/*/photo/*
|
528
563
|
- https://skitch.com/*/*/*
|
529
564
|
- https://twitter.com/*/status/*
|
565
|
+
- https://twitter.com/*/status/*/photo/*
|
530
566
|
- https://twitter.com/*/statuses/*
|
567
|
+
- https://twitter.com/*/statuses/*/photo/*
|
568
|
+
- https://urtak.com/clr/*
|
569
|
+
- https://urtak.com/u/*
|
531
570
|
- https://www.facebook.com/photo.php*
|
532
571
|
- https://www.facebook.com/v/*
|
533
572
|
- https://www.facebook.com/video/video.php*
|
573
|
+
- https://www.foursquare.com/*
|
574
|
+
- https://www.ganxy.com/*
|
534
575
|
- https://www.twitter.com/*/status/*
|
576
|
+
- https://www.twitter.com/*/status/*/photo/*
|
535
577
|
- https://www.twitter.com/*/statuses/*
|
578
|
+
- https://www.twitter.com/*/statuses/*/photo/*
|
data/lib/oembed/providers.rb
CHANGED
@@ -115,10 +115,12 @@ module OEmbed
|
|
115
115
|
# Provider for youtube.com
|
116
116
|
# http://apiblog.youtube.com/2009/10/oembed-support.html
|
117
117
|
# To get the iframe embed code, instead of flash-based, pass
|
118
|
-
# :
|
118
|
+
# :iframe=>1 as a query in your get request.
|
119
119
|
Youtube = OEmbed::Provider.new("http://www.youtube.com/oembed")
|
120
120
|
Youtube << "http://*.youtube.com/*"
|
121
|
+
Youtube << "https://*.youtube.com/*"
|
121
122
|
Youtube << "http://*.youtu.be/*"
|
123
|
+
Youtube << "https://*.youtu.be/*"
|
122
124
|
|
123
125
|
# Provider for flickr.com
|
124
126
|
# http://developer.yahoo.com/blogs/ydn/posts/2008/05/oembed_embeddin/
|
@@ -167,6 +169,11 @@ module OEmbed
|
|
167
169
|
Yfrog = OEmbed::Provider.new("http://www.yfrog.com/api/oembed", :json)
|
168
170
|
Yfrog << "http://yfrog.com/*"
|
169
171
|
|
172
|
+
# provider for mlg-tv
|
173
|
+
# http://tv.majorleaguegaming.com/oembed
|
174
|
+
MlgTv = OEmbed::Provider.new("http://tv.majorleaguegaming.com/oembed")
|
175
|
+
MlgTv << "http://tv.majorleaguegaming.com/video/*"
|
176
|
+
MlgTv << "http://mlg.tv/video/*"
|
170
177
|
|
171
178
|
# pownce.com closed in 2008
|
172
179
|
#Pownce = OEmbed::Provider.new("http://api.pownce.com/2.1/oembed.{format}")
|
data/lib/oembed/version.rb
CHANGED
data/ruby-oembed.gemspec
CHANGED
@@ -4,20 +4,21 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.8.
|
7
|
+
s.name = "ruby-oembed"
|
8
|
+
s.version = "0.8.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Magnus Holm", "Alex Kessinger", "Aris Bartee", "Marcos Wright Kuhns"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2011-11-15"
|
13
|
+
s.description = "An oEmbed consumer library written in Ruby, letting you easily get embeddable HTML representations of supported web pages, based on their URLs. See http://oembed.com for more information about the protocol."
|
14
|
+
s.email = "arisbartee@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".rvmrc",
|
21
|
+
".travis.yml",
|
21
22
|
".yardopts",
|
22
23
|
"CHANGELOG.rdoc",
|
23
24
|
"Gemfile",
|
@@ -36,6 +37,7 @@ Gem::Specification.new do |s|
|
|
36
37
|
"lib/oembed/formatter/json/backends/jsongem.rb",
|
37
38
|
"lib/oembed/formatter/json/backends/yaml.rb",
|
38
39
|
"lib/oembed/formatter/xml.rb",
|
40
|
+
"lib/oembed/formatter/xml/backends/nokogiri.rb",
|
39
41
|
"lib/oembed/formatter/xml/backends/rexml.rb",
|
40
42
|
"lib/oembed/formatter/xml/backends/xmlsimple.rb",
|
41
43
|
"lib/oembed/provider.rb",
|
@@ -52,24 +54,27 @@ Gem::Specification.new do |s|
|
|
52
54
|
"lib/tasks/oembed.rake",
|
53
55
|
"lib/tasks/rspec.rake",
|
54
56
|
"ruby-oembed.gemspec",
|
57
|
+
"spec/cassettes/OEmbed_ProviderDiscovery.yml",
|
55
58
|
"spec/formatter/ducktype_backend_spec.rb",
|
56
59
|
"spec/formatter/json/.DS_Store",
|
57
60
|
"spec/formatter/json/jsongem_backend_spec.rb",
|
58
61
|
"spec/formatter/json/yaml_backend_spec.rb",
|
62
|
+
"spec/formatter/xml/nokogiri_backend_spec.rb",
|
59
63
|
"spec/formatter/xml/rexml_backend_spec.rb",
|
60
64
|
"spec/formatter/xml/xmlsimple_backend_spec.rb",
|
61
65
|
"spec/formatter_spec.rb",
|
66
|
+
"spec/provider_discovery_spec.rb",
|
62
67
|
"spec/provider_spec.rb",
|
63
68
|
"spec/providers_spec.rb",
|
64
69
|
"spec/response_spec.rb",
|
65
70
|
"spec/spec_helper.rb"
|
66
71
|
]
|
67
|
-
s.homepage =
|
72
|
+
s.homepage = "http://github.com/judofyr/ruby-oembed"
|
68
73
|
s.licenses = ["MIT"]
|
69
|
-
s.rdoc_options = ["--main", "README.rdoc", "--title", "ruby-oembed-0.8.
|
74
|
+
s.rdoc_options = ["--main", "README.rdoc", "--title", "ruby-oembed-0.8.5", "--inline-source", "--exclude", "tasks", "CHANGELOG.rdoc"]
|
70
75
|
s.require_paths = ["lib"]
|
71
|
-
s.rubygems_version =
|
72
|
-
s.summary =
|
76
|
+
s.rubygems_version = "1.8.10"
|
77
|
+
s.summary = "oEmbed for Ruby"
|
73
78
|
|
74
79
|
if s.respond_to? :specification_version then
|
75
80
|
s.specification_version = 3
|
@@ -79,20 +84,29 @@ Gem::Specification.new do |s|
|
|
79
84
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
80
85
|
s.add_development_dependency(%q<json>, [">= 0"])
|
81
86
|
s.add_development_dependency(%q<xml-simple>, [">= 0"])
|
87
|
+
s.add_development_dependency(%q<nokogiri>, [">= 0"])
|
82
88
|
s.add_development_dependency(%q<rspec>, [">= 2.0"])
|
89
|
+
s.add_development_dependency(%q<vcr>, ["~> 1.0"])
|
90
|
+
s.add_development_dependency(%q<fakeweb>, [">= 0"])
|
83
91
|
else
|
84
92
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
85
93
|
s.add_dependency(%q<rake>, [">= 0"])
|
86
94
|
s.add_dependency(%q<json>, [">= 0"])
|
87
95
|
s.add_dependency(%q<xml-simple>, [">= 0"])
|
96
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
88
97
|
s.add_dependency(%q<rspec>, [">= 2.0"])
|
98
|
+
s.add_dependency(%q<vcr>, ["~> 1.0"])
|
99
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
89
100
|
end
|
90
101
|
else
|
91
102
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
92
103
|
s.add_dependency(%q<rake>, [">= 0"])
|
93
104
|
s.add_dependency(%q<json>, [">= 0"])
|
94
105
|
s.add_dependency(%q<xml-simple>, [">= 0"])
|
106
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
95
107
|
s.add_dependency(%q<rspec>, [">= 2.0"])
|
108
|
+
s.add_dependency(%q<vcr>, ["~> 1.0"])
|
109
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
96
110
|
end
|
97
111
|
end
|
98
112
|
|