ruby-oembed 0.8.7 → 0.8.8

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ /pkg
2
+ /.bundle
3
+ /rails_oembed
4
+ /doc
5
+ Gemfile.lock
6
+ .yardoc
7
+ .DS_Store
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,14 @@
1
1
  = CHANGELOG
2
2
 
3
+ == 0.8.8 - 18 November 2012
4
+
5
+ * OEmbed::Response::Photo#html now includes alt attribute; Pull #23 & #25 (François de Metz)
6
+ * Always escape the url query param when requesting a resource from a provider; Pull #26 (Michael Cohen)
7
+ * Allow query params in a provider endpoint URL; Pull #27 (Michael Andrews)
8
+ * Added built-in provider for Skitch; Pull #24 (François de Metz)
9
+ * Updated built-in Vimeo provider (Marcos Wright Kuhns)
10
+ * For developers who work on this gem, removed the dependency on jeweler (Marcos Wright Kuhns)
11
+
3
12
  == 0.8.7 - 11 March 2012
4
13
 
5
14
  * Support for https provider endpoints; Issue #16 (Marcos Wright Kuhns)
data/Gemfile CHANGED
@@ -1,12 +1,3 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
 
3
- group :development, :test do
4
- gem 'jeweler'
5
- gem 'rake'
6
- gem 'json'
7
- gem 'xml-simple'
8
- gem 'nokogiri'
9
- gem 'rspec', '>=2.0'
10
- gem 'vcr', '~> 1.0'
11
- gem 'fakeweb' # For use with vcr.
12
- end
3
+ gemspec
data/Rakefile CHANGED
@@ -1,29 +1,7 @@
1
- require File.expand_path(File.join(__FILE__, '../lib/oembed/version'))
2
-
3
1
  begin
4
- require 'jeweler'
5
-
6
- Dir[File.join(File.dirname(__FILE__), "lib/tasks/*.rake")].sort.each { |ext| load ext }
7
-
8
- Jeweler::Tasks.new do |gemspec|
9
- gemspec.name = "ruby-oembed"
10
- gemspec.version = OEmbed::Version
11
- gemspec.homepage = "http://github.com/judofyr/ruby-oembed"
12
- gemspec.summary = "oEmbed for Ruby"
13
- gemspec.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
- gemspec.license = "MIT"
15
- gemspec.email = "arisbartee@gmail.com"
16
- gemspec.authors = ["Magnus Holm","Alex Kessinger","Aris Bartee","Marcos Wright Kuhns"]
17
-
18
- gemspec.rdoc_options = %W(
19
- --main README.rdoc
20
- --title #{gemspec.full_name}
21
- --inline-source
22
- --exclude tasks
23
- CHANGELOG.rdoc
24
- )
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
2
+ require "bundler/gem_tasks"
27
3
  rescue LoadError
28
- puts "Jeweler not available. Install it with: gem install jeweler"
4
+ puts "Bundler not available. Install it with: gem install bundler"
29
5
  end
6
+
7
+ Dir[File.join(File.dirname(__FILE__), "lib/tasks/*.rake")].sort.each { |ext| load ext }
@@ -1,3 +1,4 @@
1
+ require 'cgi'
1
2
  module OEmbed
2
3
  # An OEmbed::Provider has information about an individual oEmbed enpoint.
3
4
  class Provider
@@ -94,7 +95,7 @@ module OEmbed
94
95
  def build(url, query = {})
95
96
  raise OEmbed::NotFound, url unless include?(url)
96
97
 
97
- query = query.merge({:url=>url})
98
+ query = query.merge({:url => ::CGI.escape(url)})
98
99
  # TODO: move this code exclusively into the get method, once build is private.
99
100
  this_format = (query[:format] ||= @format.to_s).to_s
100
101
 
@@ -105,7 +106,8 @@ module OEmbed
105
106
  query.delete(:format)
106
107
  end
107
108
 
108
- query = "?" + query.inject("") do |memo, (key, value)|
109
+ base = endpoint.include?('?') ? '&' : '?'
110
+ query = base + query.inject("") do |memo, (key, value)|
109
111
  "#{key}=#{value}&#{memo}"
110
112
  end.chop
111
113
 
@@ -19,6 +19,9 @@
19
19
  - http://*.dipdive.com/media/*
