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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +9 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +164 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +17 -0
  10. data/bin/setup +8 -0
  11. data/lib/oh_my_embed.rb +52 -0
  12. data/lib/oh_my_embed/crawler.rb +77 -0
  13. data/lib/oh_my_embed/provider.rb +116 -0
  14. data/lib/oh_my_embed/providers/facebook_post.rb +20 -0
  15. data/lib/oh_my_embed/providers/facebook_video.rb +15 -0
  16. data/lib/oh_my_embed/providers/flickr.rb +15 -0
  17. data/lib/oh_my_embed/providers/instagram.rb +15 -0
  18. data/lib/oh_my_embed/providers/kickstarter.rb +15 -0
  19. data/lib/oh_my_embed/providers/slideshare.rb +19 -0
  20. data/lib/oh_my_embed/providers/soundcloud.rb +14 -0
  21. data/lib/oh_my_embed/providers/spotify.rb +17 -0
  22. data/lib/oh_my_embed/providers/twitter.rb +14 -0
  23. data/lib/oh_my_embed/providers/youtube.rb +18 -0
  24. data/lib/oh_my_embed/response.rb +110 -0
  25. data/lib/oh_my_embed/version.rb +3 -0
  26. data/oh-my-embed.gemspec +33 -0
  27. data/spec/fixtures/vcr_cassettes/facebook_posts.yml +65 -0
  28. data/spec/fixtures/vcr_cassettes/facebook_videos.yml +65 -0
  29. data/spec/fixtures/vcr_cassettes/flickr.yml +90 -0
  30. data/spec/fixtures/vcr_cassettes/instagram.yml +75 -0
  31. data/spec/fixtures/vcr_cassettes/kickstarter.yml +65 -0
  32. data/spec/fixtures/vcr_cassettes/slideshare.yml +87 -0
  33. data/spec/fixtures/vcr_cassettes/soundcloud.yml +57 -0
  34. data/spec/fixtures/vcr_cassettes/spotify.yml +44 -0
  35. data/spec/fixtures/vcr_cassettes/twitter.yml +66 -0
  36. data/spec/fixtures/vcr_cassettes/youtube.yml +57 -0
  37. data/spec/oh_my_embed/crawler_spec.rb +99 -0
  38. data/spec/oh_my_embed/provider_spec.rb +103 -0
  39. data/spec/oh_my_embed/providers/facebook_post_spec.rb +40 -0
  40. data/spec/oh_my_embed/providers/facebook_video_spec.rb +40 -0
  41. data/spec/oh_my_embed/providers/flickr_spec.rb +44 -0
  42. data/spec/oh_my_embed/providers/instagram_spec.rb +44 -0
  43. data/spec/oh_my_embed/providers/kickstarter_spec.rb +44 -0
  44. data/spec/oh_my_embed/providers/slideshare_spec.rb +44 -0
  45. data/spec/oh_my_embed/providers/soundcloud_spec.rb +44 -0
  46. data/spec/oh_my_embed/providers/spotify_spec.rb +41 -0
  47. data/spec/oh_my_embed/providers/twitter_spec.rb +40 -0
  48. data/spec/oh_my_embed/providers/youtube_spec.rb +44 -0
  49. data/spec/oh_my_embed/response_spec.rb +174 -0
  50. data/spec/oh_my_embed_spec.rb +7 -0
  51. data/spec/spec_helper.rb +17 -0
  52. 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
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe OhMyEmbed do
4
+ it 'has a version number' do
5
+ expect(OhMyEmbed::VERSION).not_to be nil
6
+ end
7
+ end
@@ -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