ruby-oembed 0.10.0 → 0.13.1
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 +5 -5
- data/.coveralls.yml +1 -0
- data/.gitignore +11 -2
- data/.travis.yml +3 -6
- data/CHANGELOG.rdoc +35 -0
- data/Gemfile +12 -10
- data/README.md +118 -0
- data/Rakefile +2 -0
- data/lib/oembed/providers.rb +56 -5
- data/lib/oembed/providers/embedly_urls.yml +1000 -133
- data/lib/oembed/providers/noembed_urls.yml +321 -0
- data/lib/oembed/version.rb +3 -3
- data/lib/tasks/oembed.rake +24 -23
- data/ruby-oembed.gemspec +5 -33
- data/spec/cassettes/OEmbed_Provider.yml +882 -119
- data/spec/cassettes/OEmbed_ProviderDiscovery.yml +26007 -35598
- data/spec/cassettes/OEmbed_Providers_Slideshare.yml +1433 -0
- data/spec/cassettes/OEmbed_Providers_Twitter.yml +612 -0
- data/spec/provider_discovery_spec.rb +3 -15
- data/spec/provider_spec.rb +9 -23
- data/spec/providers/slideshare_spec.rb +42 -0
- data/spec/providers/twitter_spec.rb +44 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/spec_helper_examples.yml +6 -16
- data/spec/support/shared_examples_for_providers.rb +39 -0
- metadata +20 -80
- data/README.rdoc +0 -87
@@ -1,12 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
require 'json'
|
3
|
-
require 'vcr'
|
4
|
-
|
5
|
-
VCR.config do |c|
|
6
|
-
c.default_cassette_options = { :record => :new_episodes }
|
7
|
-
c.cassette_library_dir = 'spec/cassettes'
|
8
|
-
c.stub_with :fakeweb
|
9
|
-
end
|
10
3
|
|
11
4
|
describe OEmbed::ProviderDiscovery do
|
12
5
|
before(:all) do
|
@@ -31,8 +24,8 @@ describe OEmbed::ProviderDiscovery do
|
|
31
24
|
:json,
|
32
25
|
],
|
33
26
|
'vimeo' => [
|
34
|
-
'
|
35
|
-
{:json=>'
|
27
|
+
'https://vimeo.com/27953845',
|
28
|
+
{:json=>'https://vimeo.com/api/oembed.json', :xml=>'https://vimeo.com/api/oembed.xml'},
|
36
29
|
:json,
|
37
30
|
],
|
38
31
|
'facebook-photo' => [
|
@@ -45,12 +38,7 @@ describe OEmbed::ProviderDiscovery do
|
|
45
38
|
'https://www.tumblr.com/oembed/1.0',
|
46
39
|
:json
|
47
40
|
],
|
48
|
-
|
49
|
-
'http://www.noteflight.com/scores/view/09665392c94475f65dfaf5f30aadb6ed0921939d',
|
50
|
-
{:json=>'http://www.noteflight.com/services/oembed', :xml=>'http://www.noteflight.com/services/oembed'},
|
51
|
-
:json,
|
52
|
-
],
|
53
|
-
# TODO: Enhance ProviderDiscovery to support arbitrary query parameters. See https://github.com/judofyr/ruby-oembed/issues/15
|
41
|
+
# TODO: Enhance ProviderDiscovery to support arbitrary query parameters. See https://github.com/ruby-oembed/ruby-oembed/issues/15
|
54
42
|
#'wordpress' => [
|
55
43
|
# 'http://sweetandweak.wordpress.com/2011/09/23/nothing-starts-the-morning-like-a-good-dose-of-panic/',
|
56
44
|
# {:json=>'https://public-api.wordpress.com/oembed/1.0/', :xml=>'https://public-api.wordpress.com/oembed/1.0/'},
|
data/spec/provider_spec.rb
CHANGED
@@ -1,11 +1,4 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
-
require 'vcr'
|
3
|
-
|
4
|
-
VCR.config do |c|
|
5
|
-
c.default_cassette_options = { :record => :new_episodes }
|
6
|
-
c.cassette_library_dir = 'spec/cassettes'
|
7
|
-
c.stub_with :fakeweb
|
8
|
-
end
|
9
2
|
|
10
3
|
describe OEmbed::Provider do
|
11
4
|
before(:all) do
|
@@ -274,37 +267,30 @@ describe OEmbed::Provider do
|
|
274
267
|
@vimeo_ssl << "http://*.vimeo.com/*"
|
275
268
|
@vimeo_ssl << "https://*.vimeo.com/*"
|
276
269
|
|
277
|
-
|
278
|
-
|
279
|
-
expect(res).to eq(example_body(:vimeo_ssl))
|
280
|
-
}.not_to raise_error
|
270
|
+
res = @vimeo_ssl.send(:raw, example_url(:vimeo_ssl))
|
271
|
+
expect(res).to eq(example_body(:vimeo_ssl).strip)
|
281
272
|
end
|
282
273
|
|
283
274
|
it "should raise an UnknownFormat error on 501" do
|
284
|
-
|
285
|
-
# cassettes/OEmbed_Provider.yml file.
|
275
|
+
stub_request(:get, /flickr/).to_return(status: 501)
|
286
276
|
|
287
277
|
expect {
|
288
|
-
@flickr.send(:raw, File.join(example_url(:flickr), '501'))
|
278
|
+
result = @flickr.send(:raw, File.join(example_url(:flickr), '501'))
|
289
279
|
}.to raise_error(OEmbed::UnknownFormat)
|
290
280
|
end
|
291
281
|
|
292
282
|
it "should raise a NotFound error on 404" do
|
293
|
-
|
294
|
-
# cassettes/OEmbed_Provider.yml file.
|
283
|
+
stub_request(:get, /flickr/).to_return(status: 404)
|
295
284
|
|
296
285
|
expect {
|
297
286
|
@flickr.send(:raw, File.join(example_url(:flickr), '404'))
|
298
287
|
}.to raise_error(OEmbed::NotFound)
|
299
288
|
end
|
300
289
|
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
statuses_to_check = ['405', '500']
|
290
|
+
['405', '500'].each do |status|
|
291
|
+
it "should raise an UnknownResponse error on other responses (#{status})" do
|
292
|
+
stub_request(:get, /flickr/).to_return(status: status)
|
306
293
|
|
307
|
-
statuses_to_check.each do |status|
|
308
294
|
expect {
|
309
295
|
@flickr.send(:raw, File.join(example_url(:flickr), status))
|
310
296
|
}.to raise_error(OEmbed::UnknownResponse)
|
@@ -371,7 +357,7 @@ describe OEmbed::Provider do
|
|
371
357
|
@viddler.get(example_url(:viddler))
|
372
358
|
end
|
373
359
|
|
374
|
-
it "handles the :timeout option" do
|
360
|
+
it "handles the :timeout option", pending: true do
|
375
361
|
expect_any_instance_of(Net::HTTP).to receive(:open_timeout=).with(5)
|
376
362
|
expect_any_instance_of(Net::HTTP).to receive(:read_timeout=).with(5)
|
377
363
|
@flickr.get(example_url(:flickr), :timeout => 5)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
require 'support/shared_examples_for_providers'
|
3
|
+
|
4
|
+
describe 'OEmbed::Providers::Slideshare' do
|
5
|
+
before(:all) do
|
6
|
+
VCR.insert_cassette('OEmbed_Providers_Slideshare')
|
7
|
+
end
|
8
|
+
after(:all) do
|
9
|
+
VCR.eject_cassette
|
10
|
+
end
|
11
|
+
|
12
|
+
include OEmbedSpecHelper
|
13
|
+
|
14
|
+
let(:provider_class) { OEmbed::Providers::Slideshare }
|
15
|
+
|
16
|
+
expected_valid_urls = (
|
17
|
+
%w(https:// http://).map do |protocol|
|
18
|
+
%w(slideshare.net www.slideshare.net de.slideshare.net).map do |host|
|
19
|
+
[
|
20
|
+
'/gabriele.lana/the-magic-of-elixir',
|
21
|
+
# Even though Slideshare's oEmbed endpoint
|
22
|
+
# is supposed to /mobile/ URLs,
|
23
|
+
# as of 2016-05-21 it's returning 404 results for these URLs.
|
24
|
+
#'/mobile/gabriele.lana/the-magic-of-elixir',
|
25
|
+
].map do |path|
|
26
|
+
File.join(protocol, host, path)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
).flatten
|
31
|
+
|
32
|
+
expected_invalid_urls = %w(
|
33
|
+
http://www.slideshare.net
|
34
|
+
http://www.slideshare.net/gabriele.lana
|
35
|
+
)
|
36
|
+
|
37
|
+
it_should_behave_like(
|
38
|
+
"an OEmbed::Proviers instance",
|
39
|
+
expected_valid_urls,
|
40
|
+
expected_invalid_urls
|
41
|
+
)
|
42
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
require 'support/shared_examples_for_providers'
|
3
|
+
|
4
|
+
describe 'OEmbed::Providers::Twitter' do
|
5
|
+
before(:all) do
|
6
|
+
VCR.insert_cassette('OEmbed_Providers_Twitter')
|
7
|
+
end
|
8
|
+
after(:all) do
|
9
|
+
VCR.eject_cassette
|
10
|
+
end
|
11
|
+
|
12
|
+
include OEmbedSpecHelper
|
13
|
+
|
14
|
+
let(:provider_class) { OEmbed::Providers::Twitter }
|
15
|
+
|
16
|
+
expected_valid_urls = %w(
|
17
|
+
https://twitter.com/RailsGirlsSoC/status/702136612822634496
|
18
|
+
https://www.twitter.com/bpoweski/status/71633762
|
19
|
+
)
|
20
|
+
expected_invalid_urls = %w(
|
21
|
+
http://twitter.com/RailsGirlsSoC/status/702136612822634496
|
22
|
+
https://twitter.es/FCBarcelona_es/status/734194638697959424
|
23
|
+
)
|
24
|
+
|
25
|
+
it_should_behave_like(
|
26
|
+
"an OEmbed::Proviers instance",
|
27
|
+
expected_valid_urls,
|
28
|
+
expected_invalid_urls
|
29
|
+
)
|
30
|
+
|
31
|
+
context "using XML" do
|
32
|
+
expected_valid_urls.each do |valid_url|
|
33
|
+
context "given the valid URL #{valid_url}" do
|
34
|
+
describe ".get" do
|
35
|
+
it "should encounter a 400 error" do
|
36
|
+
expect {
|
37
|
+
provider_class.get(valid_url, :format=>:xml)
|
38
|
+
}.to raise_error(OEmbed::UnknownResponse, /\b400\b/)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,11 +1,23 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
|
2
3
|
require 'vcr'
|
4
|
+
VCR.config do |c|
|
5
|
+
c.default_cassette_options = { :record => :new_episodes }
|
6
|
+
c.cassette_library_dir = 'spec/cassettes'
|
7
|
+
c.hook_into :webmock
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'webmock/rspec'
|
11
|
+
require 'coveralls'
|
12
|
+
Coveralls.wear!
|
13
|
+
|
3
14
|
require File.dirname(__FILE__) + '/../lib/oembed'
|
4
15
|
|
5
16
|
RSpec.configure do |config|
|
6
17
|
config.raise_errors_for_deprecations!
|
7
18
|
config.tty = true
|
8
19
|
config.color = true
|
20
|
+
config.example_status_persistence_file_path = '.rspec-status'
|
9
21
|
end
|
10
22
|
|
11
23
|
module OEmbedSpecHelper
|
@@ -1,11 +1,9 @@
|
|
1
1
|
---
|
2
2
|
:flickr:
|
3
3
|
:url: "http://flickr.com/photos/bees/2362225867/"
|
4
|
-
:body:
|
5
|
-
|
6
|
-
Lollys","author_name":"\u202e\u202d\u202cbees\u202c","width":"500","height":"375","url":"http:\/\/farm4.staticflickr.com\/3040\/2362225867_4a87ab8baf.jpg"}
|
4
|
+
:body: |
|
5
|
+
{"type":"photo","flickr_type":"photo","title":"Bacon Lollys","author_name":"\u202e\u202d\u202cbees\u202c","author_url":"https:\/\/www.flickr.com\/photos\/bees\/","width":1024,"height":768,"url":"https:\/\/live.staticflickr.com\/3040\/2362225867_4a87ab8baf_b.jpg","web_page":"https:\/\/www.flickr.com\/photos\/bees\/2362225867\/","thumbnail_url":"https:\/\/live.staticflickr.com\/3040\/2362225867_4a87ab8baf_q.jpg","thumbnail_width":150,"thumbnail_height":150,"web_page_short_url":"https:\/\/flic.kr\/p\/4AK2sc","license":"All Rights Reserved","license_id":0,"html":"<a data-flickr-embed=\"true\" href=\"https:\/\/www.flickr.com\/photos\/bees\/2362225867\/\" title=\"Bacon Lollys by \u202e\u202d\u202cbees\u202c, on Flickr\"><img src=\"https:\/\/live.staticflickr.com\/3040\/2362225867_4a87ab8baf_b.jpg\" width=\"1024\" height=\"768\" alt=\"Bacon Lollys\"><\/a><script async src=\"https:\/\/embedr.flickr.com\/assets\/client-code.js\" charset=\"utf-8\"><\/script>","version":"1.0","cache_age":3600,"provider_name":"Flickr","provider_url":"https:\/\/www.flickr.com\/"}
|
7
6
|
|
8
|
-
'
|
9
7
|
:skitch:
|
10
8
|
:url: "http://skitch.com/sethferreira/nmbr8/the-kings-new-toy"
|
11
9
|
:body: ! '{"type":"photo","version":"1.0","author_name":"sethferreira","author_url":"http:\/\/skitch.com\/sethferreira\/","provider_name":"Skitch.com","provider_url":"http:\/\/skitch.com\/","width":804,"height":804,"url":"https:\/\/img.skitch.com\/20091210-m9cq9r2e6cy1j1sn23acn38kx.jpg","thumbnail_width":337,"thumbnail_height":337,"thumbnail_url":"https:\/\/img.skitch.com\/20091210-m9cq9r2e6cy1j1sn23acn38kx.preview.jpg","cache_age":86400}'
|
@@ -15,20 +13,12 @@
|
|
15
13
|
:url: "http://qik.com/video/49565"
|
16
14
|
:vimeo:
|
17
15
|
:url: "http://vimeo.com/3100878"
|
18
|
-
:body:
|
19
|
-
|
20
|
-
src=\"https:\/\/player.vimeo.com\/video\/31158841\" width=\"640\" height=\"512\"
|
21
|
-
frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen><\/iframe>","width":640,"height":512,"duration":120,"description":"A
|
22
|
-
chance encounter and shared moment with one of natures greatest and most fleeting
|
23
|
-
phenomena.","thumbnail_url":"https:\/\/secure-b.vimeocdn.com\/ts\/209\/801\/209801744_640.jpg","thumbnail_width":640,"thumbnail_height":512,"video_id":31158841}'
|
16
|
+
:body: |
|
17
|
+
{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Murmuration","author_name":"Islands & Rivers","author_url":"https:\/\/vimeo.com\/islandsandrivers","is_plus":"0","account_type":"basic","html":"<iframe src=\"https:\/\/player.vimeo.com\/video\/31158841?app_id=122963\" width=\"400\" height=\"320\" frameborder=\"0\" allow=\"autoplay; fullscreen\" allowfullscreen title=\"Murmuration\"><\/iframe>","width":400,"height":320,"duration":123,"description":"A chance encounter and shared moment with one of natures greatest and most fleeting phenomena.\n\nFacebook: Islands And Rivers\nFor licensing information contact Dale Dobson - dale@iconiclinx.com","thumbnail_url":"https:\/\/i.vimeocdn.com\/video\/448600816_295x166.jpg","thumbnail_width":295,"thumbnail_height":221,"thumbnail_url_with_play_button":"https:\/\/i.vimeocdn.com\/filter\/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F448600816_295x166.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png","upload_date":"2011-10-26 14:43:13","video_id":31158841,"uri":"\/videos\/31158841"}
|
24
18
|
:vimeo_ssl:
|
25
19
|
:url: "https://vimeo.com/31158841"
|
26
|
-
:body:
|
27
|
-
|
28
|
-
src=\"https:\/\/player.vimeo.com\/video\/31158841\" width=\"640\" height=\"512\"
|
29
|
-
frameborder=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen><\/iframe>","width":640,"height":512,"duration":120,"description":"A
|
30
|
-
chance encounter and shared moment with one of natures greatest and most fleeting
|
31
|
-
phenomena.","thumbnail_url":"https:\/\/secure-b.vimeocdn.com\/ts\/209\/801\/209801744_640.jpg","thumbnail_width":640,"thumbnail_height":512,"video_id":31158841}'
|
20
|
+
:body: |
|
21
|
+
{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Murmuration","author_name":"Islands & Rivers","author_url":"https:\/\/vimeo.com\/islandsandrivers","is_plus":"0","account_type":"basic","html":"<iframe src=\"https:\/\/player.vimeo.com\/video\/31158841?app_id=122963\" width=\"400\" height=\"320\" frameborder=\"0\" allow=\"autoplay; fullscreen\" allowfullscreen title=\"Murmuration\"><\/iframe>","width":400,"height":320,"duration":123,"description":"A chance encounter and shared moment with one of natures greatest and most fleeting phenomena.\n\nFacebook: Islands And Rivers\nFor licensing information contact Dale Dobson - dale@iconiclinx.com","thumbnail_url":"https:\/\/i.vimeocdn.com\/video\/448600816_295x166.jpg","thumbnail_width":295,"thumbnail_height":221,"thumbnail_url_with_play_button":"https:\/\/i.vimeocdn.com\/filter\/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F448600816_295x166.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png","upload_date":"2011-10-26 14:43:13","video_id":31158841,"uri":"\/videos\/31158841"}
|
32
22
|
:rev3:
|
33
23
|
:url: "http://revision3.com/diggnation/2008-04-17xsanned/"
|
34
24
|
:hulu:
|
@@ -0,0 +1,39 @@
|
|
1
|
+
RSpec.shared_examples "an OEmbed::Proviers instance" do |expected_valid_urls, expected_invalid_urls|
|
2
|
+
expected_valid_urls.each do |valid_url|
|
3
|
+
context "given the valid URL #{valid_url}" do
|
4
|
+
describe ".include?" do
|
5
|
+
it "should be true" do
|
6
|
+
expect(provider_class.include?(valid_url)).to be_truthy
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".get" do
|
11
|
+
it "should return a response" do
|
12
|
+
response = nil
|
13
|
+
expect {
|
14
|
+
response = provider_class.get(valid_url)
|
15
|
+
}.to_not raise_error
|
16
|
+
expect(response).to be_a(OEmbed::Response)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
expected_invalid_urls.each do |invalid_url|
|
23
|
+
context "given the invalid URL #{invalid_url}" do
|
24
|
+
describe ".include?" do
|
25
|
+
it "should be false" do
|
26
|
+
expect(provider_class.include?(invalid_url)).to be_falsey
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe ".get" do
|
31
|
+
it "should not find a response" do
|
32
|
+
expect {
|
33
|
+
provider_class.get(invalid_url)
|
34
|
+
}.to raise_error(OEmbed::NotFound)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-oembed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Magnus Holm
|
@@ -11,36 +11,8 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-05-25 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
17
|
-
name: rake
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '0'
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: json
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
requirements:
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: '0'
|
37
|
-
type: :development
|
38
|
-
prerelease: false
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0'
|
44
16
|
- !ruby/object:Gem::Dependency
|
45
17
|
name: xml-simple
|
46
18
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,59 +41,17 @@ dependencies:
|
|
69
41
|
- - ">="
|
70
42
|
- !ruby/object:Gem::Version
|
71
43
|
version: '0'
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
name: rspec
|
74
|
-
requirement: !ruby/object:Gem::Requirement
|
75
|
-
requirements:
|
76
|
-
- - "~>"
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '3.0'
|
79
|
-
type: :development
|
80
|
-
prerelease: false
|
81
|
-
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
requirements:
|
83
|
-
- - "~>"
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '3.0'
|
86
|
-
- !ruby/object:Gem::Dependency
|
87
|
-
name: vcr
|
88
|
-
requirement: !ruby/object:Gem::Requirement
|
89
|
-
requirements:
|
90
|
-
- - "~>"
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: '1.0'
|
93
|
-
type: :development
|
94
|
-
prerelease: false
|
95
|
-
version_requirements: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
- - "~>"
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: '1.0'
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
|
-
name: fakeweb
|
102
|
-
requirement: !ruby/object:Gem::Requirement
|
103
|
-
requirements:
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: '0'
|
107
|
-
type: :development
|
108
|
-
prerelease: false
|
109
|
-
version_requirements: !ruby/object:Gem::Requirement
|
110
|
-
requirements:
|
111
|
-
- - ">="
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: '0'
|
114
44
|
description: An oEmbed consumer library written in Ruby, letting you easily get embeddable
|
115
45
|
HTML representations of supported web pages, based on their URLs. See http://oembed.com
|
116
46
|
for more information about the protocol.
|
117
|
-
email:
|
47
|
+
email: webmaster@wrightkuhns.com
|
118
48
|
executables: []
|
119
49
|
extensions: []
|
120
50
|
extra_rdoc_files:
|
121
51
|
- CHANGELOG.rdoc
|
122
|
-
- README.rdoc
|
123
52
|
- LICENSE
|
124
53
|
files:
|
54
|
+
- ".coveralls.yml"
|
125
55
|
- ".gitignore"
|
126
56
|
- ".travis.yml"
|
127
57
|
- ".yardopts"
|
@@ -129,7 +59,7 @@ files:
|
|
129
59
|
- Gemfile
|
130
60
|
- Guardfile
|
131
61
|
- LICENSE
|
132
|
-
- README.
|
62
|
+
- README.md
|
133
63
|
- Rakefile
|
134
64
|
- integration_test/test.rb
|
135
65
|
- integration_test/test_urls.csv
|
@@ -150,6 +80,7 @@ files:
|
|
150
80
|
- lib/oembed/provider_discovery.rb
|
151
81
|
- lib/oembed/providers.rb
|
152
82
|
- lib/oembed/providers/embedly_urls.yml
|
83
|
+
- lib/oembed/providers/noembed_urls.yml
|
153
84
|
- lib/oembed/providers/oohembed_urls.yml
|
154
85
|
- lib/oembed/response.rb
|
155
86
|
- lib/oembed/response/link.rb
|
@@ -162,6 +93,8 @@ files:
|
|
162
93
|
- ruby-oembed.gemspec
|
163
94
|
- spec/cassettes/OEmbed_Provider.yml
|
164
95
|
- spec/cassettes/OEmbed_ProviderDiscovery.yml
|
96
|
+
- spec/cassettes/OEmbed_Providers_Slideshare.yml
|
97
|
+
- spec/cassettes/OEmbed_Providers_Twitter.yml
|
165
98
|
- spec/formatter/ducktype_backend_spec.rb
|
166
99
|
- spec/formatter/json/.DS_Store
|
167
100
|
- spec/formatter/json/jsongem_backend_spec.rb
|
@@ -172,11 +105,14 @@ files:
|
|
172
105
|
- spec/formatter_spec.rb
|
173
106
|
- spec/provider_discovery_spec.rb
|
174
107
|
- spec/provider_spec.rb
|
108
|
+
- spec/providers/slideshare_spec.rb
|
109
|
+
- spec/providers/twitter_spec.rb
|
175
110
|
- spec/providers_spec.rb
|
176
111
|
- spec/response_spec.rb
|
177
112
|
- spec/spec_helper.rb
|
178
113
|
- spec/spec_helper_examples.yml
|
179
|
-
|
114
|
+
- spec/support/shared_examples_for_providers.rb
|
115
|
+
homepage: https://github.com/ruby-oembed/ruby-oembed
|
180
116
|
licenses:
|
181
117
|
- MIT
|
182
118
|
metadata: {}
|
@@ -185,7 +121,7 @@ rdoc_options:
|
|
185
121
|
- "--main"
|
186
122
|
- README.rdoc
|
187
123
|
- "--title"
|
188
|
-
- ruby-oembed-0.
|
124
|
+
- ruby-oembed-0.13.1
|
189
125
|
- "--inline-source"
|
190
126
|
- "--exclude"
|
191
127
|
- tasks
|
@@ -203,14 +139,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
139
|
- !ruby/object:Gem::Version
|
204
140
|
version: '0'
|
205
141
|
requirements: []
|
206
|
-
|
207
|
-
rubygems_version: 2.4.7
|
142
|
+
rubygems_version: 3.0.3
|
208
143
|
signing_key:
|
209
|
-
specification_version:
|
144
|
+
specification_version: 4
|
210
145
|
summary: oEmbed for Ruby
|
211
146
|
test_files:
|
212
147
|
- spec/cassettes/OEmbed_Provider.yml
|
213
148
|
- spec/cassettes/OEmbed_ProviderDiscovery.yml
|
149
|
+
- spec/cassettes/OEmbed_Providers_Slideshare.yml
|
150
|
+
- spec/cassettes/OEmbed_Providers_Twitter.yml
|
214
151
|
- spec/formatter/ducktype_backend_spec.rb
|
215
152
|
- spec/formatter/json/.DS_Store
|
216
153
|
- spec/formatter/json/jsongem_backend_spec.rb
|
@@ -221,7 +158,10 @@ test_files:
|
|
221
158
|
- spec/formatter_spec.rb
|
222
159
|
- spec/provider_discovery_spec.rb
|
223
160
|
- spec/provider_spec.rb
|
161
|
+
- spec/providers/slideshare_spec.rb
|
162
|
+
- spec/providers/twitter_spec.rb
|
224
163
|
- spec/providers_spec.rb
|
225
164
|
- spec/response_spec.rb
|
226
165
|
- spec/spec_helper.rb
|
227
166
|
- spec/spec_helper_examples.yml
|
167
|
+
- spec/support/shared_examples_for_providers.rb
|