20
20
  - http://*.dipdive.com/v/*
21
21
  - http://*.kinomap.com/*
22
+ - http://*.linkedin.com/in/*
23
+ - http://*.linkedin.com/pub/*
24
+ - http://*.looplogic.com/*
22
25
  - http://*.posterous.com/*
23
26
  - http://*.smugmug.com/*
24
27
  - http://*.smugmug.com/*#*
@@ -28,6 +31,10 @@
28
31
  - http://*.tumblr.com/post/*
29
32
  - http://*.twitrpix.com/*
30
33
  - http://*.uservoice.com/*/suggestions/*
34
+ - http://*.vzaar.me/*
35
+ - http://*.wi.st/*
36
+ - http://*.wikipedia.org/wiki/*
37
+ - http://*.wistia.com/*
31
38
  - http://*.youtube.com/*#*/*
32
39
  - http://*.youtube.com/playlist*
33
40
  - http://*.youtube.com/profile*
@@ -55,10 +62,11 @@
55
62
  - http://*twitch.tv/*
56
63
  - http://*twitch.tv/*/b/*
57
64
  - http://*twitvid.com/*
58
- - http://*viddler.com/explore/*/videos/*
65
+ - http://*viddler.com/v/*
59
66
  - http://*yfrog.*/*
60
67
  - http://*youtube.com/watch*
61
68
  - http://23hq.com/*/photo/*
69
+ - http://360.io/*
62
70
  - http://4sq.com/*
63
71
  - http://99dollarmusicvideos.com/*/episode/*
64
72
  - http://99dollarmusicvideos.com/episode/*
@@ -72,7 +80,9 @@
72
80
  - http://aniboom.com/animation-video/*
73
81
  - http://animal.discovery.com/videos/*
74
82
  - http://animoto.com/play/*
83
+ - http://answers.polldaddy.com/poll/*
75
84
  - http://api.shopstyle.com/action/apiVisitRetailer*
85
+ - http://app.sliderocket.com/*
76
86
  - http://app.wistia.com/embed/medias/*
77
87
  - http://asofterworld.com/*.jpg
78
88
  - http://audioboo.fm/boos/*
@@ -83,6 +93,8 @@
83
93
  - http://barelydigital.com/episode/*
84
94
  - http://barelypolitical.com/*/episode/*
85
95
  - http://barelypolitical.com/episode/*
96
+ - http://behance.net/gallery/*
97
+ - http://beta-sliderocket.com/*
86
98
  - http://bigthink.com/ideas/*
87
99
  - http://bigthink.com/series/*
88
100
  - http://blip.tv/*/*
@@ -107,13 +119,18 @@
107
119
  - http://collegehumor.com/video/*
108
120
  - http://collegehumor.com/video:*
109
121
  - http://color.com/s/*
122
+ - http://confreaks.com/videos/*
110
123
  - http://confreaks.net/videos/*
124
+ - http://coub.com/embed/*
125
+ - http://coub.com/view/*
111
126
  - http://crocodoc.com/*
112
127
  - http://crunchbase.com/*/*
128
+ - http://d.pr/i/*
113
129
  - http://dailybooth.com/*/*
114
130
  - http://dipdive.com/media/*
115
131
  - http://dipdive.com/member/*/media/*
116
132
  - http://dipdive.com/v/*
133
+ - http://distrify.com/film/*
117
134
  - http://dotsub.com/view/*
118
135
  - http://drbl.in/*
119
136
  - http://dsc.discovery.com/videos/*
@@ -136,13 +153,12 @@
136
153
  - http://freemusicarchive.org/music/*
137
154
  - http://funnyordie.com/m/*
138
155
  - http://funnyordie.com/videos/*
139
- - http://gametrailers.com/video/*
156
+ - http://gametrailers.com/video*
140
157
  - http://gist.github.com/*
141
158
  - http://godtube.com/featured/video/*
142
159
  - http://godtube.com/watch/*
143
- - http://google.com/buzz/*
144
- - http://google.com/buzz/*/*/*
145
160
  - http://google.com/profiles/*
161
+ - http://gopollgo.com/*
146
162
  - http://graphicly.com/*/*/*
147
163
  - http://grindtv.com/*/video/*
148
164
  - http://grooveshark.com/*
