oembed 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,5 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.9.2"
4
- - "1.9.3"
5
- script: bundle exec rspec spec
3
+ - 2.0
4
+ - 2.1
5
+ - 2.2
6
+ - 2.3.0
7
+ - ruby-head
8
+ - jruby
9
+ before_install: gem update bundler
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Alex Soulim
1
+ Copyright (c) 2012 Alex Sulim
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # Introductions
1
+ # oembed gem
2
+ [![Build Status](http://img.shields.io/travis/soulim/oembed.svg?style=flat)](http://travis-ci.org/soulim/oembed) [![Code Climate](http://img.shields.io/codeclimate/github/soulim/oembed.svg?style=flat)](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 SpeakerDeck
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 = SpeakerDeck.new
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,q
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 Flickr
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 = Flickr.new
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 Instagram
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 = Instagram.new
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 [![Build Status](https://secure.travis-ci.org/soulim/oembed.png)](http://travis-ci.org/soulim/oembed) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/soulim/oembed)
167
+ ## Supported Ruby versions
146
168
 
147
169
  This library is tested against the following Ruby implementations:
148
170
 
149
- - Ruby 1.9.2
150
- - Ruby 1.9.3
171
+ - MRI Ruby 2.1
172
+ - MRI Ruby 2.0
173
+ - JRuby
data/Rakefile CHANGED
@@ -1,2 +1,9 @@
1
1
  #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new do |task|
6
+ task.ruby_opts = '-I lib'
7
+ end
8
+
9
+ task default: :spec
@@ -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'
@@ -1,4 +1,7 @@
1
1
  # encoding: utf-8
2
+ require 'oembed/errors'
3
+ require 'oembed/http'
4
+ require 'oembed/uri'
2
5
 
3
6
  module Oembed
4
7
  module Client
@@ -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
@@ -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
@@ -1,4 +1,7 @@
1
1
  # encoding: utf-8
2
+ require 'json'
3
+ require 'oembed/errors'
4
+ require 'oembed/xml_parser'
2
5
 
3
6
  module Oembed
4
7
  class Parser
@@ -1,3 +1,3 @@
1
1
  module Oembed
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,4 +1,6 @@
1
1
  # encoding: utf-8
2
+ require 'oembed/errors'
3
+ require 'rexml/document'
2
4
 
3
5
  module Oembed
4
6
  class XmlParser
@@ -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 Soulim"]
6
- gem.email = ["soulim@gmail.com"]
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 'rspec', '~> 2.11.0'
19
- gem.add_development_dependency 'simplecov', '~> 0.6.4'
20
- gem.add_development_dependency 'fakeweb', '~> 1.3.0'
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
@@ -1,6 +1,6 @@
1
- require 'spec_helper'
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.should_receive(:fetch!)
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.stub(:get).and_raise(Oembed::Error) }
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.should_receive(:new).with(endpoint_uri, resource_uri, width: 100)
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.should_receive(:get)
49
+ expect(http).to receive(:get)
46
50
  subject.fetch!(resource_uri)
47
51
  end
48
52
  end
@@ -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.should_receive(:parse)
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'])
@@ -1,6 +1,6 @@
1
- require 'spec_helper'
1
+ require 'oembed/parser'
2
2
 
3
- describe Oembed::Parser do
3
+ RSpec.describe Oembed::Parser do
4
4
  let(:body) { { 'foo' => 'bar', 'baz' => "1" } }
5
5
  let(:json_body) { '{"foo":"bar","baz":"1"}' }
6
6
  let(:xml_body) do
@@ -1,6 +1,6 @@
1
- require 'spec_helper'
1
+ require 'oembed/uri'
2
2
 
3
- describe Oembed::Uri do
3
+ RSpec.describe Oembed::Uri do
4
4
  let(:endpoint_uri) { 'http://example.com/oembed' }
5
5
  let(:resource_uri) { 'http://example.com/foo' }
6
6
 
@@ -1,6 +1,6 @@
1
- require 'spec_helper'
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.stub(:new).and_raise(REXML::ParseException.new('error'))
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
@@ -1,5 +1,5 @@
1
- require 'spec_helper'
2
1
  require 'oembed'
3
2
 
4
- describe Oembed do
3
+ RSpec.describe Oembed do
4
+ pending
5
5
  end
@@ -1,19 +1,30 @@
1
1
  require 'simplecov'
2
2
 
3
3
  SimpleCov.start
4
+
4
5
  RSpec.configure do |config|
5
- config.treat_symbols_as_metadata_keys_with_true_values = true
6
- # config.run_all_when_everything_filtered = true
7
- # config.filter_run :focus
8
-
9
- # Run specs in random order to surface order dependencies. If you find an
10
- # order dependency and want to debug it, you can fix the order by providing
11
- # the seed, which is printed after each run.
12
- # --seed 1234
13
- config.order = 'random'
14
-
15
- # Disable should syntax
16
- config.expect_with(:rspec) { |c| c.syntax = :expect }
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
- require 'oembed'
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.0
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
- - Alex Soulim
7
+ - Alex Sulim
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-16 00:00:00.000000000 Z
11
+ date: 2016-08-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rspec
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: 2.11.0
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: 2.11.0
26
+ version: '1.3'
30
27
  - !ruby/object:Gem::Dependency
31
- name: simplecov
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: 0.6.4
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: 0.6.4
46
+ version: 11.2.2
46
47
  - !ruby/object:Gem::Dependency
47
- name: fakeweb
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: 1.3.0
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: 1.3.0
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
- - soulim@gmail.com
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: 1.8.24
126
+ rubygems_version: 2.5.1
112
127
  signing_key:
113
- specification_version: 3
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