shenie-embedded_url 0.0.2 → 0.0.4
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.rdoc +28 -3
- data/VERSION +1 -1
- data/embedded_url.gemspec +1 -1
- data/lib/embedded_url.rb +29 -0
- data/lib/embedded_url/slideshare.rb +11 -5
- data/rails/init.rb +0 -26
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -1,15 +1,40 @@
|
|
1
1
|
= embedded_url
|
2
2
|
|
3
|
-
|
3
|
+
For ActiveRecord, you can specify attribute to be embedded like the following.
|
4
|
+
|
5
|
+
class Post < ActiveRecord::Base
|
6
|
+
with_embedded :link
|
7
|
+
end
|
8
|
+
|
9
|
+
Then you can get the embedded URL like
|
10
|
+
|
11
|
+
@post.embedded_link
|
12
|
+
|
13
|
+
If Embedded URL does not recognize the link then it will return the original value with 'http://' prefixed (if it is not already).
|
14
|
+
|
15
|
+
SlideShare configuration (apply at http://slideshare.net)
|
4
16
|
|
5
17
|
EmbeddedURL::SlideShare.configure do |config|
|
6
18
|
config.api_key = 'api'
|
7
19
|
config.shared_secret = 'secret'
|
8
20
|
end
|
9
21
|
|
10
|
-
|
11
|
-
|
22
|
+
Usage examples
|
23
|
+
|
24
|
+
include EmbeddedURL
|
25
|
+
|
26
|
+
Gist.new('http://gist.github.com/173149').to_embedded
|
27
|
+
Youtube.new('http://www.youtube.com/watch?v=bZvSD1O86M8').to_embedded
|
28
|
+
Vimeo.new('http://vimeo.com/2927154').to_embedded
|
29
|
+
SlideShare.new('http://www.slideshare.net/MackCollier/what-rockstars-can-teach-you-about-kicking-ass-with-social-media').to_embedded
|
30
|
+
|
31
|
+
|
32
|
+
== Future Plan
|
33
|
+
|
34
|
+
Support these
|
12
35
|
|
36
|
+
* http://ustream.tv
|
37
|
+
* http://screenr.com
|
13
38
|
|
14
39
|
== Note on Patches/Pull Requests
|
15
40
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/embedded_url.gemspec
CHANGED
data/lib/embedded_url.rb
CHANGED
@@ -5,3 +5,32 @@ require File.join(File.dirname(__FILE__), 'embedded_url/gist')
|
|
5
5
|
require File.join(File.dirname(__FILE__), 'embedded_url/slideshare')
|
6
6
|
require File.join(File.dirname(__FILE__), 'embedded_url/youtube')
|
7
7
|
require File.join(File.dirname(__FILE__), 'embedded_url/vimeo')
|
8
|
+
|
9
|
+
module EmbeddedURL
|
10
|
+
def self.included(base)
|
11
|
+
base.extend(ClassMethods)
|
12
|
+
end
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
|
16
|
+
def with_embedded(field)
|
17
|
+
|
18
|
+
define_method("embedded_#{field}") do
|
19
|
+
|
20
|
+
link = send(field)
|
21
|
+
|
22
|
+
begin
|
23
|
+
Gist.new(link).to_embedded ||
|
24
|
+
Youtube.new(link).to_embedded ||
|
25
|
+
Vimeo.new(link).to_embedded ||
|
26
|
+
SlideShare.new(link).to_embedded ||
|
27
|
+
(link =~ /^http/ ? link : "http://#{link}")
|
28
|
+
rescue
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
@@ -19,11 +19,17 @@ module EmbeddedURL
|
|
19
19
|
@@shared_secret = secret
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
def initialize(url)
|
23
|
+
@url = url
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_embedded
|
27
|
+
if @url =~ /slideshare\.net/
|
28
|
+
now = Time.now.to_i.to_s
|
29
|
+
hashed = Digest::SHA1.hexdigest("#{@@shared_secret}#{now}")
|
30
|
+
result = SlideShare.get('/get_slideshow', :query => {:ts => now, :hash => hashed, :slideshow_url => @url})
|
31
|
+
result['Slideshow']['Embed']
|
32
|
+
end
|
27
33
|
end
|
28
34
|
|
29
35
|
end
|
data/rails/init.rb
CHANGED
@@ -1,31 +1,5 @@
|
|
1
1
|
require "embedded_url"
|
2
2
|
|
3
|
-
module EmbeddedUrl
|
4
|
-
def self.included(base)
|
5
|
-
base.extend(ClassMethods)
|
6
|
-
end
|
7
|
-
|
8
|
-
module ClassMethods
|
9
|
-
|
10
|
-
def embedded_url(field)
|
11
|
-
|
12
|
-
define_method("embedded_#{field}") do
|
13
|
-
|
14
|
-
link = send(field)
|
15
|
-
|
16
|
-
begin
|
17
|
-
Gist.new(link).to_embedded || Youtube.new(link).to_embedded || Vimeo.new(link).to_embedded ||
|
18
|
-
SlideShare.new(link).to_embedded ||
|
19
|
-
rescue
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
3
|
ActiveRecord::Base.class_eval do
|
30
4
|
include EmbeddedURL
|
31
5
|
end
|