film_snob 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/README.md +16 -6
- data/lib/film_snob/url_to_video.rb +4 -3
- data/lib/film_snob/version.rb +1 -1
- data/lib/film_snob/video_site.rb +4 -3
- data/lib/film_snob.rb +10 -6
- data/spec/cassettes/bad_youtube_url.yml +13 -15
- data/spec/cassettes/billy.yml +17 -19
- data/spec/cassettes/harmon.yml +5 -5
- data/spec/cassettes/murmuration.yml +61 -0
- data/spec/cassettes/murmuration2.yml +58 -0
- data/spec/cassettes/stephen.yml +10 -14
- data/spec/film_snob_spec.rb +11 -1
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTNlZDY4N2M3MGQ1MjE2MTcyZTQyOGJlYTc2MDM5YjI0N2EyMmZhYg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZjhmYWI2YTJhYzU4MjA3YjI1YThkYTNkZTEyOTM0OGVjZTE0NzQwYQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ODg4M2I0YTMwMTM5OGUyOTk4NjZiNzlhYTY0MjI3YTg0MTg2MmJlZjY3OWU5
|
10
|
+
YmQ4MWRmM2Q5Y2Q3MzU5YzQ3NTBmNWM3NmE2MGQzNjQ3ZjY4NTAyZmI0NWMy
|
11
|
+
YWYyMmZmOTU1NDFiYzYwMTA3ZjRmZDc0NGMxMWRlZTJiNGUwMmQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NmU0YTQwMzZkNzg0NjY0NWY3OTBmMjUzODFkYTMzYzI2NmY1ODFmMTI1OWVl
|
14
|
+
YjdmYzk0MTk3NDA0YzI3MTUwNTYyYmRiYTJmYjc4MTc3MTNkNzQ1M2IxMmY3
|
15
|
+
MzlmNDA0NWI4YjNkY2QxNDgwNmY2YTY2NDFhM2JmMmRlOGYzNTU=
|
data/README.md
CHANGED
@@ -22,14 +22,24 @@ Or install it yourself as:
|
|
22
22
|
## Usage
|
23
23
|
|
24
24
|
```ruby
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
film = FilmSnob.new("https://www.youtube.com/watch?v=GwT3zH16w3s")
|
26
|
+
film.watchable? #=> true
|
27
|
+
film.site #=> :youtube
|
28
|
+
film.id #=> "GwT3zH16w3s"
|
29
|
+
film.title #=> "What Are You, The Coolest? With Robert Rodriguez"
|
30
|
+
film.html #=> "<iframe width=\"480\" height=\"270\" src=\"http://www.youtube.com/embed/GwT3zH16w3s?feature=oembed\" frameborder=\"0\" allowfullscreen></iframe>"
|
31
31
|
```
|
32
32
|
|
33
|
+
Can also pass some configuration options like this:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
film = FilmSnob.new("http://vimeo.com/64683454", width: 720)
|
37
|
+
filmtitle #=> "Garann Means - Bacon is bad for you"
|
38
|
+
film.html #=> "<iframe src=\"//player.vimeo.com/video/64683454\" width=\"720\" height=\"405\" frameborder=\"0\" title=\"Garann Means - Bacon is bad for you\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"
|
39
|
+
```
|
40
|
+
|
41
|
+
film_snob uses the oembed protocol to get html for embed codes. These options assume some knowledge of the endpoint's API. The above vimeo example works because they [have an extensively documented API](http://developer.vimeo.com/apis/oembed) which allows tons of configuration. The other two don't seem to have any documentation or configuration at all.
|
42
|
+
|
33
43
|
## Supported video providers
|
34
44
|
|
35
45
|
* YouTube
|
@@ -11,14 +11,15 @@ class FilmSnob
|
|
11
11
|
Hulu
|
12
12
|
]
|
13
13
|
|
14
|
-
attr_reader :url
|
14
|
+
attr_reader :url, :options
|
15
15
|
|
16
|
-
def initialize(url)
|
16
|
+
def initialize(url, options)
|
17
17
|
@url = url
|
18
|
+
@options = options
|
18
19
|
end
|
19
20
|
|
20
21
|
def video
|
21
|
-
site.nil?? nil : site.new(url)
|
22
|
+
site.nil?? nil : site.new(url, options)
|
22
23
|
end
|
23
24
|
|
24
25
|
private
|
data/lib/film_snob/version.rb
CHANGED
data/lib/film_snob/video_site.rb
CHANGED
@@ -3,10 +3,11 @@ require 'httparty'
|
|
3
3
|
class FilmSnob
|
4
4
|
class VideoSite
|
5
5
|
|
6
|
-
attr_reader :url
|
6
|
+
attr_reader :url, :options
|
7
7
|
|
8
|
-
def initialize(url)
|
8
|
+
def initialize(url, options)
|
9
9
|
@url = url
|
10
|
+
@options = options
|
10
11
|
end
|
11
12
|
|
12
13
|
def id
|
@@ -48,7 +49,7 @@ class FilmSnob
|
|
48
49
|
def oembed
|
49
50
|
@oembed ||= HTTParty.get(
|
50
51
|
self.class.oembed_endpoint,
|
51
|
-
query: { url: clean_url }
|
52
|
+
query: { url: clean_url }.merge(options)
|
52
53
|
)
|
53
54
|
end
|
54
55
|
|
data/lib/film_snob.rb
CHANGED
@@ -5,25 +5,29 @@ require "film_snob/exceptions"
|
|
5
5
|
class FilmSnob
|
6
6
|
attr_reader :url, :video
|
7
7
|
|
8
|
-
def initialize(url)
|
8
|
+
def initialize(url, options={})
|
9
9
|
@url = url
|
10
|
-
@video =
|
10
|
+
@video = UrlToVideo.new(url, options).video
|
11
11
|
end
|
12
12
|
|
13
13
|
def watchable?
|
14
14
|
!video.nil?
|
15
15
|
end
|
16
16
|
|
17
|
-
def method_missing(
|
18
|
-
if
|
19
|
-
complain_about_bad_urls!(
|
20
|
-
video.send(
|
17
|
+
def method_missing(message)
|
18
|
+
if delegated_video_methods.include?(message)
|
19
|
+
complain_about_bad_urls!(message)
|
20
|
+
video.send(message)
|
21
21
|
else
|
22
22
|
super
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
private
|
27
|
+
|
28
|
+
def delegated_video_methods
|
29
|
+
[:site, :id, :clean_url, :title, :html]
|
30
|
+
end
|
27
31
|
|
28
32
|
def complain_about_bad_urls!(method)
|
29
33
|
raise NotSupportedURLError.new("Can not call FilmSnob##{method} because #{url} is not a supported URL.") unless watchable?
|
@@ -13,31 +13,29 @@ http_interactions:
|
|
13
13
|
message: Not Found
|
14
14
|
headers:
|
15
15
|
Date:
|
16
|
-
-
|
16
|
+
- Tue, 15 Apr 2014 02:52:18 GMT
|
17
17
|
Server:
|
18
18
|
- gwiseguy/2.0
|
19
|
-
Content-Type:
|
20
|
-
-
|
21
|
-
X-Xss-Protection:
|
22
|
-
- 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
|
23
|
-
X-Frame-Options:
|
24
|
-
- ALLOWALL
|
25
|
-
Cache-Control:
|
26
|
-
- no-cache
|
19
|
+
X-Content-Type-Options:
|
20
|
+
- nosniff
|
27
21
|
P3p:
|
28
22
|
- CP="This is not a P3P policy! See http://support.google.com/accounts/bin/answer.py?answer=151657&hl=en
|
29
23
|
for more info."
|
24
|
+
X-Frame-Options:
|
25
|
+
- ALLOWALL
|
30
26
|
Expires:
|
31
27
|
- Tue, 27 Apr 1971 19:44:06 EST
|
32
|
-
X-
|
33
|
-
-
|
28
|
+
X-Xss-Protection:
|
29
|
+
- 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
|
30
|
+
Cache-Control:
|
31
|
+
- no-cache
|
32
|
+
Content-Type:
|
33
|
+
- text/html; charset=utf-8
|
34
34
|
Content-Length:
|
35
35
|
- '9'
|
36
|
-
Alternate-Protocol:
|
37
|
-
- 443:quic
|
38
36
|
body:
|
39
|
-
encoding:
|
37
|
+
encoding: US-ASCII
|
40
38
|
string: Not Found
|
41
39
|
http_version:
|
42
|
-
recorded_at:
|
40
|
+
recorded_at: Tue, 15 Apr 2014 02:52:19 GMT
|
43
41
|
recorded_with: VCR 2.9.0
|
data/spec/cassettes/billy.yml
CHANGED
@@ -13,38 +13,36 @@ http_interactions:
|
|
13
13
|
message: OK
|
14
14
|
headers:
|
15
15
|
Date:
|
16
|
-
-
|
16
|
+
- Tue, 15 Apr 2014 02:52:15 GMT
|
17
17
|
Server:
|
18
18
|
- gwiseguy/2.0
|
19
|
+
X-Frame-Options:
|
20
|
+
- ALLOWALL
|
21
|
+
X-Xss-Protection:
|
22
|
+
- 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
|
23
|
+
Expires:
|
24
|
+
- Tue, 27 Apr 1971 19:44:06 EST
|
19
25
|
X-Content-Type-Options:
|
20
26
|
- nosniff
|
21
27
|
P3p:
|
22
28
|
- CP="This is not a P3P policy! See http://support.google.com/accounts/bin/answer.py?answer=151657&hl=en
|
23
29
|
for more info."
|
24
|
-
X-Xss-Protection:
|
25
|
-
- 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
|
26
30
|
Content-Type:
|
27
31
|
- application/json
|
28
|
-
X-Frame-Options:
|
29
|
-
- ALLOWALL
|
30
|
-
Expires:
|
31
|
-
- Tue, 27 Apr 1971 19:44:06 EST
|
32
32
|
Cache-Control:
|
33
33
|
- no-cache
|
34
|
-
Alternate-Protocol:
|
35
|
-
- 443:quic
|
36
34
|
Transfer-Encoding:
|
37
35
|
- chunked
|
38
36
|
body:
|
39
|
-
encoding:
|
40
|
-
string: '{"
|
41
|
-
"
|
42
|
-
"author_url": "http:\/\/www.youtube.com\/user\/billyonthestreettv",
|
43
|
-
|
44
|
-
"
|
45
|
-
|
46
|
-
|
47
|
-
"
|
37
|
+
encoding: US-ASCII
|
38
|
+
string: ! '{"type": "video", "provider_url": "http:\/\/www.youtube.com\/", "thumbnail_url":
|
39
|
+
"http:\/\/i1.ytimg.com\/vi\/7q5Ltr0qc8c\/hqdefault.jpg", "thumbnail_height":
|
40
|
+
360, "width": 480, "provider_name": "YouTube", "author_url": "http:\/\/www.youtube.com\/user\/billyonthestreettv",
|
41
|
+
"title": "Billy on the Street: Amateur Speed Sketching!", "thumbnail_width":
|
42
|
+
480, "version": "1.0", "html": "\u003ciframe width=\"480\" height=\"270\"
|
43
|
+
src=\"http:\/\/www.youtube.com\/embed\/7q5Ltr0qc8c?feature=oembed\" frameborder=\"0\"
|
44
|
+
allowfullscreen\u003e\u003c\/iframe\u003e", "height": 270, "author_name":
|
45
|
+
"billyonthestreettv"}'
|
48
46
|
http_version:
|
49
|
-
recorded_at:
|
47
|
+
recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
|
50
48
|
recorded_with: VCR 2.9.0
|
data/spec/cassettes/harmon.yml
CHANGED
@@ -25,19 +25,19 @@ http_interactions:
|
|
25
25
|
Accept-Ranges:
|
26
26
|
- bytes
|
27
27
|
Cache-Control:
|
28
|
-
- max-age=
|
28
|
+
- max-age=3600
|
29
29
|
Date:
|
30
|
-
-
|
30
|
+
- Tue, 15 Apr 2014 02:52:16 GMT
|
31
31
|
Connection:
|
32
32
|
- keep-alive
|
33
33
|
body:
|
34
|
-
encoding:
|
35
|
-
string: '{"cache_age":3600,"type":"video","large_thumbnail_url":"http://ib.huluim.com/video/50172061?size=512x288&caller=h1o&img=i","height":296,"html":"<iframe
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: ! '{"cache_age":3600,"type":"video","large_thumbnail_url":"http://ib.huluim.com/video/50172061?size=512x288&caller=h1o&img=i","height":296,"html":"<iframe
|
36
36
|
width=\"512\" height=\"296\" src=\"http://www.hulu.com/embed.html?eid=CbtnRM8PBJsCfZpUy2V3Yg\"
|
37
37
|
frameborder=\"0\" scrolling=\"no\" webkitAllowFullScreen mozallowfullscreen
|
38
38
|
allowfullscreen> </iframe>","large_thumbnail_width":512,"embed_url":"http://www.hulu.com/embed.html?eid=CbtnRM8PBJsCfZpUy2V3Yg","air_date":"Thu
|
39
39
|
Oct 13 00:00:00 UTC 2011","large_thumbnail_height":288,"thumbnail_url":"http://ib.huluim.com/video/50172061?size=145x80&caller=h1o&img=i","author_name":"NBC","provider_name":"Hulu","title":"Remedial
|
40
40
|
Chaos Theory (Community)","thumbnail_width":145,"provider_url":"http://www.hulu.com/","duration":1286.87,"version":"1.0","thumbnail_height":80,"width":512}'
|
41
41
|
http_version:
|
42
|
-
recorded_at:
|
42
|
+
recorded_at: Tue, 15 Apr 2014 02:52:18 GMT
|
43
43
|
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://vimeo.com/api/oembed.json?url=https://vimeo.com/31158841&width=400
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Age:
|
16
|
+
- '1'
|
17
|
+
Date:
|
18
|
+
- Tue, 15 Apr 2014 02:52:16 GMT
|
19
|
+
Expires:
|
20
|
+
- Tue, 15 Apr 2014 02:53:16 GMT
|
21
|
+
Content-Length:
|
22
|
+
- '793'
|
23
|
+
Connection:
|
24
|
+
- Keep-Alive
|
25
|
+
Via:
|
26
|
+
- 1.1 varnish
|
27
|
+
- dnet-dca
|
28
|
+
Etag:
|
29
|
+
- ! '"e19e6eea37661a8e029d8f8e3b2116f3e97ea8f0"'
|
30
|
+
Server:
|
31
|
+
- Apache
|
32
|
+
Access-Control-Allow-Origin:
|
33
|
+
- ! '*'
|
34
|
+
Access-Control-Allow-Headers:
|
35
|
+
- X-Requested-With
|
36
|
+
Last-Modified:
|
37
|
+
- Tue, 15 Apr 2014 02:10:30 GMT
|
38
|
+
Vary:
|
39
|
+
- Accept-Encoding
|
40
|
+
Content-Type:
|
41
|
+
- application/json
|
42
|
+
X-Varnish:
|
43
|
+
- '1677378251'
|
44
|
+
X-Varnish-Cache:
|
45
|
+
- '0'
|
46
|
+
Nncoection:
|
47
|
+
- close
|
48
|
+
X-Vserver:
|
49
|
+
- 10.90.128.197
|
50
|
+
body:
|
51
|
+
encoding: US-ASCII
|
52
|
+
string: ! '{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Murmuration","author_name":"Islands
|
53
|
+
& Rivers","author_url":"http:\/\/vimeo.com\/islandsandrivers","is_plus":"1","html":"<iframe
|
54
|
+
src=\"\/\/player.vimeo.com\/video\/31158841\" width=\"400\" height=\"300\"
|
55
|
+
frameborder=\"0\" title=\"Murmuration\" webkitallowfullscreen mozallowfullscreen
|
56
|
+
allowfullscreen><\/iframe>","width":400,"height":300,"duration":123,"description":"www.islandsandrivers.com\n\nFacebook:
|
57
|
+
Islands And Rivers\n\nFollow us @Islands_Rivers\n\nA chance encounter and
|
58
|
+
shared moment with one of natures greatest and most fleeting phenomena.","thumbnail_url":"http:\/\/i.vimeocdn.com\/video\/448600816_295x166.jpg","thumbnail_width":295,"thumbnail_height":221,"video_id":31158841}'
|
59
|
+
http_version:
|
60
|
+
recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
|
61
|
+
recorded_with: VCR 2.9.0
|
@@ -0,0 +1,58 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://vimeo.com/api/oembed.json?url=https://vimeo.com/31158841&width=500
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- Apache
|
17
|
+
Access-Control-Allow-Origin:
|
18
|
+
- ! '*'
|
19
|
+
Access-Control-Allow-Headers:
|
20
|
+
- X-Requested-With
|
21
|
+
Expires:
|
22
|
+
- Tue, 15 Apr 2014 02:52:58 GMT
|
23
|
+
Last-Modified:
|
24
|
+
- Tue, 15 Apr 2014 02:10:30 GMT
|
25
|
+
Etag:
|
26
|
+
- ! '"e19e6eea37661a8e029d8f8e3b2116f3e97ea8f0"'
|
27
|
+
Vary:
|
28
|
+
- Accept-Encoding
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Date:
|
34
|
+
- Tue, 15 Apr 2014 02:52:16 GMT
|
35
|
+
X-Varnish:
|
36
|
+
- 2146795868 2146790599
|
37
|
+
Age:
|
38
|
+
- '18'
|
39
|
+
Via:
|
40
|
+
- 1.1 varnish
|
41
|
+
X-Varnish-Cache:
|
42
|
+
- '1'
|
43
|
+
Nncoection:
|
44
|
+
- close
|
45
|
+
X-Vserver:
|
46
|
+
- 10.90.128.188
|
47
|
+
body:
|
48
|
+
encoding: US-ASCII
|
49
|
+
string: ! '{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Murmuration","author_name":"Islands
|
50
|
+
& Rivers","author_url":"http:\/\/vimeo.com\/islandsandrivers","is_plus":"1","html":"<iframe
|
51
|
+
src=\"\/\/player.vimeo.com\/video\/31158841\" width=\"500\" height=\"375\"
|
52
|
+
frameborder=\"0\" title=\"Murmuration\" webkitallowfullscreen mozallowfullscreen
|
53
|
+
allowfullscreen><\/iframe>","width":500,"height":375,"duration":123,"description":"www.islandsandrivers.com\n\nFacebook:
|
54
|
+
Islands And Rivers\n\nFollow us @Islands_Rivers\n\nA chance encounter and
|
55
|
+
shared moment with one of natures greatest and most fleeting phenomena.","thumbnail_url":"http:\/\/i.vimeocdn.com\/video\/448600816_295x166.jpg","thumbnail_width":295,"thumbnail_height":221,"video_id":31158841}'
|
56
|
+
http_version:
|
57
|
+
recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
|
58
|
+
recorded_with: VCR 2.9.0
|
data/spec/cassettes/stephen.yml
CHANGED
@@ -15,19 +15,15 @@ http_interactions:
|
|
15
15
|
Server:
|
16
16
|
- Apache
|
17
17
|
Access-Control-Allow-Origin:
|
18
|
-
- '*'
|
18
|
+
- ! '*'
|
19
19
|
Access-Control-Allow-Headers:
|
20
20
|
- X-Requested-With
|
21
21
|
Expires:
|
22
|
-
-
|
22
|
+
- Tue, 15 Apr 2014 02:53:16 GMT
|
23
23
|
Last-Modified:
|
24
24
|
- Sun, 13 Apr 2014 19:06:59 GMT
|
25
25
|
Etag:
|
26
|
-
- '"3ee9abac968dd90ff3d61a6c3ed1e6aac5a93a7d"'
|
27
|
-
X-Ua-Compatible:
|
28
|
-
- IE=edge
|
29
|
-
X-Dns-Prefetch-Control:
|
30
|
-
- 'on'
|
26
|
+
- ! '"3ee9abac968dd90ff3d61a6c3ed1e6aac5a93a7d"'
|
31
27
|
Vary:
|
32
28
|
- Accept-Encoding
|
33
29
|
Content-Type:
|
@@ -35,22 +31,22 @@ http_interactions:
|
|
35
31
|
Transfer-Encoding:
|
36
32
|
- chunked
|
37
33
|
Date:
|
38
|
-
-
|
34
|
+
- Tue, 15 Apr 2014 02:52:16 GMT
|
39
35
|
X-Varnish:
|
40
|
-
- '
|
36
|
+
- '273732503'
|
41
37
|
Age:
|
42
38
|
- '0'
|
43
39
|
Via:
|
44
40
|
- 1.1 varnish
|
45
41
|
X-Varnish-Cache:
|
46
42
|
- '0'
|
47
|
-
|
43
|
+
Cneonction:
|
48
44
|
- close
|
49
45
|
X-Vserver:
|
50
|
-
- 10.90.128.
|
46
|
+
- 10.90.128.147
|
51
47
|
body:
|
52
|
-
encoding:
|
53
|
-
string: '{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Days
|
48
|
+
encoding: US-ASCII
|
49
|
+
string: ! '{"type":"video","version":"1.0","provider_name":"Vimeo","provider_url":"https:\/\/vimeo.com\/","title":"Days
|
54
50
|
Like Today","author_name":"Stephen_Scott_Day","author_url":"http:\/\/vimeo.com\/stephenscottday","is_plus":"1","html":"<iframe
|
55
51
|
src=\"\/\/player.vimeo.com\/video\/16010689\" width=\"1280\" height=\"720\"
|
56
52
|
frameborder=\"0\" title=\"Days Like Today\" webkitallowfullscreen mozallowfullscreen
|
@@ -59,5 +55,5 @@ http_interactions:
|
|
59
55
|
the whole thing, but if you do, lemme know. \n\nTuesday, October 19th, 2010.
|
60
56
|
Somewhere between 3:40pm and 3:50pm. Alhambra, CA.","thumbnail_url":"http:\/\/i.vimeocdn.com\/video\/97388869_1280.jpg","thumbnail_width":1280,"thumbnail_height":720,"video_id":16010689}'
|
61
57
|
http_version:
|
62
|
-
recorded_at:
|
58
|
+
recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
|
63
59
|
recorded_with: VCR 2.9.0
|
data/spec/film_snob_spec.rb
CHANGED
@@ -94,7 +94,17 @@ describe FilmSnob do
|
|
94
94
|
expect(snob2.site).to eq :vimeo
|
95
95
|
expect(snob2.clean_url).to eq 'https://vimeo.com/51020067'
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
|
+
it 'should allow oembed configuration' do
|
99
|
+
snob = FilmSnob.new("http://vimeo.com/31158841", width: 400)
|
100
|
+
VCR.use_cassette "murmuration" do
|
101
|
+
expect(snob.html).to match %r{width="400"}
|
102
|
+
end
|
103
|
+
snob2 = FilmSnob.new("http://vimeo.com/31158841", width: 500)
|
104
|
+
VCR.use_cassette "murmuration2" do
|
105
|
+
expect(snob2.html).to match %r{width="500"}
|
106
|
+
end
|
107
|
+
end
|
98
108
|
|
99
109
|
end
|
100
110
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: film_snob
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Jacobson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,14 +28,14 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - '>='
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - '>='
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
name: debugger
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - '>='
|
87
|
+
- - ! '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - '>='
|
94
|
+
- - ! '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
@@ -134,6 +134,8 @@ files:
|
|
134
134
|
- spec/cassettes/bad_youtube_url.yml
|
135
135
|
- spec/cassettes/billy.yml
|
136
136
|
- spec/cassettes/harmon.yml
|
137
|
+
- spec/cassettes/murmuration.yml
|
138
|
+
- spec/cassettes/murmuration2.yml
|
137
139
|
- spec/cassettes/stephen.yml
|
138
140
|
- spec/film_snob_spec.rb
|
139
141
|
- spec/spec_helper.rb
|
@@ -148,12 +150,12 @@ require_paths:
|
|
148
150
|
- lib
|
149
151
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
152
|
requirements:
|
151
|
-
- - '>='
|
153
|
+
- - ! '>='
|
152
154
|
- !ruby/object:Gem::Version
|
153
155
|
version: '0'
|
154
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
157
|
requirements:
|
156
|
-
- - '>='
|
158
|
+
- - ! '>='
|
157
159
|
- !ruby/object:Gem::Version
|
158
160
|
version: '0'
|
159
161
|
requirements: []
|
@@ -167,6 +169,8 @@ test_files:
|
|
167
169
|
- spec/cassettes/bad_youtube_url.yml
|
168
170
|
- spec/cassettes/billy.yml
|
169
171
|
- spec/cassettes/harmon.yml
|
172
|
+
- spec/cassettes/murmuration.yml
|
173
|
+
- spec/cassettes/murmuration2.yml
|
170
174
|
- spec/cassettes/stephen.yml
|
171
175
|
- spec/film_snob_spec.rb
|
172
176
|
- spec/spec_helper.rb
|