@@ -168,8 +184,13 @@
168
184
  - http://investigation.discovery.com/videos/*
169
185
  - http://issuu.com/*/docs/*
170
186
  - http://itunes.apple.com/*
187
+ - http://jdsupra.com/legalnews/*
188
+ - http://jibjab.com/view/*
189
+ - http://khanacademy.org/*
171
190
  - http://lightbox.com/*
172
191
  - http://link.brightcove.com/services/player/bcpid*
192
+ - http://linkedin.com/in/*
193
+ - http://linkedin.com/pub/*
173
194
  - http://liveleak.com/view?*
174
195
  - http://lockerz.com/s/*
175
196
  - http://logotv.com/video/*
@@ -196,10 +217,14 @@
196
217
  - http://movies.yahoo.com/movie/*/trailer
197
218
  - http://movies.yahoo.com/movie/*/video
198
219
  - http://movies.yahoo.com/movie/*/video/*
220
+ - http://muvi.es/*
199
221
  - http://my.opera.com/*/albums/show.dml?id=*
200
222
  - http://my.opera.com/*/albums/showpic.dml?album=*&picture=*
201
223
  - http://myloc.me/*
202
224
  - http://nzonscreen.com/title/*
225
+ - http://on.aol.com/playlist/*
226
+ - http://on.aol.com/video/*
227
+ - http://open.spotify.com/*
203
228
  - http://ow.ly/i/*
204
229
  - http://pastebin.com/*
205
230
  - http://pastie.org/*
@@ -210,13 +235,17 @@
210
235
  - http://picasaweb.google.com*/*/*
211
236
  - http://picasaweb.google.com*/*/*#*
212
237
  - http://picasaweb.google.com*/lh/photo/*
213
- - http://picplz.com/*
214
238
  - http://pics.brizzly.com/*.jpg
239
+ - http://pics.lockerz.com/s/*
215
240
  - http://pikchur.com/*
216
241
  - http://ping.fm/p/*
217
242
  - http://pinterest.com/pin/*
218
243
  - http://pixorial.com/watch/*
219
244
  - http://planetgreen.discovery.com/videos/*
245
+ - http://plus.google.com/*
246
+ - http://polldaddy.com/community/poll/*
247
+ - http://polldaddy.com/poll/*
248
+ - http://portal.sliderocket.com/*
220
249
  - http://post.ly/*
221
250
  - http://prezi.com/*/*
222
251
  - http://qik.com/*
@@ -243,9 +272,10 @@
243
272
  - http://sendables.jibjab.com/originals/*
244
273
  - http://sendables.jibjab.com/view/*
245
274
  - http://share.ovi.com/media/*/*
246
- - http://shitmydadsays.com/notice/*
275
+ - http://showme.com/sh/*
247
276
  - http://siteanalytics.compete.com/*
248
277
  - http://skitch.com/*/*/*
278
+ - http://sliderocket.com/*
249
279
  - http://slidesha.re/*
250
280
  - http://snd.sc/*
251
281
  - http://snotr.com/video/*
@@ -258,6 +288,7 @@
258
288
  - http://soundcloud.com/groups/*
259
289
  - http://speakerdeck.com/u/*/p/*
260
290
  - http://sports.yahoo.com/video/*
291
+ - http://spreecast.com/events/*
261
292
  - http://statsheet.com/*/teams/*/*
262
293
  - http://statsheet.com/statplot/charts/*/*/*/*
263
294
  - http://statsheet.com/statplot/charts/e/*
@@ -265,9 +296,7 @@
265
296
  - http://storify.com/*/*
266
297
  - http://streetfire.net/video/*.htm*
267
298
  - http://teachertube.com/viewVideo.php*
268
- - http://techcrunch.tv/*/watch*
269
- - http://techcrunch.tv/show/*/*
270
- - http://techcrunch.tv/watch*
299
+ - http://telly.com/*
271
300
  - http://theonion.com/video/*
272
301
  - http://threadbanger.com/*/episode/*
273
302
  - http://threadbanger.com/episode/*
@@ -302,10 +331,11 @@
302
331
  - http://video.forbes.com/fvn/*
303
332
  - http://video.google.com/videoplay?*
304
333
  - http://video.jardenberg.se/*
