thornbed 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ [![Build Status](https://travis-ci.org/eka/thornbed.png)](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
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Thornbed
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,6 +1,4 @@
1
1
  require "spec_helper"
2
- require "fakeweb"
3
- require "thornbed"
4
2
 
5
3
  describe "Imgur" do
6
4
  it "should have Imgur as a provider" do
@@ -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.2
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-21 00:00:00.000000000 Z
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