film_snob 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 925ee3c44eba3201436fcba5318d1c05637faa3b
4
- data.tar.gz: f5fc23b423cfd0af9224be313f4f861699b19611
3
+ metadata.gz: 99f382ce12c36b497b6ddb4f0c2fad4dfddd2a1e
4
+ data.tar.gz: f45ed0b84bf5755864ab14d8b8b664330b69fdee
5
5
  SHA512:
6
- metadata.gz: 3df2a44907f063c997b3338ccd8a9cb7a12d4deff9ea223dd468813a40a9b5450c5051fc57f9407853e020dfd4f038d028792fd372cc294b44b28891346857ab
7
- data.tar.gz: 3d726653831d37132b67e94c81197b8348d27f94526aa350a089091fe51e870a3142a3532e906a6a40dc6dba5e76703f1d4510a5c916d75f2a1d8896a72873e6
6
+ metadata.gz: f6f8f7bed153eeaf1ceac584b9f4fbaf1290be4ae9d79f933659996eaee4b195e47c537f6203410454d9b0f22c6840ea9b1cf7c1f8f898a929aa00b5222f379f
7
+ data.tar.gz: c64fa3b042bae53eda20d5895bec0a13af95ad0fb026629710083a4f0bc6ed05f5efda656e40a3566598a6ae1fb7b29be97a3c5aa20ab49a1be02dff6c43a933
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/README.md CHANGED
@@ -46,6 +46,7 @@ film_snob uses the oembed protocol to get html for embed codes. These options as
46
46
  * Vimeo
47
47
  * Hulu
48
48
  * Funny or Die
49
+ * Coub
49
50
 
50
51
  The same methods work with all of these providers.
51
52
 
@@ -0,0 +1,20 @@
1
+ require "film_snob/video_site"
2
+
3
+ class FilmSnob
4
+ class Coub < VideoSite
5
+
6
+ def self.valid_url_patterns
7
+ [
8
+ %r{https?://coub.com/view/(\w*)}
9
+ ]
10
+ end
11
+
12
+ def clean_url
13
+ @clean_url ||= "http://coub.com/view/#{id}"
14
+ end
15
+
16
+ def self.oembed_endpoint
17
+ 'http://coub.com/api/oembed.json'
18
+ end
19
+ end
20
+ end
@@ -1,7 +1,8 @@
1
+ require "film_snob/coub"
2
+ require "film_snob/funny_or_die"
3
+ require "film_snob/hulu"
1
4
  require "film_snob/vimeo"
2
5
  require "film_snob/youtube"
3
- require "film_snob/hulu"
4
- require "film_snob/funny_or_die"
5
6
 
6
7
  class FilmSnob
7
8
  class UrlToVideo
@@ -10,7 +11,8 @@ class FilmSnob
10
11
  Vimeo,
11
12
  YouTube,
12
13
  Hulu,
13
- FunnyOrDie
14
+ FunnyOrDie,
15
+ Coub
14
16
  ]
15
17
 
16
18
  attr_reader :url, :options
@@ -1,3 +1,3 @@
1
1
  class FilmSnob
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
  end
@@ -31,11 +31,7 @@ class FilmSnob
31
31
  end
32
32
 
33
33
  def html
34
- if oembed['html']
35
- oembed['html']
36
- else
37
- raise NotEmbeddableError.new("#{clean_url} is not embeddable")
38
- end
34
+ oembed['html'] || (raise NotEmbeddableError.new("#{clean_url} is not embeddable"))
39
35
  end
40
36
 
41
37
  private