305
- - http://video.nationalgeographic.com/*/*/*.html
334
+ - http://video.nationalgeographic.com/video/*/*/*/*
306
335
  - http://video.pbs.org/video/*
307
336
  - http://video.yahoo.com/network/*
308
337
  - http://video.yahoo.com/watch/*/*
338
+ - http://videodetective.com/*/*
309
339
  - http://videos.nymag.com/*
310
340
  - http://vids.myspace.com/index.cfm?fuseaction=vids.individual&videoid*
311
341
  - http://vimeo.com/*
@@ -313,10 +343,15 @@
313
343
  - http://vimeo.com/m/#/*
314
344
  - http://vodcars.com/*/episode/*
315
345
  - http://vodcars.com/episode/*
346
+ - http://vzaar.com/videos/*
347
+ - http://vzaar.me/*
348
+ - http://vzaar.tv/*
316
349
  - http://washingtonpost.com/wp-dyn/*/video/*/*/*/*
317
350
  - http://wh.gov/photos-and-video/video/*
318
351
  - http://wh.gov/video/*
352
+ - http://wi.st/*
319
353
  - http://wirewax.com/*
354
+ - http://wistia.com/*
320
355
  - http://wordpress.tv/*/*/*/*/
321
356
  - http://worldstarhiphop.com/videos/video*.php?v=*
322
357
  - http://www.23hq.com/*/photo/*
@@ -335,16 +370,17 @@
335
370
  - http://www.barelydigital.com/episode/*
336
371
  - http://www.barelypolitical.com/*/episode/*
337
372
  - http://www.barelypolitical.com/episode/*
373
+ - http://www.behance.net/gallery/*
338
374
  - http://www.boston.com/*video*
339
375
  - http://www.boston.com/video*
340
376
  - http://www.bravotv.com/*/*/videos/*
341
- - http://www.break.com/*/*
342
377
  - http://www.canalplus.fr/*
343
378
  - http://www.channelfrederator.com/*/episode/*
344
379
  - http://www.channelfrederator.com/episode/*
345
380
  - http://www.clikthrough.com/theater/video/*
346
381
  - http://www.clipfish.de/*/*/video/*
347
382
  - http://www.clipshack.com/Clip.aspx?*
383
+ - http://www.clipsyndicate.com/video/playlist/*/*
348
384
  - http://www.cnbc.com/id/*/play/1/video/*
349
385
  - http://www.cnbc.com/id/*?*video*
350
386
  - http://www.cnn.com/video/*
@@ -354,10 +390,14 @@
354
390
  - http://www.collegehumor.com/video/*
355
391
  - http://www.collegehumor.com/video:*
356
392
  - http://www.comedycentral.com/videos/index.jhtml?*
393
+ - http://www.confreaks.com/videos/*
357
394
  - http://www.confreaks.net/videos/*
358
395
  - http://www.crunchbase.com/*/*
359
396
  - http://www.dailymile.com/people/*/entries/*
360
397
  - http://www.escapistmagazine.com/videos/*
398
+ - http://www.eyeem.com/a/*
399
+ - http://www.eyeem.com/p/*
400
+ - http://www.eyeem.com/u/*
361
401
  - http://www.facebook.com/photo.php*
362
402
  - http://www.facebook.com/v/*
363
403
  - http://www.facebook.com/video/video.php*
@@ -371,15 +411,14 @@
371
411
  - http://www.freemusicarchive.org/music/*
372
412
  - http://www.funnyordie.com/m/*
373
413
  - http://www.funnyordie.com/videos/*
374
- - http://www.gametrailers.com/video/*
414
+ - http://www.gametrailers.com/video*
375
415
  - http://www.globalpost.com/dispatch/*
376
416
  - http://www.globalpost.com/video/*
377
417
  - http://www.godtube.com/featured/video/*
378
418
  - http://www.godtube.com/watch/*
379
419
  - http://www.gogoyoko.com/song/*
380
- - http://www.google.com/buzz/*
381
- - http://www.google.com/buzz/*/*/*
382
420
  - http://www.google.com/profiles/*
421
+ - http://www.gopollgo.com/*
383
422
  - http://www.grindtv.com/*/video/*
384
423
  - http://www.guardian.co.uk/*/video/*/*/*/*
385
424
  - http://www.hark.com/clips/*
