auto_html 1.5.3 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/auto_html/filters/flickr.rb +20 -0
- data/lib/auto_html/filters/google_map.rb +1 -1
- data/lib/auto_html/filters/redcarpet.rb +2 -2
- data/lib/auto_html/filters/soundcloud.rb +23 -0
- data/lib/auto_html/filters/twitter.rb +16 -0
- data/lib/auto_html/filters/vimeo.rb +3 -4
- data/lib/auto_html/filters/youtube.rb +3 -4
- data/lib/auto_html/filters/youtube_js_api.rb +2 -2
- data/lib/auto_html/rake_tasks.rb +9 -12
- data/test/unit/filters/google_map_test.rb +2 -2
- data/test/unit/filters/redcarpet_test.rb +7 -0
- data/test/unit/filters/soundcloud_test.rb +38 -0
- data/test/unit/filters/vimeo_test.rb +9 -9
- data/test/unit/filters/youtube_js_api_test.rb +5 -5
- data/test/unit/filters/youtube_test.rb +9 -9
- metadata +64 -43
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
require 'rexml/document'
|
4
|
+
|
5
|
+
AutoHtml.add_filter(:flickr).with(:maxwidth => nil, :maxheight => nil, :link_options => {}) do |text, options|
|
6
|
+
regex = %r{http://(www\.)?flickr\.com/photos/[^\s<]*}
|
7
|
+
|
8
|
+
text.gsub(regex) do |match|
|
9
|
+
params = { :url => match, :format => "json" }
|
10
|
+
[:maxwidth, :maxheight].each { |p| params[p] = options[p] unless options[p].nil? or not options[p] > 0 }
|
11
|
+
|
12
|
+
uri = URI("http://www.flickr.com/services/oembed")
|
13
|
+
uri.query = URI.encode_www_form(params)
|
14
|
+
|
15
|
+
response = JSON.parse(Net::HTTP.get(uri))
|
16
|
+
|
17
|
+
link_options = Array(options[:link_options]).reject { |k,v| v.nil? }.map { |k, v| %{#{k}="#{REXML::Text::normalize(v)}"} }.join(' ')
|
18
|
+
%{<a href="#{match}"#{ ' ' + link_options unless link_options.empty? }><img src="#{response["url"]}" alt="#{response["title"]}" title="#{response["title"]}" /></a>}
|
19
|
+
end
|
20
|
+
end
|
@@ -8,6 +8,6 @@ AutoHtml.add_filter(:google_map).with(:width => 420, :height => 315, :style => "
|
|
8
8
|
height = options[:height]
|
9
9
|
style = options[:style]
|
10
10
|
link_text = options[:link_text]
|
11
|
-
%{<iframe width="#{width}" height="#{height}" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="
|
11
|
+
%{<iframe width="#{width}" height="#{height}" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="//maps.google.co#{domain_country}/maps?f=q&source=s_q&#{map_query}&output=embed"></iframe><br /><small><a href="//maps.google.co#{domain_country}/maps?f=q&source=embed&#{map_query}" style="#{style}">#{link_text}</a></small>}
|
12
12
|
end
|
13
13
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'redcarpet'
|
2
2
|
|
3
|
-
AutoHtml.add_filter(:redcarpet).with(:renderer => Redcarpet::Render::HTML) do |text, options|
|
4
|
-
Redcarpet::Markdown.new(options[:renderer]).render(text)
|
3
|
+
AutoHtml.add_filter(:redcarpet).with(:renderer => Redcarpet::Render::HTML, :markdown_options => {}) do |text, options|
|
4
|
+
Redcarpet::Markdown.new(options[:renderer], options[:markdown_options]).render(text)
|
5
5
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
AutoHtml.add_filter(:soundcloud).with({}) do |text, options|
|
5
|
+
# set these options
|
6
|
+
# :maxwidth => '', :maxheight => '', :auto_play => false, :show_comments => false
|
7
|
+
text.gsub(/(https?:\/\/)?(www.)?soundcloud\.com\/.*/) do |match|
|
8
|
+
new_uri = match.to_s
|
9
|
+
new_uri = (new_uri =~ /^https?\:\/\/.*/) ? URI(new_uri) : URI("http://#{new_uri}")
|
10
|
+
new_uri.normalize!
|
11
|
+
|
12
|
+
uri = URI("http://soundcloud.com/oembed")
|
13
|
+
params = {:format => 'json', :url => new_uri}.merge(options)
|
14
|
+
uri.query = params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
|
15
|
+
response = Net::HTTP.get(uri)
|
16
|
+
if !response.blank?
|
17
|
+
JSON.parse(response)["html"]
|
18
|
+
else
|
19
|
+
match
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
AutoHtml.add_filter(:twitter).with({}) do |text, options|
|
5
|
+
regex = %r{https://twitter\.com(/#!)?/[A-Za-z0-9_]{1,15}/status(es)?/\d+}
|
6
|
+
|
7
|
+
text.gsub(regex) do |match|
|
8
|
+
params = { :url => match }.merge(options)
|
9
|
+
|
10
|
+
uri = URI("http://api.twitter.com/1/statuses/oembed.json")
|
11
|
+
uri.query = URI.encode_www_form(params)
|
12
|
+
|
13
|
+
response = JSON.parse(Net::HTTP.get(uri))
|
14
|
+
response["html"]
|
15
|
+
end
|
16
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
AutoHtml.add_filter(:vimeo).with(:width => 440, :height => 248, :show_title => false, :show_byline => false, :show_portrait => false) do |text, options|
|
2
|
-
text.gsub(/
|
3
|
-
|
4
|
-
vimeo_id = $3
|
2
|
+
text.gsub(/https?:\/\/(www.)?vimeo\.com\/([A-Za-z0-9._%-]*)((\?|#)\S+)?/) do
|
3
|
+
vimeo_id = $2
|
5
4
|
width = options[:width]
|
6
5
|
height = options[:height]
|
7
6
|
show_title = "title=0" unless options[:show_title]
|
@@ -11,6 +10,6 @@ AutoHtml.add_filter(:vimeo).with(:width => 440, :height => 248, :show_title => f
|
|
11
10
|
query_string_variables = [show_title, show_byline, show_portrait].compact.join("&")
|
12
11
|
query_string = "?" + query_string_variables unless query_string_variables.empty?
|
13
12
|
|
14
|
-
%{<iframe src="
|
13
|
+
%{<iframe src="//player.vimeo.com/video/#{vimeo_id}#{query_string}" width="#{width}" height="#{height}" frameborder="#{frameborder}"></iframe>}
|
15
14
|
end
|
16
15
|
end
|
@@ -1,13 +1,12 @@
|
|
1
1
|
AutoHtml.add_filter(:youtube).with(:width => 420, :height => 315, :frameborder => 0, :wmode => nil) do |text, options|
|
2
|
-
regex = /
|
2
|
+
regex = /https?:\/\/(www.)?(youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/watch\?feature=player_embedded&v=)([A-Za-z0-9_-]*)(\&\S+)?(\S)*/
|
3
3
|
text.gsub(regex) do
|
4
|
-
|
5
|
-
youtube_id = $4
|
4
|
+
youtube_id = $3
|
6
5
|
width = options[:width]
|
7
6
|
height = options[:height]
|
8
7
|
frameborder = options[:frameborder]
|
9
8
|
wmode = options[:wmode]
|
10
|
-
src = "
|
9
|
+
src = "//www.youtube.com/embed/#{youtube_id}"
|
11
10
|
src += "?wmode=#{wmode}" if wmode
|
12
11
|
%{<iframe width="#{width}" height="#{height}" src="#{src}" frameborder="#{frameborder}" allowfullscreen></iframe>}
|
13
12
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
AutoHtml.add_filter(:youtube_js_api).with(:width => 390, :height => 250) do |text, options|
|
2
|
-
text.gsub(/
|
2
|
+
text.gsub(/https?:\/\/(www.)?youtube\.com\/watch\?v=([A-Za-z0-9._%-]*)(\&\S+)?/) do
|
3
3
|
youtube_id = $2
|
4
|
-
%{<object width="#{options[:width]}" height="#{options[:height]}"><param name="movie" value="
|
4
|
+
%{<object width="#{options[:width]}" height="#{options[:height]}"><param name="movie" value="//www.youtube.com/v/#{youtube_id}?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/#{youtube_id}?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="#{options[:width]}" height="#{options[:height]}" allowscriptaccess="always"></embed></object>}
|
5
5
|
end
|
6
6
|
end
|
data/lib/auto_html/rake_tasks.rb
CHANGED
@@ -7,24 +7,21 @@ require 'auto_html/task'
|
|
7
7
|
namespace :auto_html do
|
8
8
|
desc "Rebuild auto_html columns"
|
9
9
|
task :rebuild => :environment do
|
10
|
-
|
10
|
+
|
11
|
+
klass = AutoHtml::Task.obtain_class.constantize
|
12
|
+
suffix = AutoHtmlFor.auto_html_for_options[:htmlized_attribute_suffix]
|
13
|
+
column_names = klass.respond_to?(:column_names) ? klass.column_names : klass.fields.keys
|
14
|
+
observed_attributes = column_names.select { |c| c=~/#{suffix}$/ }.map { |c| c.gsub(/#{suffix}$/, '')}
|
15
|
+
|
11
16
|
i = 0
|
12
|
-
auto_html_fields = []
|
13
17
|
klass.find_each do |item|
|
14
|
-
|
15
|
-
|
16
|
-
auto_html_methods.each do |method|
|
17
|
-
auto_html_fields << method
|
18
|
-
end
|
18
|
+
observed_attributes.each do |field|
|
19
|
+
item.send("#{field}=", item.send(field))
|
19
20
|
end
|
20
|
-
|
21
|
-
auto_html_fields.each do |field|
|
22
|
-
item.send(field)
|
23
|
-
end
|
24
|
-
|
25
21
|
item.save
|
26
22
|
i += 1
|
27
23
|
end
|
24
|
+
|
28
25
|
puts "Done! Processed #{i} items."
|
29
26
|
end
|
30
27
|
end
|
@@ -4,11 +4,11 @@ class GoogleMapTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def test_transform
|
6
6
|
result = auto_html('http://maps.google.co.kr/maps?q=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&hl=ko&ie=UTF8&ll=37.472942,126.884762&spn=0.00774,0.010053&sll=37.473027,126.88451&sspn=0.003887,0.005026&vpsrc=6&gl=kr&hq=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&t=m&z=17&iwloc=A') { google_map }
|
7
|
-
assert_equal '<iframe width="420" height="315" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="
|
7
|
+
assert_equal '<iframe width="420" height="315" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="//maps.google.co.kr/maps?f=q&source=s_q&q=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&hl=ko&ie=UTF8&ll=37.472942,126.884762&spn=0.00774,0.010053&sll=37.473027,126.88451&sspn=0.003887,0.005026&vpsrc=6&gl=kr&hq=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&t=m&z=17&iwloc=A&output=embed"></iframe><br /><small><a href="//maps.google.co.kr/maps?f=q&source=embed&q=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&hl=ko&ie=UTF8&ll=37.472942,126.884762&spn=0.00774,0.010053&sll=37.473027,126.88451&sspn=0.003887,0.005026&vpsrc=6&gl=kr&hq=%ED%8C%8C%ED%8A%B8%EB%84%88%EC%8A%A4%ED%83%80%EC%9B%8C+1%EC%B0%A8&t=m&z=17&iwloc=A" style="color:#000;text-align:left">View Larger Map</a></small>', result
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_transform_2
|
11
11
|
result = auto_html('http://maps.google.com/maps?hl=en&q=newyork&gs_sm=e&gs_upl=917l917l0l1666l1l1l0l0l0l0l317l317l3-1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1280&bih=679&um=1&ie=UTF-8&sa=N&tab=wl') { google_map }
|
12
|
-
assert_equal '<iframe width="420" height="315" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="
|
12
|
+
assert_equal '<iframe width="420" height="315" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="//maps.google.com/maps?f=q&source=s_q&hl=en&q=newyork&gs_sm=e&gs_upl=917l917l0l1666l1l1l0l0l0l0l317l317l3-1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1280&bih=679&um=1&ie=UTF-8&sa=N&tab=wl&output=embed"></iframe><br /><small><a href="//maps.google.com/maps?f=q&source=embed&hl=en&q=newyork&gs_sm=e&gs_upl=917l917l0l1666l1l1l0l0l0l0l317l317l3-1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1280&bih=679&um=1&ie=UTF-8&sa=N&tab=wl" style="color:#000;text-align:left">View Larger Map</a></small>', result
|
13
13
|
end
|
14
14
|
end
|
@@ -28,4 +28,11 @@ class RedcarpetTest < Test::Unit::TestCase
|
|
28
28
|
assert_equal '<p><a href="http://example.org/" target="_blank">This is a link</a></p>'+"\n", result
|
29
29
|
end
|
30
30
|
|
31
|
+
def test_options
|
32
|
+
result = auto_html('http://example.org/') { redcarpet }
|
33
|
+
assert_equal '<p>http://example.org/</p>'+"\n", result
|
34
|
+
|
35
|
+
result = auto_html('http://example.org/') { redcarpet(:markdown_options => { :autolink => true }) }
|
36
|
+
assert_equal '<p><a href="http://example.org/">http://example.org/</a></p>'+"\n", result
|
37
|
+
end
|
31
38
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.expand_path('../../unit_test_helper', __FILE__)
|
2
|
+
require 'fakeweb'
|
3
|
+
|
4
|
+
class SoundcloudTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
response = '{"version":1.0,"type":"rich","provider_name":"SoundCloud","provider_url":"http://soundcloud.com","height":166,"width":"100%","title":"Flickermood by Forss","description":"From the Soulhack album,\u0026nbsp;recently featured in this ad \u003Ca href=\"https://www.dswshoes.com/tv_commercial.jsp?m=october2007\"\u003Ehttps://www.dswshoes.com/tv_commercial.jsp?m=october2007\u003C/a\u003E ","thumbnail_url":"http://i1.sndcdn.com/artworks-000000001720-91c40a-t500x500.jpg?330b92d","html":"\u003Ciframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" src=\"http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293\u0026show_artwork=true\"\u003E\u003C/iframe\u003E","author_name":"Forss","author_url":"http://soundcloud.com/forss"}'
|
8
|
+
FakeWeb.register_uri(:get, %r|http://soundcloud\.com/oembed|, :body => response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_transform_url_with_www
|
12
|
+
result = auto_html('http://www.soundcloud.com/forss/flickermood') { soundcloud }
|
13
|
+
assert_equal '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true"></iframe>', result
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_transform_url_without_www
|
17
|
+
result = auto_html('http://soundcloud.com/forss/flickermood') { soundcloud }
|
18
|
+
assert_equal '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true"></iframe>', result
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_transform_url_without_protocol
|
22
|
+
result = auto_html('soundcloud.com/forss/flickermood') { soundcloud }
|
23
|
+
assert_equal '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true"></iframe>', result
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_transform_url_with_ssl
|
27
|
+
result = auto_html('https://soundcloud.com/forss/flickermood') { soundcloud }
|
28
|
+
assert_equal '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true"></iframe>', result
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_transform_url_with_options
|
32
|
+
response = '{"version":1.0,"type":"rich","provider_name":"SoundCloud","provider_url":"http://soundcloud.com","height":100,"width":100,"title":"Flickermood by Forss","description":"From the Soulhack album,\u0026nbsp;recently featured in this ad \u003Ca href=\"https://www.dswshoes.com/tv_commercial.jsp?m=october2007\"\u003Ehttps://www.dswshoes.com/tv_commercial.jsp?m=october2007\u003C/a\u003E ","thumbnail_url":"http://i1.sndcdn.com/artworks-000000001720-91c40a-t500x500.jpg?330b92d","html":"\u003Ciframe width=\"100\" height=\"100\" scrolling=\"no\" frameborder=\"no\" src=\"http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293\u0026show_artwork=true\u0026show_comments=false\u0026maxwidth=100\u0026maxheight=100\u0026auto_play=false\"\u003E\u003C/iframe\u003E","author_name":"Forss","author_url":"http://soundcloud.com/forss"}'
|
33
|
+
FakeWeb.register_uri(:get, %r|http://soundcloud\.com/oembed|, :body => response)
|
34
|
+
|
35
|
+
result = auto_html('http://www.soundcloud.com/forss/flickermood') { soundcloud(:maxwidth => '100', :maxheight => '100', :auto_play => false, :show_comments => false) }
|
36
|
+
assert_equal '<iframe width="100" height="100" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F293&show_artwork=true&show_comments=false&maxwidth=100&maxheight=100&auto_play=false"></iframe>', result
|
37
|
+
end
|
38
|
+
end
|
@@ -4,47 +4,47 @@ class VimeoTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def test_transform_url_with_www
|
6
6
|
result = auto_html('http://www.vimeo.com/3300155') { vimeo }
|
7
|
-
assert_equal '<iframe src="
|
7
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="440" height="248" frameborder="0"></iframe>', result
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_transform_url_without_www
|
11
11
|
result = auto_html('http://vimeo.com/3300155') { vimeo }
|
12
|
-
assert_equal '<iframe src="
|
12
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="440" height="248" frameborder="0"></iframe>', result
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_transform_url_with_params
|
16
16
|
result = auto_html('http://vimeo.com/3300155?pg=embed&sec=') { vimeo }
|
17
|
-
assert_equal '<iframe src="
|
17
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="440" height="248" frameborder="0"></iframe>', result
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_transform_url_with_anchor
|
21
21
|
result = auto_html('http://vimeo.com/3300155#skirt') { vimeo }
|
22
|
-
assert_equal '<iframe src="
|
22
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="440" height="248" frameborder="0"></iframe>', result
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_transform_with_options
|
26
26
|
result = auto_html("http://www.vimeo.com/3300155") { vimeo(:width => 300, :height => 250) }
|
27
|
-
assert_equal '<iframe src="
|
27
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="300" height="250" frameborder="0"></iframe>', result
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_transform_with_title
|
31
31
|
result = auto_html("http://www.vimeo.com/3300155") { vimeo(:width => 300, :height => 250, :show_title => true) }
|
32
|
-
assert_equal '<iframe src="
|
32
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?byline=0&portrait=0" width="300" height="250" frameborder="0"></iframe>', result
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_transform_with_byline
|
36
36
|
result = auto_html("http://www.vimeo.com/3300155") { vimeo(:width => 300, :height => 250, :show_byline => true) }
|
37
|
-
assert_equal '<iframe src="
|
37
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&portrait=0" width="300" height="250" frameborder="0"></iframe>', result
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_transform_with_portrait
|
41
41
|
result = auto_html("http://www.vimeo.com/3300155") { vimeo(:width => 300, :height => 250, :show_portrait => true) }
|
42
|
-
assert_equal '<iframe src="
|
42
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0" width="300" height="250" frameborder="0"></iframe>', result
|
43
43
|
end
|
44
44
|
|
45
45
|
def test_transform_url_with_https
|
46
46
|
result = auto_html('https://vimeo.com/3300155') { vimeo }
|
47
|
-
assert_equal '<iframe src="
|
47
|
+
assert_equal '<iframe src="//player.vimeo.com/video/3300155?title=0&byline=0&portrait=0" width="440" height="248" frameborder="0"></iframe>', result
|
48
48
|
end
|
49
49
|
|
50
50
|
end
|
@@ -4,27 +4,27 @@ class YouTubeJsApiTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def test_transform
|
6
6
|
result = auto_html('http://www.youtube.com/watch?v=BwNrmYRiX_o') { youtube_js_api }
|
7
|
-
assert_equal '<object width="390" height="250"><param name="movie" value="
|
7
|
+
assert_equal '<object width="390" height="250"><param name="movie" value="//www.youtube.com/v/BwNrmYRiX_o?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/BwNrmYRiX_o?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="390" height="250" allowscriptaccess="always"></embed></object>', result
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_transform2
|
11
11
|
result = auto_html('http://www.youtube.com/watch?v=3-ewi9saKg8&eurl=http%3A%2F%2Fvukajlija.com%2Fvideo%2Fklipovi%3Fstrana%3D6&feature=player_embedded') { youtube_js_api }
|
12
|
-
assert_equal '<object width="390" height="250"><param name="movie" value="
|
12
|
+
assert_equal '<object width="390" height="250"><param name="movie" value="//www.youtube.com/v/3-ewi9saKg8?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/3-ewi9saKg8?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="390" height="250" allowscriptaccess="always"></embed></object>', result
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_transform3
|
16
16
|
result = auto_html('http://www.youtube.com/watch?v=Mw8KJ29qph0&feature=related') { youtube_js_api }
|
17
|
-
assert_equal '<object width="390" height="250"><param name="movie" value="
|
17
|
+
assert_equal '<object width="390" height="250"><param name="movie" value="//www.youtube.com/v/Mw8KJ29qph0?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/Mw8KJ29qph0?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="390" height="250" allowscriptaccess="always"></embed></object>', result
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_transform_url_without_www
|
21
21
|
result = auto_html('http://youtube.com/watch?v=BwNrmYRiX_o') { youtube_js_api }
|
22
|
-
assert_equal '<object width="390" height="250"><param name="movie" value="
|
22
|
+
assert_equal '<object width="390" height="250"><param name="movie" value="//www.youtube.com/v/BwNrmYRiX_o?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/BwNrmYRiX_o?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="390" height="250" allowscriptaccess="always"></embed></object>', result
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_transform_with_options
|
26
26
|
result = auto_html('http://www.youtube.com/watch?v=ZA1NoOOoaNw') { youtube_js_api(:width => 300, :height => 250) }
|
27
|
-
assert_equal '<object width="300" height="250"><param name="movie" value="
|
27
|
+
assert_equal '<object width="300" height="250"><param name="movie" value="//www.youtube.com/v/ZA1NoOOoaNw?enablejsapi=1&playerapiid=ytplayer"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/ZA1NoOOoaNw?enablejsapi=1&playerapiid=ytplayer" type="application/x-shockwave-flash" wmode="transparent" width="300" height="250" allowscriptaccess="always"></embed></object>', result
|
28
28
|
end
|
29
29
|
|
30
30
|
end
|
@@ -4,46 +4,46 @@ class YouTubeTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def test_transform
|
6
6
|
result = auto_html('http://www.youtube.com/watch?v=BwNrmYRiX_o') { youtube }
|
7
|
-
assert_equal '<iframe width="420" height="315" src="
|
7
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/BwNrmYRiX_o" frameborder="0" allowfullscreen></iframe>', result
|
8
8
|
end
|
9
9
|
|
10
10
|
def test_transform2
|
11
11
|
result = auto_html('http://www.youtube.com/watch?v=BwNrmYRiX_o&eurl=http%3A%2F%2Fvukajlija.com%2Fvideo%2Fklipovi%3Fstrana%3D6&feature=player_embedded') { youtube }
|
12
|
-
assert_equal '<iframe width="420" height="315" src="
|
12
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/BwNrmYRiX_o" frameborder="0" allowfullscreen></iframe>', result
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_transform3
|
16
16
|
result = auto_html('http://www.youtube.com/watch?v=BwNrmYRiX_o&feature=related') { youtube }
|
17
|
-
assert_equal '<iframe width="420" height="315" src="
|
17
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/BwNrmYRiX_o" frameborder="0" allowfullscreen></iframe>', result
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_transform3
|
21
21
|
result = auto_html('foo http://www.youtube.com/watch?v=fT1ahr81HLw bar') { youtube }
|
22
|
-
assert_equal 'foo <iframe width="420" height="315" src="
|
22
|
+
assert_equal 'foo <iframe width="420" height="315" src="//www.youtube.com/embed/fT1ahr81HLw" frameborder="0" allowfullscreen></iframe> bar', result
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_transform_url_without_www
|
26
26
|
result = auto_html('http://youtube.com/watch?v=BwNrmYRiX_o') { youtube }
|
27
|
-
assert_equal '<iframe width="420" height="315" src="
|
27
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/BwNrmYRiX_o" frameborder="0" allowfullscreen></iframe>', result
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_transform_with_options
|
31
31
|
result = auto_html('http://www.youtube.com/watch?v=BwNrmYRiX_o') { youtube(:width => 300, :height => 255, :frameborder => 1, :wmode => 'window') }
|
32
|
-
assert_equal '<iframe width="300" height="255" src="
|
32
|
+
assert_equal '<iframe width="300" height="255" src="//www.youtube.com/embed/BwNrmYRiX_o?wmode=window" frameborder="1" allowfullscreen></iframe>', result
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_transform_with_short_url
|
36
36
|
result = auto_html('http://www.youtu.be/BwNrmYRiX_o') { youtube }
|
37
|
-
assert_equal '<iframe width="420" height="315" src="
|
37
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/BwNrmYRiX_o" frameborder="0" allowfullscreen></iframe>', result
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_transform_https
|
41
41
|
result = auto_html("https://www.youtube.com/watch?v=t7NdBIA4zJg") { youtube }
|
42
|
-
assert_equal '<iframe width="420" height="315" src="
|
42
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/t7NdBIA4zJg" frameborder="0" allowfullscreen></iframe>', result
|
43
43
|
end
|
44
44
|
|
45
45
|
def test_short_with_params
|
46
46
|
result = auto_html("http://youtu.be/t7NdBIA4zJg?t=1s&hd=1") { youtube }
|
47
|
-
assert_equal '<iframe width="420" height="315" src="
|
47
|
+
assert_equal '<iframe width="420" height="315" src="//www.youtube.com/embed/t7NdBIA4zJg" frameborder="0" allowfullscreen></iframe>', result
|
48
48
|
end
|
49
49
|
end
|
metadata
CHANGED
@@ -1,55 +1,62 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: auto_html
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 1.6.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Dejan Simic
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-07-29 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rinku
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 1.5.0
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
25
|
+
requirements:
|
27
26
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 5
|
32
|
+
- 0
|
29
33
|
version: 1.5.0
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: redcarpet
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 2.0.0
|
38
34
|
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: redcarpet
|
39
38
|
prerelease: false
|
40
|
-
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
41
|
+
requirements:
|
43
42
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 0
|
48
|
+
version: "2.0"
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
description: Automatically transforms URIs (via domain) and includes the destination resource (Vimeo, YouTube movie, image, ...) in your document
|
48
52
|
email: desimic@gmail.com
|
49
53
|
executables: []
|
54
|
+
|
50
55
|
extensions: []
|
56
|
+
|
51
57
|
extra_rdoc_files: []
|
52
|
-
|
58
|
+
|
59
|
+
files:
|
53
60
|
- Rakefile
|
54
61
|
- lib/auto_html/auto_html_for.rb
|
55
62
|
- lib/auto_html/base.rb
|
@@ -57,6 +64,7 @@ files:
|
|
57
64
|
- lib/auto_html/capistrano.rb
|
58
65
|
- lib/auto_html/filter.rb
|
59
66
|
- lib/auto_html/filters/dailymotion.rb
|
67
|
+
- lib/auto_html/filters/flickr.rb
|
60
68
|
- lib/auto_html/filters/gist.rb
|
61
69
|
- lib/auto_html/filters/google_map.rb
|
62
70
|
- lib/auto_html/filters/google_video.rb
|
@@ -67,6 +75,8 @@ files:
|
|
67
75
|
- lib/auto_html/filters/redcarpet.rb
|
68
76
|
- lib/auto_html/filters/sanitize.rb
|
69
77
|
- lib/auto_html/filters/simple_format.rb
|
78
|
+
- lib/auto_html/filters/soundcloud.rb
|
79
|
+
- lib/auto_html/filters/twitter.rb
|
70
80
|
- lib/auto_html/filters/vimeo.rb
|
71
81
|
- lib/auto_html/filters/youtube.rb
|
72
82
|
- lib/auto_html/filters/youtube_js_api.rb
|
@@ -93,6 +103,7 @@ files:
|
|
93
103
|
- test/unit/filters/redcarpet_test.rb
|
94
104
|
- test/unit/filters/sanitize_test.rb
|
95
105
|
- test/unit/filters/simple_format_test.rb
|
106
|
+
- test/unit/filters/soundcloud_test.rb
|
96
107
|
- test/unit/filters/vimeo_test.rb
|
97
108
|
- test/unit/filters/youtube_js_api_test.rb
|
98
109
|
- test/unit/filters/youtube_test.rb
|
@@ -100,26 +111,36 @@ files:
|
|
100
111
|
- README.md
|
101
112
|
homepage: http://github.com/dejan/auto_html
|
102
113
|
licenses: []
|
114
|
+
|
103
115
|
post_install_message:
|
104
116
|
rdoc_options: []
|
105
|
-
|
117
|
+
|
118
|
+
require_paths:
|
106
119
|
- lib
|
107
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
121
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
hash: 3
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
version: "0"
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
130
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
135
|
+
segments:
|
136
|
+
- 0
|
137
|
+
version: "0"
|
119
138
|
requirements: []
|
139
|
+
|
120
140
|
rubyforge_project:
|
121
141
|
rubygems_version: 1.8.24
|
122
142
|
signing_key:
|
123
143
|
specification_version: 3
|
124
144
|
summary: Transform URIs to appropriate markup
|
125
145
|
test_files: []
|
146
|
+
|