@@ -0,0 +1,57 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://coub.com/api/oembed.json?url=http://coub.com/view/rcd14cm
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:53:16 GMT
23
+ Last-Modified:
24
+ - Sun, 13 Apr 2014 19:06:59 GMT
25
+ Etag:
26
+ - ! '"3ee9abac968dd90ff3d61a6c3ed1e6aac5a93a7d"'
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
+ - '273732503'
37
+ Age:
38
+ - '0'
39
+ Via:
40
+ - 1.1 varnish
41
+ X-Varnish-Cache:
42
+ - '0'
43
+ Cneonction:
44
+ - close
45
+ X-Vserver:
46
+ - 10.90.128.147
47
+ body:
48
+ encoding: US-ASCII
49
+ string: |
50
+ {"type":"video","version":"1.0","width":942,"height":720,"title":"voodoo people","url":"http://coub.com/view/rcd14cm",
51
+ "thumbnail_url":"http://cdn1.akamai.coub.com/coub/simple/cw_image/8007107badd/a0f3e90c986074ac81f30/med_1374583486_00033.jpg",
52
+ "thumbnail_width":640,"thumbnail_height":488,"author_name":"Igor","author_url":"http://coub.com/coubcreator",
53
+ "provider_name":"Coub","provider_url":"http://coub.com/",
54
+ "html":"<iframesrc=\"http://coub.com/embed/rcd14cm\"allowfullscreen=\"true\"frameborder=\"0\"width=\"640\"height=\"489\"></iframe>"}
55
+ http_version:
56
+ recorded_at: Sun, 01 Jun 2014 02:52:17 GMT
57
+ recorded_with: VCR 2.9.0
@@ -132,4 +132,15 @@ describe FilmSnob do
132
132
  end
133
133
  end
134
134
 
135
+ describe 'coub URLs' do
136
+ it 'should parse coub URLs' do
137
+ film = FilmSnob.new("http://coub.com/view/rcd14cm")
138
+ expect(film.id).to eq 'rcd14cm'
139
+ expect(film.site).to eq :coub
140
+ VCR.use_cassette 'voodoo_people' do
141
+ expect(film.title).to eq 'voodoo people'
142
+ expect{film.html}.not_to raise_error
143
+ end
144
+ end
145
+ end
135
146
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: film_snob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
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-19 00:00:00.000000000 Z
11
+ date: 2014-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
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
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 3.0.0.beta2
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 3.0.0.beta2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.17'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.17'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: vcr
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.9'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.9'
83
83
  - !ruby/object:Gem::Dependency
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
98
98
  name: httparty
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.13'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.13'
111
111
  description: Help understand URLs for video sites
@@ -115,14 +115,16 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - .gitignore
119
- - .travis.yml
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".travis.yml"
120
121
  - Gemfile
121
122
  - LICENSE.txt
122
123
  - README.md
123
124
  - Rakefile
124
125
  - film_snob.gemspec
125
126
  - lib/film_snob.rb
127
+ - lib/film_snob/coub.rb
126
128
  - lib/film_snob/exceptions.rb
127
129
  - lib/film_snob/funny_or_die.rb
128
130
  - lib/film_snob/hulu.rb
@@ -139,6 +141,7 @@ files:
139
141
  - spec/cassettes/murmuration2.yml
140
142
  - spec/cassettes/space_jam.yml
141
143
  - spec/cassettes/stephen.yml
144
+ - spec/cassettes/voodoo_people.yml
142
145
  - spec/film_snob_spec.rb
143
146
  - spec/spec_helper.rb
144
147
  - spec/youtube_spec.rb
@@ -152,17 +155,17 @@ require_paths:
152
155
  - lib
153
156
  required_ruby_version: !ruby/object:Gem::Requirement
154
157
  requirements:
155
- - - '>='
158
+ - - ">="
156
159
  - !ruby/object:Gem::Version
157
160
  version: 1.9.3
158
161
  required_rubygems_version: !ruby/object:Gem::Requirement
159
162
  requirements:
160
- - - '>='
163
+ - - ">="
161
164
  - !ruby/object:Gem::Version
162
165
  version: '0'
163
166
  requirements: []
164
167
  rubyforge_project:
165
- rubygems_version: 2.1.11
168
+ rubygems_version: 2.2.2
166
169
  signing_key:
167
170
  specification_version: 4
168
171
  summary: Help understand URLs for video sites
@@ -175,6 +178,7 @@ test_files:
175
178
  - spec/cassettes/murmuration2.yml
176
179
  - spec/cassettes/space_jam.yml
177
180
  - spec/cassettes/stephen.yml
181
+ - spec/cassettes/voodoo_people.yml
178
182
  - spec/film_snob_spec.rb
179
183
  - spec/spec_helper.rb
180
184
  - spec/youtube_spec.rb