oembed 0.1.0 → 0.1.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 +7 -0
- data/.travis.yml +7 -3
- data/LICENSE +1 -1
- data/README.md +39 -16
- data/Rakefile +8 -1
- data/lib/oembed.rb +3 -28
- data/lib/oembed/client.rb +3 -0
- data/lib/oembed/errors.rb +23 -0
- data/lib/oembed/http.rb +4 -1
- data/lib/oembed/parser.rb +3 -0
- data/lib/oembed/version.rb +1 -1
- data/lib/oembed/xml_parser.rb +2 -0
- data/oembed.gemspec +8 -6
- data/spec/oembed/client_spec.rb +10 -6
- data/spec/oembed/http_spec.rb +19 -3
- data/spec/oembed/parser_spec.rb +2 -2
- data/spec/oembed/uri_spec.rb +2 -2
- data/spec/oembed/xml_parser_spec.rb +5 -3
- data/spec/oembed_spec.rb +2 -2
- data/spec/spec_helper.rb +25 -14
- metadata +52 -37
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 19ab3e5fdab3cc390e18712c6d26d5bab0338dd5
|
4
|
+
data.tar.gz: 231c4cd3b7c6b17f56be151951ebc3ef6aba999b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2d78ac99468c9c42c327501fe6c33734f489cb9a98919d2f4cbaa170a5acc28ca505ed7b272e95e92069d9466861c14cb0174ab2367042ca4237538de1e77328
|
7
|
+
data.tar.gz: 855b0578f055d9af46da9364c56227541acf2c4ddc4fe8127d7529ef264e43d6fbccf742c2edcc37e976bed16a92e08017597cae5aa0958115899d1e57590732
|
data/.travis.yml
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# oembed gem
|
2
|
+
[](http://travis-ci.org/soulim/oembed) [](https://codeclimate.com/github/soulim/oembed)
|
2
3
|
|
3
4
|
[**oEmbed**](http://oembed.com/) is a format for allowing an embedded representation of a URL on third
|
4
5
|
party sites. The simple API allows a website to display embedded content
|
@@ -35,12 +36,12 @@ You have to do a few things to build an oEmbed client with `oembed` gem.
|
|
35
36
|
a string with URI of oEmbed endpoint.
|
36
37
|
|
37
38
|
Lets start with a simple example. It will be a client for the awesome
|
38
|
-
[Speaker Deck](http://speakerdeck.com).
|
39
|
+
[Speaker Deck](http://speakerdeck.com). Note that we call the service class NameApi - this is to avoid clashing with gems (such as twitter) that may have classes named after the service.
|
39
40
|
|
40
41
|
```ruby
|
41
42
|
require 'oembed'
|
42
43
|
|
43
|
-
class
|
44
|
+
class SpeakerDeckApi
|
44
45
|
include Oembed::Client
|
45
46
|
|
46
47
|
# Read more about endpoint on https://speakerdeck.com/faq#oembed
|
@@ -53,7 +54,7 @@ end
|
|
53
54
|
That's it. Now you can use a method `#fetch` to get data from oEmbed enpoint of Speaker Deck.
|
54
55
|
|
55
56
|
```ruby
|
56
|
-
client =
|
57
|
+
client = SpeakerDeckApi.new
|
57
58
|
client.fetch('https://speakerdeck.com/u/soulim/p/rails')
|
58
59
|
```
|
59
60
|
|
@@ -63,13 +64,13 @@ The method `#fetch` will return a hash with oEmded data.
|
|
63
64
|
{
|
64
65
|
"type" => "rich",
|
65
66
|
"version" => 1.0,
|
66
|
-
"provider_name" => "Speaker Deck",
|
67
|
+
"provider_name" => "Speaker Deck",
|
67
68
|
"provider_url" => "https://speakerdeck.com/",
|
68
|
-
"title" => "Локализация приложения на базе Rails. Личный опыт и советы",
|
69
|
-
"author_name" => "Alex Soulim",
|
69
|
+
"title" => "Локализация приложения на базе Rails. Личный опыт и советы",
|
70
|
+
"author_name" => "Alex Soulim",
|
70
71
|
"author_url" => "https://speakerdeck.com/u/soulim",
|
71
72
|
"html" => "<iframe style=\"border:0; padding:0; margin:0; background:transparent;\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" frameBorder=\"0\" allowTransparency=\"true\" id=\"presentation_frame_4fd3874cebb4b2001f0277e5\" src=\"//speakerdeck.com/embed/4fd3874cebb4b2001f0277e5\" width=\"710\" height=\"596\"></iframe>\n",
|
72
|
-
"width" => 710,
|
73
|
+
"width" => 710,
|
73
74
|
"height" => 596
|
74
75
|
}
|
75
76
|
```
|
@@ -80,7 +81,7 @@ client for XML endpoint.
|
|
80
81
|
```ruby
|
81
82
|
require 'oembed'
|
82
83
|
|
83
|
-
class
|
84
|
+
class FlickrApi
|
84
85
|
include Oembed::Client
|
85
86
|
|
86
87
|
def endpoint_uri
|
@@ -88,7 +89,7 @@ class Flickr
|
|
88
89
|
end
|
89
90
|
end
|
90
91
|
|
91
|
-
client =
|
92
|
+
client = FlickrApi.new
|
92
93
|
client.fetch('http://www.flickr.com/photos/alex_soulim/3593916989')
|
93
94
|
```
|
94
95
|
|
@@ -101,7 +102,7 @@ It will return:
|
|
101
102
|
"author_name"=>"Alex Soulim", "author_url"=>"http://www.flickr.com/photos/alex_soulim/",
|
102
103
|
"width"=>"683",
|
103
104
|
"height"=>"1024",
|
104
|
-
"url"=>"http://farm4.staticflickr.com/3618/3593916989_3d8aa991ea_b.jpg",
|
105
|
+
"url"=>"http://farm4.staticflickr.com/3618/3593916989_3d8aa991ea_b.jpg",
|
105
106
|
"web_page"=>"http://www.flickr.com/photos/alex_soulim/3593916989/",
|
106
107
|
"thumbnail_url"=>"http://farm4.staticflickr.com/3618/3593916989_3d8aa991ea_s.jpg",
|
107
108
|
"thumbnail_width"=>"75",
|
@@ -122,7 +123,7 @@ Instagram and use `:maxwidth` parameter.
|
|
122
123
|
```ruby
|
123
124
|
require 'oembed'
|
124
125
|
|
125
|
-
class
|
126
|
+
class InstagramApi
|
126
127
|
include Oembed::Client
|
127
128
|
|
128
129
|
def endpoint_uri
|
@@ -130,10 +131,31 @@ class Instagram
|
|
130
131
|
end
|
131
132
|
end
|
132
133
|
|
133
|
-
client =
|
134
|
+
client = InstagramApi.new
|
134
135
|
client.fetch('http://instagr.am/p/BUG/', maxwidth: 300)
|
135
136
|
```
|
136
137
|
|
138
|
+
If you need to always customise the fetch with additional parameters this can be done by providing a fetch method in the service class. In this example we are adding a maxwidth parameter to the request.
|
139
|
+
|
140
|
+
```ruby
|
141
|
+
require 'oembed'
|
142
|
+
|
143
|
+
class YoutubeApi
|
144
|
+
include Oembed::Client
|
145
|
+
|
146
|
+
def endpoint_uri
|
147
|
+
'https://www.youtube.com/oembed'
|
148
|
+
end
|
149
|
+
|
150
|
+
def fetch(url, options={})
|
151
|
+
super url, options.merge(maxwidth: 620)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
client = YoutubeApi.new
|
156
|
+
client.fetch('https://www.youtube.com/watch?v=_DRNgL76OLc')
|
157
|
+
```
|
158
|
+
|
137
159
|
## Contributing
|
138
160
|
|
139
161
|
1. Fork it
|
@@ -142,9 +164,10 @@ client.fetch('http://instagr.am/p/BUG/', maxwidth: 300)
|
|
142
164
|
4. Push to the branch (`git push origin my-new-feature`)
|
143
165
|
5. Create new Pull Request
|
144
166
|
|
145
|
-
## Supported Ruby versions
|
167
|
+
## Supported Ruby versions
|
146
168
|
|
147
169
|
This library is tested against the following Ruby implementations:
|
148
170
|
|
149
|
-
- Ruby 1
|
150
|
-
- Ruby
|
171
|
+
- MRI Ruby 2.1
|
172
|
+
- MRI Ruby 2.0
|
173
|
+
- JRuby
|
data/Rakefile
CHANGED
data/lib/oembed.rb
CHANGED
@@ -1,37 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require 'net/http'
|
3
|
-
require 'json'
|
4
|
-
require 'uri'
|
5
|
-
require 'rexml/document'
|
6
2
|
|
7
3
|
module Oembed
|
8
|
-
class Error < StandardError; end
|
9
|
-
|
10
|
-
class ResponseError < Error
|
11
|
-
attr_reader :response
|
12
|
-
|
13
|
-
def initialize(response)
|
14
|
-
@response = response
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
class RedirectionTooDeepError < Error; end
|
19
|
-
|
20
|
-
class ParserError < Error
|
21
|
-
attr_reader :original
|
22
|
-
|
23
|
-
def initialize(original)
|
24
|
-
@original = original
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class NotSupportedFormatError < Error; end
|
29
|
-
|
30
4
|
autoload :Client, 'oembed/client'
|
31
|
-
autoload :Parser, 'oembed/parser'
|
32
|
-
autoload :XmlParser, 'oembed/xml_parser'
|
33
5
|
autoload :Http, 'oembed/http'
|
6
|
+
autoload :Parser, 'oembed/parser'
|
34
7
|
autoload :Uri, 'oembed/uri'
|
8
|
+
autoload :XmlParser, 'oembed/xml_parser'
|
35
9
|
end
|
36
10
|
|
11
|
+
require 'oembed/errors'
|
37
12
|
require 'oembed/version'
|
data/lib/oembed/client.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Oembed
|
2
|
+
class Error < StandardError; end
|
3
|
+
|
4
|
+
class ResponseError < Error
|
5
|
+
attr_reader :response
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
@response = response
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class RedirectionTooDeepError < Error; end
|
13
|
+
|
14
|
+
class ParserError < Error
|
15
|
+
attr_reader :original
|
16
|
+
|
17
|
+
def initialize(original)
|
18
|
+
@original = original
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class NotSupportedFormatError < Error; end
|
23
|
+
end
|
data/lib/oembed/http.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
require 'net/http'
|
3
|
+
require 'oembed/errors'
|
4
|
+
require 'uri'
|
2
5
|
|
3
6
|
module Oembed
|
4
7
|
class Http
|
@@ -33,7 +36,7 @@ module Oembed
|
|
33
36
|
|
34
37
|
def follow_redirection(location, limit)
|
35
38
|
if limit > 0
|
36
|
-
get(location, limit - 1)
|
39
|
+
get(location, limit: limit - 1)
|
37
40
|
else
|
38
41
|
raise Oembed::RedirectionTooDeepError, 'HTTP redirects too deep'
|
39
42
|
end
|
data/lib/oembed/parser.rb
CHANGED
data/lib/oembed/version.rb
CHANGED
data/lib/oembed/xml_parser.rb
CHANGED
data/oembed.gemspec
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
require File.expand_path('../lib/oembed/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors = ["Alex
|
6
|
-
gem.email = ["
|
7
|
-
gem.description = %q{A slim library to work with oEmbed format.}
|
5
|
+
gem.authors = ["Alex Sulim"]
|
6
|
+
gem.email = ["hello@sul.im"]
|
7
|
+
gem.description = %q{A slim library to work with oEmbed format. It has no external dependencies at runtime. All you need to have is Ruby itself.}
|
8
8
|
gem.summary = %q{A slim library to work with oEmbed format.}
|
9
9
|
gem.homepage = "http://soulim.github.com/oembed"
|
10
|
+
gem.license = 'MIT'
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -15,7 +16,8 @@ Gem::Specification.new do |gem|
|
|
15
16
|
gem.require_paths = ["lib"]
|
16
17
|
gem.version = Oembed::VERSION
|
17
18
|
|
18
|
-
gem.add_development_dependency '
|
19
|
-
gem.add_development_dependency '
|
20
|
-
gem.add_development_dependency '
|
19
|
+
gem.add_development_dependency 'fakeweb', '~> 1.3'
|
20
|
+
gem.add_development_dependency 'rake', '~> 11.2', '>= 11.2.2'
|
21
|
+
gem.add_development_dependency 'rspec', '~> 3.5'
|
22
|
+
gem.add_development_dependency 'simplecov', '~> 0.12.0'
|
21
23
|
end
|
data/spec/oembed/client_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'oembed/client'
|
2
2
|
|
3
|
-
describe Oembed::Client do
|
3
|
+
RSpec.describe Oembed::Client do
|
4
4
|
let(:http) { double('Http', get: 'foo') }
|
5
5
|
let(:endpoint_uri) { 'http://example.com/oembed' }
|
6
6
|
let(:resource_uri) { 'http://example.com/foo' }
|
@@ -18,12 +18,12 @@ describe Oembed::Client do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'should fetch the date using self.fetch!' do
|
21
|
-
subject.
|
21
|
+
expect(subject).to receive(:fetch!)
|
22
22
|
subject.fetch(resource_uri)
|
23
23
|
end
|
24
24
|
|
25
25
|
context 'when there is an error during request' do
|
26
|
-
before { http.
|
26
|
+
before { allow(http).to receive(:get).and_raise(Oembed::Error) }
|
27
27
|
|
28
28
|
it 'should return nil' do
|
29
29
|
expect(subject.fetch(resource_uri)).to be_nil
|
@@ -37,12 +37,16 @@ describe Oembed::Client do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'should prepare request URI' do
|
40
|
-
Oembed::Uri.
|
40
|
+
expect(Oembed::Uri).to receive(:new).with(
|
41
|
+
endpoint_uri,
|
42
|
+
resource_uri,
|
43
|
+
width: 100
|
44
|
+
)
|
41
45
|
subject.fetch!(resource_uri, width: 100)
|
42
46
|
end
|
43
47
|
|
44
48
|
it 'should get oEmbed data via HTTP client' do
|
45
|
-
http.
|
49
|
+
expect(http).to receive(:get)
|
46
50
|
subject.fetch!(resource_uri)
|
47
51
|
end
|
48
52
|
end
|
data/spec/oembed/http_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require 'spec_helper'
|
2
1
|
require 'fakeweb'
|
2
|
+
require 'oembed/http'
|
3
3
|
|
4
|
-
describe Oembed::Http do
|
4
|
+
RSpec.describe Oembed::Http do
|
5
5
|
let(:parser) { double('Parser', parse: 'foo') }
|
6
6
|
let(:uri) { 'http://example.com/foo' }
|
7
7
|
|
@@ -16,7 +16,7 @@ describe Oembed::Http do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'should parse response body' do
|
19
|
-
parser.
|
19
|
+
expect(parser).to receive(:parse)
|
20
20
|
subject.get(uri)
|
21
21
|
end
|
22
22
|
|
@@ -25,6 +25,22 @@ describe Oembed::Http do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
context 'when response is a redirect, followed by a redirect' do
|
29
|
+
let(:redirect_uri_one) { 'http://example.com/redirect_one' }
|
30
|
+
let(:redirect_uri_two) { 'http://example.com/redirect_two' }
|
31
|
+
|
32
|
+
before do
|
33
|
+
FakeWeb.register_uri(:get, uri, body: 'Redirect', status: [301, 'Moved Permanently'], location: redirect_uri_one)
|
34
|
+
FakeWeb.register_uri(:get, redirect_uri_one, body: 'Redirect', status: [301, 'Moved Permanently'], location: redirect_uri_two)
|
35
|
+
FakeWeb.register_uri(:get, redirect_uri_two, body: 'OK', status: [200, 'OK'])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should parse response body, eventually' do
|
39
|
+
expect(parser).to receive(:parse)
|
40
|
+
subject.get(uri)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
28
44
|
context 'when amount of redirects is above the limit' do
|
29
45
|
before do
|
30
46
|
FakeWeb.register_uri(:get, uri, body: 'Redirect', status: [301, 'Moved Permanently'])
|
data/spec/oembed/parser_spec.rb
CHANGED
data/spec/oembed/uri_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'oembed/xml_parser'
|
2
2
|
|
3
|
-
describe Oembed::XmlParser do
|
3
|
+
RSpec.describe Oembed::XmlParser do
|
4
4
|
let(:source) do
|
5
5
|
%q(<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
6
6
|
<oembed>
|
@@ -19,7 +19,9 @@ describe Oembed::XmlParser do
|
|
19
19
|
|
20
20
|
context 'when there is an exception during parsing' do
|
21
21
|
before do
|
22
|
-
REXML::Document.
|
22
|
+
allow(REXML::Document).to receive(:new).and_raise(
|
23
|
+
REXML::ParseException.new('error')
|
24
|
+
)
|
23
25
|
end
|
24
26
|
|
25
27
|
it 'should raise Oembed::ParserError' do
|
data/spec/oembed_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
require 'simplecov'
|
2
2
|
|
3
3
|
SimpleCov.start
|
4
|
+
|
4
5
|
RSpec.configure do |config|
|
5
|
-
config.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
config.
|
14
|
-
|
15
|
-
|
16
|
-
config.
|
17
|
-
end
|
6
|
+
config.expect_with :rspec do |expectations|
|
7
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
8
|
+
end
|
9
|
+
|
10
|
+
config.mock_with :rspec do |mocks|
|
11
|
+
mocks.verify_partial_doubles = true
|
12
|
+
end
|
13
|
+
|
14
|
+
config.filter_run :focus
|
15
|
+
config.run_all_when_everything_filtered = true
|
16
|
+
|
17
|
+
config.disable_monkey_patching!
|
18
18
|
|
19
|
-
|
19
|
+
config.warnings = true
|
20
|
+
|
21
|
+
if config.files_to_run.one?
|
22
|
+
config.default_formatter = 'doc'
|
23
|
+
end
|
24
|
+
|
25
|
+
config.profile_examples = 10
|
26
|
+
|
27
|
+
config.order = :random
|
28
|
+
|
29
|
+
Kernel.srand config.seed
|
30
|
+
end
|
metadata
CHANGED
@@ -1,80 +1,95 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oembed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
- Alex
|
7
|
+
- Alex Sulim
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-08-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: fakeweb
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '1.3'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: '1.3'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: '11.2'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 11.2.2
|
38
37
|
type: :development
|
39
38
|
prerelease: false
|
40
39
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
40
|
requirements:
|
43
|
-
- - ~>
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '11.2'
|
44
|
+
- - ">="
|
44
45
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
+
version: 11.2.2
|
46
47
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
48
|
+
name: rspec
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.5'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.5'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: simplecov
|
48
63
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
64
|
requirements:
|
51
|
-
- - ~>
|
65
|
+
- - "~>"
|
52
66
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
67
|
+
version: 0.12.0
|
54
68
|
type: :development
|
55
69
|
prerelease: false
|
56
70
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
71
|
requirements:
|
59
|
-
- - ~>
|
72
|
+
- - "~>"
|
60
73
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
description: A slim library to work with oEmbed format.
|
74
|
+
version: 0.12.0
|
75
|
+
description: A slim library to work with oEmbed format. It has no external dependencies
|
76
|
+
at runtime. All you need to have is Ruby itself.
|
63
77
|
email:
|
64
|
-
-
|
78
|
+
- hello@sul.im
|
65
79
|
executables: []
|
66
80
|
extensions: []
|
67
81
|
extra_rdoc_files: []
|
68
82
|
files:
|
69
|
-
- .gitignore
|
70
|
-
- .rspec
|
71
|
-
- .travis.yml
|
83
|
+
- ".gitignore"
|
84
|
+
- ".rspec"
|
85
|
+
- ".travis.yml"
|
72
86
|
- Gemfile
|
73
87
|
- LICENSE
|
74
88
|
- README.md
|
75
89
|
- Rakefile
|
76
90
|
- lib/oembed.rb
|
77
91
|
- lib/oembed/client.rb
|
92
|
+
- lib/oembed/errors.rb
|
78
93
|
- lib/oembed/http.rb
|
79
94
|
- lib/oembed/parser.rb
|
80
95
|
- lib/oembed/uri.rb
|
@@ -89,28 +104,28 @@ files:
|
|
89
104
|
- spec/oembed_spec.rb
|
90
105
|
- spec/spec_helper.rb
|
91
106
|
homepage: http://soulim.github.com/oembed
|
92
|
-
licenses:
|
107
|
+
licenses:
|
108
|
+
- MIT
|
109
|
+
metadata: {}
|
93
110
|
post_install_message:
|
94
111
|
rdoc_options: []
|
95
112
|
require_paths:
|
96
113
|
- lib
|
97
114
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
115
|
requirements:
|
100
|
-
- -
|
116
|
+
- - ">="
|
101
117
|
- !ruby/object:Gem::Version
|
102
118
|
version: '0'
|
103
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
120
|
requirements:
|
106
|
-
- -
|
121
|
+
- - ">="
|
107
122
|
- !ruby/object:Gem::Version
|
108
123
|
version: '0'
|
109
124
|
requirements: []
|
110
125
|
rubyforge_project:
|
111
|
-
rubygems_version:
|
126
|
+
rubygems_version: 2.5.1
|
112
127
|
signing_key:
|
113
|
-
specification_version:
|
128
|
+
specification_version: 4
|
114
129
|
summary: A slim library to work with oEmbed format.
|
115
130
|
test_files:
|
116
131
|
- spec/oembed/client_spec.rb
|