thornbed 0.0.2 → 0.1.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.
- data/README.md +2 -0
- data/Rakefile +6 -0
- data/lib/thornbed/providers/memegenerator.rb +30 -0
- data/lib/thornbed/version.rb +1 -1
- data/spec/providers/imgur_spec.rb +0 -2
- data/spec/providers/memegenerator_spec.rb +27 -0
- data/thornbed.gemspec +1 -0
- metadata +27 -2
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Thornbed provides a single interface to get embeddable content from many sites, even sites with no OEmbed support.
|
4
4
|
|
5
|
+
[](https://travis-ci.org/eka/thornbed)
|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
require "uri"
|
2
|
+
require "thornbed"
|
3
|
+
|
4
|
+
module Thornbed::Providers
|
5
|
+
class Memegenerator < Thornbed::Providers::Provider
|
6
|
+
def initialize
|
7
|
+
@pattern = /^http(s)?:\/\/(cdn\.)?memegenerator\.net\/instance(s)?\/(\d+x\/)?\d+(\.jpg)?(\?[\w\W]*)?$/
|
8
|
+
@type = "photo"
|
9
|
+
@provider_url = "http://memegenerator.com"
|
10
|
+
end
|
11
|
+
|
12
|
+
def get(url)
|
13
|
+
raise Thornbed::NotValid, url if !self.valid?(url)
|
14
|
+
url = URI.parse(url)
|
15
|
+
ptype = "jpg"
|
16
|
+
pic_id = /(\d+x\/)?\d+(\.jpg)?(\?[\w\W]*)?$/.match(url.path)
|
17
|
+
{
|
18
|
+
url: "http://cdn.memegenerator.net/instances/400x/#{pic_id}.#{ptype}",
|
19
|
+
type: "#{@type}",
|
20
|
+
provider_name: self.provider_name,
|
21
|
+
provider_url: @provider_url,
|
22
|
+
thumbnail_url: "http://cdn.memegenerator.net/instances/100x/#{pic_id}.#{ptype}",
|
23
|
+
version: "1.0",
|
24
|
+
page: "http://memegenerator.net/instance/#{pic_id}",
|
25
|
+
width: nil,
|
26
|
+
height: nil
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/thornbed/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Memegenerator" do
|
4
|
+
it "should have Memegenerator as a provider" do
|
5
|
+
Thornbed::Providers.constants.should include(:Memegenerator)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should accept different Memegenerator urls" do
|
9
|
+
memegenerator = Thornbed::Providers::Memegenerator.new
|
10
|
+
memegenerator.valid?("http://memegenerator.net/instance/30688283").should be_true
|
11
|
+
memegenerator.valid?("http://cdn.memegenerator.net/instances/400x/30688283.jpg").should be_true
|
12
|
+
memegenerator.valid?("http://memegenerator.net/instance/30691419?browsingOrder=Popular&browsingTimeSpan=Today").should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return OEmbed hash for Memegenerator urls" do
|
16
|
+
memegenerator = Thornbed::Providers::Memegenerator.new
|
17
|
+
res = memegenerator.get("http://memegenerator.net/instance/30688283")
|
18
|
+
res.should include(url: "http://cdn.memegenerator.net/instances/400x/30688283.jpg")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should discover Memegenerator provider" do
|
22
|
+
res = Thornbed.get("http://memegenerator.net/instance/30688283")
|
23
|
+
res.should include(url: "http://cdn.memegenerator.net/instances/400x/30688283.jpg")
|
24
|
+
res.should include(thumbnail_url: "http://cdn.memegenerator.net/instances/100x/30688283.jpg")
|
25
|
+
res.should include(provider_name: "Memegenerator")
|
26
|
+
end
|
27
|
+
end
|
data/thornbed.gemspec
CHANGED
@@ -22,4 +22,5 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.add_development_dependency "rb-fsevent", "~> 0.9.2"
|
23
23
|
gem.add_development_dependency "terminal-notifier-guard", "~> 1.5.3"
|
24
24
|
gem.add_development_dependency "fakeweb", "~> 1.3.0"
|
25
|
+
gem.add_development_dependency "rake", "~> 10.0.2"
|
25
26
|
end
|
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.0
|
4
|
+
version: 0.1.0
|
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-11-
|
12
|
+
date: 2012-11-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-oembed
|
@@ -107,6 +107,22 @@ dependencies:
|
|
107
107
|
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: 1.3.0
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rake
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 10.0.2
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 10.0.2
|
110
126
|
description: Thin OEmbed wrapper
|
111
127
|
email:
|
112
128
|
- esteban.feldman@gmail.com
|
@@ -126,9 +142,11 @@ files:
|
|
126
142
|
- lib/thornbed/provider.rb
|
127
143
|
- lib/thornbed/providers.rb
|
128
144
|
- lib/thornbed/providers/imgur.rb
|
145
|
+
- lib/thornbed/providers/memegenerator.rb
|
129
146
|
- lib/thornbed/providers/quickmeme.rb
|
130
147
|
- lib/thornbed/version.rb
|
131
148
|
- spec/providers/imgur_spec.rb
|
149
|
+
- spec/providers/memegenerator_spec.rb
|
132
150
|
- spec/providers/quickmeme_spec.rb
|
133
151
|
- spec/spec_helper.rb
|
134
152
|
- spec/thornbed_spec.rb
|
@@ -145,12 +163,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
163
|
- - ! '>='
|
146
164
|
- !ruby/object:Gem::Version
|
147
165
|
version: '0'
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
hash: -793414226059006888
|
148
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
170
|
none: false
|
150
171
|
requirements:
|
151
172
|
- - ! '>='
|
152
173
|
- !ruby/object:Gem::Version
|
153
174
|
version: '0'
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
hash: -793414226059006888
|
154
178
|
requirements: []
|
155
179
|
rubyforge_project:
|
156
180
|
rubygems_version: 1.8.24
|
@@ -160,6 +184,7 @@ summary: Thornbed provides a single interface to get embeddable content from man
|
|
160
184
|
sites, even sites with no OEmbed support.
|
161
185
|
test_files:
|
162
186
|
- spec/providers/imgur_spec.rb
|
187
|
+
- spec/providers/memegenerator_spec.rb
|
163
188
|
- spec/providers/quickmeme_spec.rb
|
164
189
|
- spec/spec_helper.rb
|
165
190
|
- spec/thornbed_spec.rb
|