@@ -394,6 +433,8 @@
394
433
  - http://www.ifood.tv/video/*
395
434
  - http://www.indymogul.com/*/episode/*
396
435
  - http://www.indymogul.com/episode/*
436
+ - http://www.jdsupra.com/legalnews/*
437
+ - http://www.khanacademy.org/*
397
438
  - http://www.kickstarter.com/projects/*/*
398
439
  - http://www.kiva.org/lend/*
399
440
  - http://www.koldcast.tv/#video:*
@@ -468,6 +509,8 @@
468
509
  - http://www.shopstyle.com/action/apiVisitRetailer*
469
510
  - http://www.shopstyle.com/action/viewLook*
470
511
  - http://www.shopstyle.com/browse*
512
+ - http://www.showme.com/sh/*
513
+ - http://www.sliderocket.com/*
471
514
  - http://www.slideshare.net/*/*
472
515
  - http://www.slideshare.net/mobile/*/*
473
516
  - http://www.snotr.com/video/*
@@ -475,6 +518,7 @@
475
518
  - http://www.some.ly/*
476
519
  - http://www.someecards.com/*/*
477
520
  - http://www.spike.com/video/*
521
+ - http://www.spreecast.com/events/*
478
522
  - http://www.streetfire.net/video/*.htm*
479
523
  - http://www.studivz.net/*
480
524
  - http://www.studivz.net/Gadgets/Info/*
@@ -488,6 +532,7 @@
488
532
  - http://www.ted.com/index.php/talks/lang/*/*.html*
489
533
  - http://www.ted.com/talks/*.html*
490
534
  - http://www.ted.com/talks/lang/*/*.html*
535
+ - http://www.telly.com/*
491
536
  - http://www.thedailyshow.com/collection/*/*/*
492
537
  - http://www.thedailyshow.com/full-episodes/*
493
538
  - http://www.thedailyshow.com/watch/*
@@ -521,16 +566,21 @@
521
566
  - http://www.ustream.tv/recorded/*
522
567
  - http://www.vevo.com/video/*
523
568
  - http://www.vevo.com/watch/*
569
+ - http://www.videodetective.com/*/*
570
+ - http://www.viewrz.com/*/event/*/*
571
+ - http://www.viewrz.com/event/*/*
524
572
  - http://www.vimeo.com/*
525
573
  - http://www.vimeo.com/groups/*/videos/*
526
574
  - http://www.vodcars.com/*/episode/*
527
575
  - http://www.vodcars.com/episode/*
576
+ - http://www.vzaar.com/videos/*
577
+ - http://www.vzaar.tv/*
528
578
  - http://www.washingtonpost.com/wp-dyn/*/video/*/*/*/*
529
579
  - http://www.whitehouse.gov/photos-and-video/video/*
530
580
  - http://www.whitehouse.gov/video/*
531
- - http://www.whosay.com/content/*
532
- - http://www.whosay.com/photos/*
533
- - http://www.whosay.com/videos/*
581
+ - http://www.whosay.com/*/content/*
582
+ - http://www.whosay.com/*/photos/*
583
+ - http://www.whosay.com/*/videos/*
534
584
  - http://www.wikimedia.org/wiki/File*
535
585
  - http://www.wikipedia.org/wiki/*
536
586
  - http://www.wirewax.com/*
@@ -546,18 +596,23 @@
546
596
  - http://xkcd.com/*
547
597
  - http://youtu.be/*
548
598
  - https://*.crocodoc.com/*
599
+ - https://*.looplogic.com/*
600
+ - https://*.wi.st/*
601
+ - https://*.wistia.com/*
549
602
  - https://*.youtube.com/v/*
550
603
  - https://*youtube.com/watch*
551
604
  - https://app.wistia.com/embed/medias/*
552
605
  - https://crocodoc.com/*
553
606
  - https://foursquare.com/*
554
607
  - https://ganxy.com/*
608
+ - https://gist.github.com/*
555
609
  - https://img.skitch.com/*
556
610
  - https://itunes.apple.com/*
557
611
  - https://mobile.twitter.com/*/status/*
558
612
  - https://mobile.twitter.com/*/status/*/photo/*
559
613
  - https://mobile.twitter.com/*/statuses/*
560
614
  - https://mobile.twitter.com/*/statuses/*/photo/*
