film_snob 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 706c85faef7c0c647d53936eaa40f02aa317b3ee
4
- data.tar.gz: e2fef7f5a852713cc0ab7afcf32ceac99ce263b6
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTNlZDY4N2M3MGQ1MjE2MTcyZTQyOGJlYTc2MDM5YjI0N2EyMmZhYg==
5
+ data.tar.gz: !binary |-
6
+ ZjhmYWI2YTJhYzU4MjA3YjI1YThkYTNkZTEyOTM0OGVjZTE0NzQwYQ==
5
7
  SHA512:
6
- metadata.gz: a76db3dad486f794978024e750afcc98449c1d48f4732a927e7fa61e8fbe900807c63262dab78bd50a3f38ebcf2f6197982129f780aa116c6339343993a2b561
7
- data.tar.gz: 758e755cd14096c02f5d3e99403b6e5568a5d61652e32570a4317930b0e6b8d6b9055869d4916b216e01a228ba67559d77d778de359d32ad54eafed6a74a397a
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
- snob = FilmSnob.new("https://www.youtube.com/watch?v=GwT3zH16w3s")
26
- snob.watchable? #=> true
27
- snob.site #=> :youtube
28
- snob.id #=> "GwT3zH16w3s"
29
- snob.title #=> "What Are You, The Coolest? With Robert Rodriguez"
30
- snob.html #=> "<iframe width=\"480\" height=\"270\" src=\"http://www.youtube.com/embed/GwT3zH16w3s?feature=oembed\" frameborder=\"0\" allowfullscreen></iframe>"
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
@@ -1,3 +1,3 @@
1
1
  class FilmSnob
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -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 = FilmSnob::UrlToVideo.new(url).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(m)
18
- if [:site, :id, :clean_url, :title, :html].include?(m)
19
- complain_about_bad_urls!(m)
20
- video.send(m)
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
- - Sun, 13 Apr 2014 22:47:31 GMT
16
+ - Tue, 15 Apr 2014 02:52:18 GMT
17
17
  Server:
18
18
  - gwiseguy/2.0
19
- Content-Type:
20
- - text/html; charset=utf-8
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-Content-Type-Options:
33
- - nosniff
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: UTF-8
37
+ encoding: US-ASCII
40
38
  string: Not Found
41
39
  http_version:
42
- recorded_at: Sun, 13 Apr 2014 22:47:31 GMT
40
+ recorded_at: Tue, 15 Apr 2014 02:52:19 GMT
43
41
  recorded_with: VCR 2.9.0
@@ -13,38 +13,36 @@ http_interactions:
13
13
  message: OK
14
14
  headers:
15
15
  Date:
16
- - Sun, 13 Apr 2014 22:37:31 GMT
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: UTF-8
40
- string: '{"title": "Billy on the Street: Amateur Speed Sketching!", "author_name":
41
- "billyonthestreettv", "height": 270, "width": 480, "thumbnail_width": 480,
42
- "author_url": "http:\/\/www.youtube.com\/user\/billyonthestreettv", "thumbnail_height":
43
- 360, "type": "video", "thumbnail_url": "http:\/\/i1.ytimg.com\/vi\/7q5Ltr0qc8c\/hqdefault.jpg",
44
- "provider_url": "http:\/\/www.youtube.com\/", "html": "\u003ciframe width=\"480\"
45
- height=\"270\" src=\"http:\/\/www.youtube.com\/embed\/7q5Ltr0qc8c?feature=oembed\"
46
- frameborder=\"0\" allowfullscreen\u003e\u003c\/iframe\u003e", "version": "1.0",
47
- "provider_name": "YouTube"}'
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: Sun, 13 Apr 2014 22:37:31 GMT
47
+ recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
50
48
  recorded_with: VCR 2.9.0
@@ -25,19 +25,19 @@ http_interactions:
25
25
  Accept-Ranges:
26
26
  - bytes
27
27
  Cache-Control:
28
- - max-age=3568
28
+ - max-age=3600
29
29
  Date:
30
- - Sun, 13 Apr 2014 22:40:14 GMT
30
+ - Tue, 15 Apr 2014 02:52:16 GMT
31
31
  Connection:
32
32
  - keep-alive
33
33
  body:
34
- encoding: UTF-8
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: Sun, 13 Apr 2014 22:40:14 GMT
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
@@ -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
- - Sun, 13 Apr 2014 22:40:15 GMT
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
- - Sun, 13 Apr 2014 22:39:15 GMT
34
+ - Tue, 15 Apr 2014 02:52:16 GMT
39
35
  X-Varnish:
40
- - '2109561577'
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
- Nncoection:
43
+ Cneonction:
48
44
  - close
49
45
  X-Vserver:
50
- - 10.90.128.188
46
+ - 10.90.128.147
51
47
  body:
52
- encoding: UTF-8
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: Sun, 13 Apr 2014 22:39:15 GMT
58
+ recorded_at: Tue, 15 Apr 2014 02:52:17 GMT
63
59
  recorded_with: VCR 2.9.0
@@ -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.2.1
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-13 00:00:00.000000000 Z
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