oh-my-embed 1.0.0
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/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +164 -0
- data/Rakefile +6 -0
- data/bin/console +17 -0
- data/bin/setup +8 -0
- data/lib/oh_my_embed.rb +52 -0
- data/lib/oh_my_embed/crawler.rb +77 -0
- data/lib/oh_my_embed/provider.rb +116 -0
- data/lib/oh_my_embed/providers/facebook_post.rb +20 -0
- data/lib/oh_my_embed/providers/facebook_video.rb +15 -0
- data/lib/oh_my_embed/providers/flickr.rb +15 -0
- data/lib/oh_my_embed/providers/instagram.rb +15 -0
- data/lib/oh_my_embed/providers/kickstarter.rb +15 -0
- data/lib/oh_my_embed/providers/slideshare.rb +19 -0
- data/lib/oh_my_embed/providers/soundcloud.rb +14 -0
- data/lib/oh_my_embed/providers/spotify.rb +17 -0
- data/lib/oh_my_embed/providers/twitter.rb +14 -0
- data/lib/oh_my_embed/providers/youtube.rb +18 -0
- data/lib/oh_my_embed/response.rb +110 -0
- data/lib/oh_my_embed/version.rb +3 -0
- data/oh-my-embed.gemspec +33 -0
- data/spec/fixtures/vcr_cassettes/facebook_posts.yml +65 -0
- data/spec/fixtures/vcr_cassettes/facebook_videos.yml +65 -0
- data/spec/fixtures/vcr_cassettes/flickr.yml +90 -0
- data/spec/fixtures/vcr_cassettes/instagram.yml +75 -0
- data/spec/fixtures/vcr_cassettes/kickstarter.yml +65 -0
- data/spec/fixtures/vcr_cassettes/slideshare.yml +87 -0
- data/spec/fixtures/vcr_cassettes/soundcloud.yml +57 -0
- data/spec/fixtures/vcr_cassettes/spotify.yml +44 -0
- data/spec/fixtures/vcr_cassettes/twitter.yml +66 -0
- data/spec/fixtures/vcr_cassettes/youtube.yml +57 -0
- data/spec/oh_my_embed/crawler_spec.rb +99 -0
- data/spec/oh_my_embed/provider_spec.rb +103 -0
- data/spec/oh_my_embed/providers/facebook_post_spec.rb +40 -0
- data/spec/oh_my_embed/providers/facebook_video_spec.rb +40 -0
- data/spec/oh_my_embed/providers/flickr_spec.rb +44 -0
- data/spec/oh_my_embed/providers/instagram_spec.rb +44 -0
- data/spec/oh_my_embed/providers/kickstarter_spec.rb +44 -0
- data/spec/oh_my_embed/providers/slideshare_spec.rb +44 -0
- data/spec/oh_my_embed/providers/soundcloud_spec.rb +44 -0
- data/spec/oh_my_embed/providers/spotify_spec.rb +41 -0
- data/spec/oh_my_embed/providers/twitter_spec.rb +40 -0
- data/spec/oh_my_embed/providers/youtube_spec.rb +44 -0
- data/spec/oh_my_embed/response_spec.rb +174 -0
- data/spec/oh_my_embed_spec.rb +7 -0
- data/spec/spec_helper.rb +17 -0
- metadata +234 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OhMyEmbed::Providers::Slideshare do
|
4
|
+
let(:provider) { OhMyEmbed::Providers::Slideshare }
|
5
|
+
let(:content_url) { 'http://de.slideshare.net/haraldf/business-quotes-for-2011' }
|
6
|
+
|
7
|
+
it 'the content_url matches the schema' do
|
8
|
+
expect(provider.regex).to match content_url
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'fetching' do
|
12
|
+
it 'returns a rich response with required attributes' do
|
13
|
+
VCR.use_cassette('slideshare') do
|
14
|
+
response = provider.fetch(content_url)
|
15
|
+
|
16
|
+
expect(response).to be_a OhMyEmbed::Response
|
17
|
+
|
18
|
+
expect(response.type).to eq :rich
|
19
|
+
|
20
|
+
expect(response.provider_name).to eq 'SlideShare'
|
21
|
+
expect(response.provider_url).to eq 'http://www.slideshare.net'
|
22
|
+
|
23
|
+
expect(response.url).to eq content_url
|
24
|
+
|
25
|
+
expect(response.title).to eq 'Business Quotes for 2011'
|
26
|
+
|
27
|
+
expect(response.author).to eq({
|
28
|
+
name: 'Harald Felgner (PhD)',
|
29
|
+
url: 'http://www.slideshare.net/haraldf',
|
30
|
+
})
|
31
|
+
|
32
|
+
expect(response.thumbnail).to eq({
|
33
|
+
url: '//cdn.slidesharecdn.com/ss_thumbnails/110103quotes2010-12-110103073149-phpapp01-thumbnail.jpg?cb=1294104671',
|
34
|
+
width: 170,
|
35
|
+
height: 128,
|
36
|
+
})
|
37
|
+
|
38
|
+
expect(response.embed[:html]).to be_a String
|
39
|
+
expect(response.embed[:width]).to eq 425
|
40
|
+
expect(response.embed[:height]).to eq 355
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OhMyEmbed::Providers::Soundcloud do
|
4
|
+
let(:provider) { OhMyEmbed::Providers::Soundcloud }
|
5
|
+
let(:content_url) { 'https://soundcloud.com/forss/flickermood' }
|
6
|
+
|
7
|
+
it 'the content_url matches the schema' do
|
8
|
+
expect(provider.regex).to match content_url
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'fetching' do
|
12
|
+
it 'returns a rich response with required attributes' do
|
13
|
+
VCR.use_cassette('soundcloud') do
|
14
|
+
response = provider.fetch(content_url)
|
15
|
+
|
16
|
+
expect(response).to be_a OhMyEmbed::Response
|
17
|
+
|
18
|
+
expect(response.type).to eq :rich
|
19
|
+
|
20
|
+
expect(response.provider_name).to eq 'SoundCloud'
|
21
|
+
expect(response.provider_url).to eq 'http://soundcloud.com'
|
22
|
+
|
23
|
+
expect(response.url).to eq content_url
|
24
|
+
|
25
|
+
expect(response.title).to eq 'Flickermood by Forss'
|
26
|
+
|
27
|
+
expect(response.author).to eq({
|
28
|
+
name: 'Forss',
|
29
|
+
url: 'http://soundcloud.com/forss',
|
30
|
+
})
|
31
|
+
|
32
|
+
expect(response.thumbnail).to eq({
|
33
|
+
url: 'http://i1.sndcdn.com/artworks-000067273316-smsiqx-t500x500.jpg',
|
34
|
+
width: nil,
|
35
|
+
height: nil,
|
36
|
+
})
|
37
|
+
|
38
|
+
expect(response.embed[:html]).to be_a String
|
39
|
+
expect(response.embed[:width]).to eq '100%'
|
40
|
+
expect(response.embed[:height]).to eq 400
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OhMyEmbed::Providers::Spotify do
|
4
|
+
let(:provider) { OhMyEmbed::Providers::Spotify }
|
5
|
+
let(:content_url) { 'http://open.spotify.com/track/298gs9ATwr2rD9tGYJKlQR' }
|
6
|
+
|
7
|
+
it 'the content_url matches the schema' do
|
8
|
+
expect(provider.regex).to match content_url
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'fetching' do
|
12
|
+
it 'returns a rich response with required attributes' do
|
13
|
+
VCR.use_cassette('spotify') do
|
14
|
+
response = provider.fetch(content_url)
|
15
|
+
|
16
|
+
expect(response).to be_a OhMyEmbed::Response
|
17
|
+
|
18
|
+
expect(response.type).to eq :rich
|
19
|
+
|
20
|
+
expect(response.provider_name).to eq 'Spotify'
|
21
|
+
expect(response.provider_url).to eq 'https://www.spotify.com'
|
22
|
+
|
23
|
+
expect(response.url).to eq content_url
|
24
|
+
|
25
|
+
expect(response.title).to eq 'John De Sohn - Dance Our Tears Away - Radio Edit'
|
26
|
+
|
27
|
+
expect(response.author).to be nil
|
28
|
+
|
29
|
+
expect(response.thumbnail).to eq({
|
30
|
+
url: 'https://d3rt1990lpmkn.cloudfront.net/cover/35ff8ecde854e7c713dc4ffad2f31441e7bc1207',
|
31
|
+
width: 300,
|
32
|
+
height: 300,
|
33
|
+
})
|
34
|
+
|
35
|
+
expect(response.embed[:html]).to be_a String
|
36
|
+
expect(response.embed[:width]).to eq 300
|
37
|
+
expect(response.embed[:height]).to eq 380
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OhMyEmbed::Providers::Twitter do
|
4
|
+
let(:provider) { OhMyEmbed::Providers::Twitter }
|
5
|
+
let(:content_url) { 'https://twitter.com/Interior/status/507185938620219395' }
|
6
|
+
|
7
|
+
it 'the content_url matches the schema' do
|
8
|
+
expect(provider.regex).to match content_url
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'fetching' do
|
12
|
+
it 'returns a rich response with required attributes' do
|
13
|
+
VCR.use_cassette('twitter') do
|
14
|
+
response = provider.fetch(content_url)
|
15
|
+
|
16
|
+
expect(response).to be_a OhMyEmbed::Response
|
17
|
+
|
18
|
+
expect(response.type).to eq :rich
|
19
|
+
|
20
|
+
expect(response.provider_name).to eq 'Twitter'
|
21
|
+
expect(response.provider_url).to eq 'https://twitter.com'
|
22
|
+
|
23
|
+
expect(response.url).to eq content_url
|
24
|
+
|
25
|
+
expect(response.title).to be nil
|
26
|
+
|
27
|
+
expect(response.author).to eq({
|
28
|
+
name: 'US Dept of Interior',
|
29
|
+
url: 'https://twitter.com/Interior',
|
30
|
+
})
|
31
|
+
|
32
|
+
expect(response.thumbnail).to be nil
|
33
|
+
|
34
|
+
expect(response.embed[:html]).to be_a String
|
35
|
+
expect(response.embed[:width]).to eq 550
|
36
|
+
expect(response.embed[:height]).to be nil
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe OhMyEmbed::Providers::Youtube do
|
4
|
+
let(:provider) { OhMyEmbed::Providers::Youtube }
|
5
|
+
let(:content_url) { 'http://www.youtube.com/watch?v=EErY75MXYXI' }
|
6
|
+
|
7
|
+
it 'the content_url matches the schema' do
|
8
|
+
expect(provider.regex).to match content_url
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'fetching' do
|
12
|
+
it 'returns a video response with required attributes' do
|
13
|
+
VCR.use_cassette('youtube') do
|
14
|
+
response = provider.fetch(content_url)
|
15
|
+
|
16
|
+
expect(response).to be_a OhMyEmbed::Response
|
17
|
+
|
18
|
+
expect(response.type).to eq :video
|
19
|
+
|
20
|
+
expect(response.provider_name).to eq 'YouTube'
|
21
|
+
expect(response.provider_url).to eq 'https://www.youtube.com/'
|
22
|
+
|
23
|
+
expect(response.url).to eq content_url
|
24
|
+
|
25
|
+
expect(response.title).to eq 'Nyan Cat - 24 Hour Edition'
|
26
|
+
|
27
|
+
expect(response.author).to eq({
|
28
|
+
name: 'NyaAnimeParty',
|
29
|
+
url: 'https://www.youtube.com/user/NyaAnimeParty',
|
30
|
+
})
|
31
|
+
|
32
|
+
expect(response.thumbnail).to eq({
|
33
|
+
url: 'https://i.ytimg.com/vi/EErY75MXYXI/hqdefault.jpg',
|
34
|
+
width: 480,
|
35
|
+
height: 360,
|
36
|
+
})
|
37
|
+
|
38
|
+
expect(response.embed[:html]).to be_a String
|
39
|
+
expect(response.embed[:width]).to eq 459
|
40
|
+
expect(response.embed[:height]).to eq 344
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class ExampleProvider < OhMyEmbed::Provider
|
4
|
+
self.endpoint = 'https://www.example.com/api/oembed'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe OhMyEmbed::Response do
|
8
|
+
let(:response) do
|
9
|
+
OhMyEmbed::Response.new(
|
10
|
+
ExampleProvider,
|
11
|
+
'http://www.example.com/url/to/my/content',
|
12
|
+
{
|
13
|
+
'type' => 'rich',
|
14
|
+
'version' => '1.0',
|
15
|
+
'title' => 'My content',
|
16
|
+
'author_name' => 'John Doe',
|
17
|
+
'author_url' => 'http://www.example.com/users/john.doe',
|
18
|
+
'provider_name' => 'My awesome example provider',
|
19
|
+
'provider_url' => 'http://www.example.com',
|
20
|
+
'cache_age' => '3600',
|
21
|
+
'thumbnail_url' => 'http://www.example.com/images/my-content.png',
|
22
|
+
'thumbnail_width' => 200,
|
23
|
+
'thumbnail_height' => 200,
|
24
|
+
'url' => 'http://www.example.com/my/content',
|
25
|
+
'html' => '<iframe src="http://www.example.com/embed/my-content" />',
|
26
|
+
'width' => 640,
|
27
|
+
'height' => 480,
|
28
|
+
}
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#initialize' do
|
33
|
+
it 'holds the provider' do
|
34
|
+
expect(response.provider).to be ExampleProvider
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'holds the url' do
|
38
|
+
expect(response.url).to eq 'http://www.example.com/my/content'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'holds the attributes' do
|
42
|
+
expect(response.attributes).to be_a Hash
|
43
|
+
expect(response.attributes.keys).to match_array %w[ type version title author_name author_url provider_name provider_url cache_age thumbnail_url thumbnail_width thumbnail_height url html width height ]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#attribute' do
|
48
|
+
it 'fetch an attribute by symbol' do
|
49
|
+
expect(response.attribute(:title)).to eq 'My content'
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'fetch an attribute by string' do
|
53
|
+
expect(response.attribute('title')).to eq 'My content'
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'returns nil if attribute isn\'t present in attributes' do
|
57
|
+
expect(response.attribute('yolo')).to eq nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe '#type' do
|
62
|
+
it 'returns the symbolized value of the type attribute' do
|
63
|
+
expect(response.type).to eq :rich
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#provider_name' do
|
68
|
+
it 'returns the provider_name' do
|
69
|
+
expect(response.provider_name).to eq 'My awesome example provider'
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'returns the providers provider_name if provider name isn\'t set in the response data' do
|
73
|
+
response.attributes['provider_name'] = nil
|
74
|
+
expect(response.provider_name).to eq 'ExampleProvider'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '#provider_url' do
|
79
|
+
it 'returns the provider_url' do
|
80
|
+
expect(response.provider_url).to eq 'http://www.example.com'
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'returns the providers endpoint url if there is no provider_url in response data' do
|
84
|
+
response.attributes['provider_url'] = nil
|
85
|
+
expect(response.provider_url).to eq 'https://www.example.com/api/oembed'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe '#url' do
|
90
|
+
it 'returns the url' do
|
91
|
+
expect(response.url).to eq 'http://www.example.com/my/content'
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'returns the requestet content_url if there is no url in response data' do
|
95
|
+
response.attributes['url'] = nil
|
96
|
+
expect(response.url).to eq 'http://www.example.com/url/to/my/content'
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe '#title' do
|
101
|
+
it 'returns the title' do
|
102
|
+
expect(response.title).to eq 'My content'
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'returns nil if no title in response found' do
|
106
|
+
response.attributes['title'] = nil
|
107
|
+
expect(response.title).to be_nil
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe '#author' do
|
112
|
+
it 'returns an author hash' do
|
113
|
+
expect(response.author).to be_a Hash
|
114
|
+
end
|
115
|
+
it 'contains the author_name' do
|
116
|
+
expect(response.author[:name]).to eq 'John Doe'
|
117
|
+
end
|
118
|
+
it 'contains the author_url' do
|
119
|
+
expect(response.author[:url]).to eq 'http://www.example.com/users/john.doe'
|
120
|
+
end
|
121
|
+
it 'returns nil if author_name and author_url are nil' do
|
122
|
+
response.attributes['author_name'] = nil
|
123
|
+
response.attributes['author_url'] = nil
|
124
|
+
expect(response.author).to be nil
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe '#thumbnail' do
|
129
|
+
it 'returns a thumbnail hash' do
|
130
|
+
expect(response.thumbnail).to be_a Hash
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'contains the thumbnail_url' do
|
134
|
+
expect(response.thumbnail[:url]).to eq 'http://www.example.com/images/my-content.png'
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'contains the thumbnail_width' do
|
138
|
+
expect(response.thumbnail[:width]).to eq 200
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'contains the thumbnail_height' do
|
142
|
+
expect(response.thumbnail[:height]).to eq 200
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'returns nil if thumbnail_url is not in response data' do
|
146
|
+
response.attributes['thumbnail_url'] = nil
|
147
|
+
expect(response.thumbnail).to be nil
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe '#embed' do
|
152
|
+
it 'returns an embed hash' do
|
153
|
+
expect(response.embed).to be_a Hash
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'contains the html' do
|
157
|
+
expect(response.embed[:html]).to eq '<iframe src="http://www.example.com/embed/my-content" />'
|
158
|
+
expect(response.embed.has_key?(:url)).to eq false
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'contains the width' do
|
162
|
+
expect(response.embed[:width]).to eq 640
|
163
|
+
end
|
164
|
+
|
165
|
+
it 'contains the height' do
|
166
|
+
expect(response.embed[:height]).to eq 480
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'contains the url if html is not present in response data' do
|
170
|
+
response.attributes['html'] = nil
|
171
|
+
expect(response.embed[:url]).to eq 'http://www.example.com/my/content'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'codeclimate-test-reporter'
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
4
|
+
require 'simplecov'
|
5
|
+
require 'webmock/rspec'
|
6
|
+
require 'vcr'
|
7
|
+
|
8
|
+
VCR.configure do |config|
|
9
|
+
config.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
10
|
+
config.hook_into :webmock
|
11
|
+
config.ignore_hosts 'codeclimate.com'
|
12
|
+
end
|
13
|
+
|
14
|
+
SimpleCov.start
|
15
|
+
|
16
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
17
|
+
require 'oh_my_embed'
|
metadata
ADDED
@@ -0,0 +1,234 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oh-my-embed
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Axel Wahlen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.21
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.21
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 11.1.2
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 11.1.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.4.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.4.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.0.1
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.0.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: vcr
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.0.1
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.0.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.11.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.11.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: codeclimate-test-reporter
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.5.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.5.0
|
125
|
+
description: Simple gem to interact with oauth providers, for more informations see
|
126
|
+
spec at http://www.oembed.com
|
127
|
+
email:
|
128
|
+
- axelwahlen@gmail.com
|
129
|
+
executables:
|
130
|
+
- console
|
131
|
+
- setup
|
132
|
+
extensions: []
|
133
|
+
extra_rdoc_files: []
|
134
|
+
files:
|
135
|
+
- ".gitignore"
|
136
|
+
- ".rspec"
|
137
|
+
- ".travis.yml"
|
138
|
+
- Gemfile
|
139
|
+
- LICENSE.txt
|
140
|
+
- README.md
|
141
|
+
- Rakefile
|
142
|
+
- bin/console
|
143
|
+
- bin/setup
|
144
|
+
- lib/oh_my_embed.rb
|
145
|
+
- lib/oh_my_embed/crawler.rb
|
146
|
+
- lib/oh_my_embed/provider.rb
|
147
|
+
- lib/oh_my_embed/providers/facebook_post.rb
|
148
|
+
- lib/oh_my_embed/providers/facebook_video.rb
|
149
|
+
- lib/oh_my_embed/providers/flickr.rb
|
150
|
+
- lib/oh_my_embed/providers/instagram.rb
|
151
|
+
- lib/oh_my_embed/providers/kickstarter.rb
|
152
|
+
- lib/oh_my_embed/providers/slideshare.rb
|
153
|
+
- lib/oh_my_embed/providers/soundcloud.rb
|
154
|
+
- lib/oh_my_embed/providers/spotify.rb
|
155
|
+
- lib/oh_my_embed/providers/twitter.rb
|
156
|
+
- lib/oh_my_embed/providers/youtube.rb
|
157
|
+
- lib/oh_my_embed/response.rb
|
158
|
+
- lib/oh_my_embed/version.rb
|
159
|
+
- oh-my-embed.gemspec
|
160
|
+
- spec/fixtures/vcr_cassettes/facebook_posts.yml
|
161
|
+
- spec/fixtures/vcr_cassettes/facebook_videos.yml
|
162
|
+
- spec/fixtures/vcr_cassettes/flickr.yml
|
163
|
+
- spec/fixtures/vcr_cassettes/instagram.yml
|
164
|
+
- spec/fixtures/vcr_cassettes/kickstarter.yml
|
165
|
+
- spec/fixtures/vcr_cassettes/slideshare.yml
|
166
|
+
- spec/fixtures/vcr_cassettes/soundcloud.yml
|
167
|
+
- spec/fixtures/vcr_cassettes/spotify.yml
|
168
|
+
- spec/fixtures/vcr_cassettes/twitter.yml
|
169
|
+
- spec/fixtures/vcr_cassettes/youtube.yml
|
170
|
+
- spec/oh_my_embed/crawler_spec.rb
|
171
|
+
- spec/oh_my_embed/provider_spec.rb
|
172
|
+
- spec/oh_my_embed/providers/facebook_post_spec.rb
|
173
|
+
- spec/oh_my_embed/providers/facebook_video_spec.rb
|
174
|
+
- spec/oh_my_embed/providers/flickr_spec.rb
|
175
|
+
- spec/oh_my_embed/providers/instagram_spec.rb
|
176
|
+
- spec/oh_my_embed/providers/kickstarter_spec.rb
|
177
|
+
- spec/oh_my_embed/providers/slideshare_spec.rb
|
178
|
+
- spec/oh_my_embed/providers/soundcloud_spec.rb
|
179
|
+
- spec/oh_my_embed/providers/spotify_spec.rb
|
180
|
+
- spec/oh_my_embed/providers/twitter_spec.rb
|
181
|
+
- spec/oh_my_embed/providers/youtube_spec.rb
|
182
|
+
- spec/oh_my_embed/response_spec.rb
|
183
|
+
- spec/oh_my_embed_spec.rb
|
184
|
+
- spec/spec_helper.rb
|
185
|
+
homepage: https://www.mixxt.de
|
186
|
+
licenses:
|
187
|
+
- MIT
|
188
|
+
metadata: {}
|
189
|
+
post_install_message:
|
190
|
+
rdoc_options: []
|
191
|
+
require_paths:
|
192
|
+
- lib
|
193
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: 1.9.2
|
198
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
requirements: []
|
204
|
+
rubyforge_project:
|
205
|
+
rubygems_version: 2.4.8
|
206
|
+
signing_key:
|
207
|
+
specification_version: 4
|
208
|
+
summary: Simple gem to interact with oauth providers
|
209
|
+
test_files:
|
210
|
+
- spec/fixtures/vcr_cassettes/facebook_posts.yml
|
211
|
+
- spec/fixtures/vcr_cassettes/facebook_videos.yml
|
212
|
+
- spec/fixtures/vcr_cassettes/flickr.yml
|
213
|
+
- spec/fixtures/vcr_cassettes/instagram.yml
|
214
|
+
- spec/fixtures/vcr_cassettes/kickstarter.yml
|
215
|
+
- spec/fixtures/vcr_cassettes/slideshare.yml
|
216
|
+
- spec/fixtures/vcr_cassettes/soundcloud.yml
|
217
|
+
- spec/fixtures/vcr_cassettes/spotify.yml
|
218
|
+
- spec/fixtures/vcr_cassettes/twitter.yml
|
219
|
+
- spec/fixtures/vcr_cassettes/youtube.yml
|
220
|
+
- spec/oh_my_embed/crawler_spec.rb
|
221
|
+
- spec/oh_my_embed/provider_spec.rb
|
222
|
+
- spec/oh_my_embed/providers/facebook_post_spec.rb
|
223
|
+
- spec/oh_my_embed/providers/facebook_video_spec.rb
|
224
|
+
- spec/oh_my_embed/providers/flickr_spec.rb
|
225
|
+
- spec/oh_my_embed/providers/instagram_spec.rb
|
226
|
+
- spec/oh_my_embed/providers/kickstarter_spec.rb
|
227
|
+
- spec/oh_my_embed/providers/slideshare_spec.rb
|
228
|
+
- spec/oh_my_embed/providers/soundcloud_spec.rb
|
229
|
+
- spec/oh_my_embed/providers/spotify_spec.rb
|
230
|
+
- spec/oh_my_embed/providers/twitter_spec.rb
|
231
|
+
- spec/oh_my_embed/providers/youtube_spec.rb
|
232
|
+
- spec/oh_my_embed/response_spec.rb
|
233
|
+
- spec/oh_my_embed_spec.rb
|
234
|
+
- spec/spec_helper.rb
|