615
+ - https://plus.google.com/*
561
616
  - https://skitch.com/*/*/*
562
617
  - https://twitter.com/*/status/*
563
618
  - https://twitter.com/*/status/*/photo/*
@@ -565,6 +620,9 @@
565
620
  - https://twitter.com/*/statuses/*/photo/*
566
621
  - https://urtak.com/clr/*
567
622
  - https://urtak.com/u/*
623
+ - https://vimeo.com/*
624
+ - https://wi.st/*
625
+ - https://wistia.com/*
568
626
  - https://www.facebook.com/photo.php*
569
627
  - https://www.facebook.com/v/*
570
628
  - https://www.facebook.com/video/video.php*
@@ -574,3 +632,4 @@
574
632
  - https://www.twitter.com/*/status/*/photo/*
575
633
  - https://www.twitter.com/*/statuses/*
576
634
  - https://www.twitter.com/*/statuses/*/photo/*
635
+ - https://www.vimeo.com/*
@@ -43,7 +43,7 @@ module OEmbed
43
43
 
44
44
  # Register all Providers built into this gem.
45
45
  # The including_sub_type parameter should be one of the following values:
46
- # * :aggregators: also register provider agregator endpoints, like Embedly
46
+ # * :aggregators: also register provider aggregator endpoints, like Embedly
47
47
  def register_all(*including_sub_type)
48
48
  register(*@@to_register[""])
49
49
  including_sub_type.each do |sub_type|
@@ -128,8 +128,14 @@ module OEmbed
128
128
 
129
129
  # Provider for youtube.com
130
130
  # http://apiblog.youtube.com/2009/10/oembed-support.html
131
- # To get the iframe embed code, instead of flash-based, pass
132
- # :iframe=>1 as a query in your get request.
131
+ #
132
+ # Options:
133
+ # * To get the iframe embed code
134
+ # OEmbed::Providers::Youtube.endpoint += "?iframe=1"
135
+ # * To get the flash/object embed code
136
+ # OEmbed::Providers::Youtube.endpoint += "?iframe=0"
137
+ # * To require https embed code
138
+ # OEmbed::Providers::Youtube.endpoint += "?scheme=https"
133
139
  Youtube = OEmbed::Provider.new("http://www.youtube.com/oembed")
134
140
  Youtube << "http://*.youtube.com/*"
135
141
  Youtube << "https://*.youtube.com/*"
@@ -167,8 +173,8 @@ module OEmbed
167
173
  add_official_provider(Hulu)
168
174
 
169
175
  # Provider for vimeo.com
170
- # http://vimeo.com/api/docs/oEmbed
171
- Vimeo = OEmbed::Provider.new("http://www.vimeo.com/api/oembed.{format}")
176
+ # http://developer.vimeo.com/apis/oembed
177
+ Vimeo = OEmbed::Provider.new("http://vimeo.com/api/oembed.{format}")
172
178
  Vimeo << "http://*.vimeo.com/*"
173
179
  Vimeo << "https://*.vimeo.com/*"
174
180
  add_official_provider(Vimeo)
@@ -249,6 +255,13 @@ module OEmbed
249
255
  SoundCloud << "http://*.soundcloud.com/*"
250
256
  add_official_provider(SoundCloud)
251
257
 
258
+ # Provider for skitch.com
259
+ # http://skitch.com/oembed/%3C/endpoint
260
+ Skitch = OEmbed::Provider.new("http://skitch.com/oembed")
261
+ Skitch << "http://*.skitch.com/*"
262
+ Skitch << "https://*.skitch.com/*"
263
+ add_official_provider(Skitch)
264
+
252
265
  ## Provider for clikthrough.com
253
266
  # http://corporate.clikthrough.com/wp/?p=275
254
267
  #Clickthrough = OEmbed::Provider.new("http://www.clikthrough.com/services/oembed/")
@@ -261,7 +274,7 @@ module OEmbed
261
274
  #Kinomap << "http://www.kinomap.com/*"
262
275
  #add_official_provider(Kinomap)
263
276
 
264
- # Provider for oohembed.com, which is a provider agregator. See
277
+ # Provider for oohembed.com, which is a provider aggregator. See
265
278
  # OEmbed::Providers::OohEmbed.urls for a full list of supported url schemas.
