thornbed 0.3.0 → 0.3.1

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.
@@ -6,37 +6,28 @@ module Thornbed::Providers
6
6
  attr_accessor :pattern
7
7
 
8
8
  def initialize
9
- self.pattern = /^http(s)?:\/\/((i\.)|(www\.))?imgur.com\/(gallery\/)?(\w){5}(s|l|b|m|t)?(\.gif|\.jpg|.jpeg|\.png)?(\?full)?$/
9
+ self.pattern = /^https?:\/\/(www\.|i\.)?imgur\.com\/(gallery\/)?(?<pid>\w{5,})(s|l|b|m|t)?(?<ptype>\.gif|\.jpg|\.jpeg|\.png)?(\?full)?$/
10
10
  end
11
11
 
12
12
  def get(url)
13
13
  raise Thornbed::NotValid, url if !valid?(url)
14
- url = URI.parse(url)
15
- gallery = /gallery/ =~ url.path
16
- direct = /\/(\w){5}(\.gif|\.jpg|\.jpeg|\.png)$/.match(url.path)
17
- thumb = /\/(\w){5}(s|l|b|m|t)(\.gif|\.jpg|\.jpeg|\.png)$/.match(url.path)
18
- page = /\/(\w){5}$/ =~ url.path
19
- ptype = "jpg"
14
+ res = pattern.match(url)
15
+ pid = res[:pid]
16
+ md = /(?<pid>\w{5,})(s|l|b|m|t)$/.match(pid)
17
+ pid = md[:pid] if md else pid
18
+ ptype = res[:ptype] || ".jpg"
20
19
 
21
- if page || gallery
22
- pic_id = /(\/gallery\/)?\/(\w)*$/.match(url.path)[0][1..-1]
23
- elsif thumb
24
- pic_id = thumb[0][1..5]
25
- elsif direct
26
- pic_id = direct[0][1..5]
27
- ptype = /(\.gif|\.jpg|\.jpeg|\.png)$/.match(url.path)[0][1..-1]
28
- else
29
- raise Thornbed::NotValid, url
30
- end
20
+
21
+ raise Thornbed::NotValid, url if not pid
31
22
 
32
23
  {
33
- url: "http://i.imgur.com/#{pic_id}.#{ptype}",
24
+ url: "http://i.imgur.com/#{pid}#{ptype}",
34
25
  type: "photo",
35
26
  provider_name: provider_name,
36
27
  provider_url: "http://imgur.com",
37
- thumbnail_url: "http://i.imgur.com/#{pic_id}s.#{ptype}",
28
+ thumbnail_url: "http://i.imgur.com/#{pid}s#{ptype}",
38
29
  version: "1.0",
39
- page: "http://imgur.com/#{pic_id}",
30
+ page: "http://imgur.com/#{pid}",
40
31
  width: nil,
41
32
  height: nil
42
33
  }
@@ -1,3 +1,3 @@
1
1
  module Thornbed
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -17,6 +17,7 @@ describe "Imgur" do
17
17
  imgur.valid?('http://i.imgur.com/N2IDN.gif').should be_true
18
18
  imgur.valid?('http://i.imgur.com/A0TP9s.jpg').should be_true
19
19
  imgur.valid?('http://www.imgur.com/RUUuR.jpeg').should be_true
20
+ imgur.valid?('http://imgur.com/LcbbCHv').should be_true
20
21
  imgur.valid?('http://imgur.com/none').should be_false
21
22
  imgur.valid?('http://imgur.com/none.jpg').should be_false
22
23
  imgur.valid?('http://imgur.com/a/pq0N2').should be_false
@@ -25,6 +26,7 @@ describe "Imgur" do
25
26
  it "should return OEmbed hash for imgur urls" do
26
27
  imgur = Thornbed::Providers::Imgur.new
27
28
  res = imgur.get('http://imgur.com/gallery/A0TP9')
29
+ puts "*** #{res}"
28
30
  res.should include(url: 'http://i.imgur.com/A0TP9.jpg')
29
31
 
30
32
  res = imgur.get('http://i.imgur.com/A0TP9.png')
@@ -54,6 +56,12 @@ describe "Imgur" do
54
56
  res = imgur.get('http://www.imgur.com/RUUuR.jpeg')
55
57
  res.should include(url: 'http://i.imgur.com/RUUuR.jpeg')
56
58
 
59
+ res = imgur.get('http://imgur.com/LcbbCHv')
60
+ res.should include(url: 'http://i.imgur.com/LcbbCHv.jpg')
61
+
62
+ res = imgur.get('http://i.imgur.com/LcbbCHvs.jpg')
63
+ res.should include(url: 'http://i.imgur.com/LcbbCHv.jpg')
64
+
57
65
  lambda { imgur.get('http://imgur.com/none') }.should raise_error(Thornbed::NotValid)
58
66
  lambda { imgur.get('http://imgur.com/none.jpg') }.should raise_error(Thornbed::NotValid)
59
67
  lambda { imgur.get('http://imgur.com/a/pq0N2') }.should raise_error(Thornbed::NotValid)
@@ -2,22 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe Thornbed do
4
4
  it "should rely on ruby-oembed when querying for a oembed provider" do
5
- good_response = {
6
- "provider_url"=>"http://www.youtube.com/",
7
- "thumbnail_url"=>"http://i1.ytimg.com/vi/xJbJayhYxG4/hqdefault.jpg",
8
- "title"=>"How can I know if God Exists?",
9
- "html"=>
10
- "<iframe width=\"459\" height=\"344\" src=\"http://www.youtube.com/embed/xJbJayhYxG4?fs=1&feature=oembed\" frameborder=\"0\" allowfullscreen></iframe>",
11
- "author_name"=>"radhanathswamionline",
12
- "height"=>344,
13
- "thumbnail_width"=>480,
14
- "width"=>459,
15
- "version"=>"1.0",
16
- "author_url"=>"http://www.youtube.com/user/radhanathswamionline",
17
- "provider_name"=>"YouTube",
18
- "type"=>"video",
19
- "thumbnail_height"=>360
20
- }
5
+ good_response = {"thumbnail_width"=>480, "author_url"=>"http://www.youtube.com/user/radhanathswamionline", "version"=>"1.0", "type"=>"video", "thumbnail_height"=>360, "provider_url"=>"http://www.youtube.com/", "thumbnail_url"=>"http://i1.ytimg.com/vi/xJbJayhYxG4/hqdefault.jpg", "html"=>"<iframe width=\"459\" height=\"344\" src=\"http://www.youtube.com/embed/xJbJayhYxG4?feature=oembed\" frameborder=\"0\" allowfullscreen></iframe>", "provider_name"=>"YouTube", "height"=>344, "title"=>"How can I know if God Exists?", "width"=>459, "author_name"=>"Balarama Lila Das"}
21
6
  FakeWeb.register_uri(:get, /http(s)?:\/\/*(\.)?google\.com\/*/, body: good_response)
22
7
  url = "http://www.youtube.com/watch?v=xJbJayhYxG4&feature=g-vrec"
23
8
  res = Thornbed.get(url)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thornbed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-03 00:00:00.000000000 Z
12
+ date: 2013-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ruby-oembed
@@ -170,7 +170,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
170
  version: '0'
171
171
  segments:
172
172
  - 0
173
- hash: 1111310976437943127
173
+ hash: -3319635208009761846
174
174
  required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  none: false
176
176
  requirements:
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  version: '0'
180
180
  segments:
181
181
  - 0
182
- hash: 1111310976437943127
182
+ hash: -3319635208009761846
183
183
  requirements: []
184
184
  rubyforge_project:
185
185
  rubygems_version: 1.8.24