266
279
  # Embed.ly has taken over the oohembed.com domain and as of July 20 all oohEmbed
267
280
  # request will require you use an API key. For details on the transition see
@@ -301,11 +314,14 @@ module OEmbed
301
314
  OohEmbed << %r{http://yfrog.(com|ru|com.tr|it|fr|co.il|co.uk|com.pl|pl|eu|us)/(.*?)} # image & video hosting
302
315
  OohEmbed << "http://*.youtube.com/watch*"
303
316
 
304
- # Provider for Embedly.com, which is a provider agregator. See
317
+ # Provider for Embedly.com, which is a provider aggregator. See
305
318
  # OEmbed::Providers::Embedly.urls for a full list of supported url schemas.
306
319
  # http://embed.ly/docs/endpoints/1/oembed
307
- # You'll need to add your Embed.ly API key to each request as the "key"
308
- # parameter. To get an API key you'll need to sign up here: http://embed.ly/pricing
320
+ #
321
+ # You can append your Embed.ly API key to the provider so that all requests are signed
322
+ # OEmbed::Providers::Embedly.endpoint += "?key=#{my_embedly_key}"
323
+ #
324
+ # If you don't yet have an API key you'll need to sign up here: http://embed.ly/pricing
309
325
  Embedly = OEmbed::Provider.new("http://api.embed.ly/1/oembed")
310
326
  # Add all known URL regexps for Embedly. To update this list run `rake oembed:update_embedly`
311
327
  YAML.load_file(File.join(File.dirname(__FILE__), "/providers/embedly_urls.yml")).each do |url|
@@ -4,7 +4,7 @@ module OEmbed
4
4
  class Photo < self
5
5
  # Returns an <img> tag pointing at the appropraite URL.
6
6
  def html
7
- "<img src='" + self.url + "' />"
7
+ "<img src='#{self.url}' alt='#{(self.respond_to?(:title) ? self.title : nil)}' />"
8
8
  end
9
9
 
10
10
  private
@@ -18,4 +18,4 @@ module OEmbed
18
18
 
19
19
  end
20
20
  end
21
- end
21
+ end
@@ -2,7 +2,7 @@ module OEmbed
2
2
  class Version
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
- PATCH = 7
5
+ PATCH = 8
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
 
8
8
  class << self
@@ -14,7 +14,7 @@ begin
14
14
 
15
15
  url_regexps = []
16
16
  services.each do |service|
17
- url_regexps += service['regex']
17
+ url_regexps += service['regex'].map{|r| r.strip }
18
18
  end
19
19
  url_regexps.sort!
20
20
 
data/ruby-oembed.gemspec CHANGED
@@ -1,88 +1,36 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
5
2
 
3
+ lib = File.expand_path('../lib/', __FILE__)
4
+ $:.unshift lib unless $:.include?(lib)
5
+
6
+ require 'oembed/version'
7
+
6
8
  Gem::Specification.new do |s|
7
9
  s.name = "ruby-oembed"
8
- s.version = "0.8.7"
10
+ s.version = OEmbed::Version.to_s
9
11
 
10
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
13
  s.authors = ["Magnus Holm", "Alex Kessinger", "Aris Bartee", "Marcos Wright Kuhns"]
12
- s.date = "2012-03-12"
14
+ s.date = "2012-11-19"
13
15
  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
16
  s.email = "arisbartee@gmail.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".rvmrc",
21
- ".travis.yml",
22
- ".yardopts",
23
- "CHANGELOG.rdoc",
24
- "Gemfile",
25
- "Gemfile.lock",
26
- "LICENSE",
27
- "README.rdoc",
28
- "Rakefile",
29
- "integration_test/test.rb",
30
- "integration_test/test_urls.csv",
31
- "lib/oembed.rb",
32
- "lib/oembed/errors.rb",
33
- "lib/oembed/formatter.rb",
34
- "lib/oembed/formatter/base.rb",
35
- "lib/oembed/formatter/json.rb",
36
- "lib/oembed/formatter/json/backends/activesupportjson.rb",
37
- "lib/oembed/formatter/json/backends/jsongem.rb",
38
- "lib/oembed/formatter/json/backends/yaml.rb",
39
- "lib/oembed/formatter/xml.rb",
40
- "lib/oembed/formatter/xml/backends/nokogiri.rb",
41
- "lib/oembed/formatter/xml/backends/rexml.rb",
42
- "lib/oembed/formatter/xml/backends/xmlsimple.rb",
43
- "lib/oembed/provider.rb",
44
- "lib/oembed/provider_discovery.rb",
45
- "lib/oembed/providers.rb",
46
- "lib/oembed/providers/embedly_urls.yml",
47
- "lib/oembed/providers/oohembed_urls.yml",
48
- "lib/oembed/response.rb",
49
- "lib/oembed/response/link.rb",
50
- "lib/oembed/response/photo.rb",
51
- "lib/oembed/response/rich.rb",
52
- "lib/oembed/response/video.rb",
53
- "lib/oembed/version.rb",
54
- "lib/tasks/oembed.rake",
55
- "lib/tasks/rspec.rake",
56
- "ruby-oembed.gemspec",
57
- "spec/cassettes/OEmbed_Provider.yml",
58
- "spec/cassettes/OEmbed_ProviderDiscovery.yml",
59
- "spec/formatter/ducktype_backend_spec.rb",
60
- "spec/formatter/json/.DS_Store",
61
- "spec/formatter/json/jsongem_backend_spec.rb",
62
- "spec/formatter/json/yaml_backend_spec.rb",
63
- "spec/formatter/xml/nokogiri_backend_spec.rb",
64
- "spec/formatter/xml/rexml_backend_spec.rb",
65
- "spec/formatter/xml/xmlsimple_backend_spec.rb",
66
- "spec/formatter_spec.rb",
67
- "spec/provider_discovery_spec.rb",
68
- "spec/provider_spec.rb",
69
- "spec/providers_spec.rb",
70
- "spec/response_spec.rb",
71
- "spec/spec_helper.rb",
72
- "spec/spec_helper_examples.yml"
73
- ]
74
17
  s.homepage = "http://github.com/judofyr/ruby-oembed"
75
18
  s.licenses = ["MIT"]
76
- s.rdoc_options = ["--main", "README.rdoc", "--title", "ruby-oembed-0.8.7", "--inline-source", "--exclude", "tasks", "CHANGELOG.rdoc"]
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.test_files = s.files.grep(%r{^(test|spec|features,integration_test)/})
22
+
23
+ s.rdoc_options = ["--main", "README.rdoc", "--title", "ruby-oembed-#{OEmbed::Version}", "--inline-source", "--exclude", "tasks", "CHANGELOG.rdoc"]
24
+ s.extra_rdoc_files = s.files.grep(%r{\.rdoc$}) + %w{LICENSE}
25
+
77
26
  s.require_paths = ["lib"]
78
- s.rubygems_version = "1.8.10"
27
+ s.rubygems_version = "1.8.19"
79
28
  s.summary = "oEmbed for Ruby"
80
29
 
81
30
  if s.respond_to? :specification_version then
82
31
  s.specification_version = 3
83
32
 
84
33
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
85
- s.add_development_dependency(%q<jeweler>, [">= 0"])
86
34
  s.add_development_dependency(%q<rake>, [">= 0"])
87
35
  s.add_development_dependency(%q<json>, [">= 0"])
88
36
  s.add_development_dependency(%q<xml-simple>, [">= 0"])
@@ -91,7 +39,6 @@ Gem::Specification.new do |s|
91
39
  s.add_development_dependency(%q<vcr>, ["~> 1.0"])
92
40
  s.add_development_dependency(%q<fakeweb>, [">= 0"])
93
41
  else
94
- s.add_dependency(%q<jeweler>, [">= 0"])
95
42
  s.add_dependency(%q<rake>, [">= 0"])
96
43
  s.add_dependency(%q<json>, [">= 0"])
97
44
  s.add_dependency(%q<xml-simple>, [">= 0"])
@@ -101,7 +48,6 @@ Gem::Specification.new do |s|
101
48
  s.add_dependency(%q<fakeweb>, [">= 0"])
102
49
  end
103
50
  else
104
- s.add_dependency(%q<jeweler>, [">= 0"])
105
51
  s.add_dependency(%q<rake>, [">= 0"])
106
52
  s.add_dependency(%q<json>, [">= 0"])
107
53
  s.add_dependency(%q<xml-simple>, [">= 0"])