Merge pull request #21 from matthewlehner/head_tag_only
Fixes for head tag regex
This commit is contained in:
commit
b3bd9fa9a4
@ -4,6 +4,7 @@ module Rack
|
||||
class LiveReload
|
||||
LIVERELOAD_JS_PATH = '/__rack/livereload.js'
|
||||
LIVERELOAD_LOCAL_URI = 'http://localhost:35729/livereload.js'
|
||||
HEAD_TAG_REGEX = /<head>|<head[^(er)][^<]*>/
|
||||
|
||||
BAD_USER_AGENTS = [ %r{MSIE} ]
|
||||
|
||||
@ -77,7 +78,7 @@ module Rack
|
||||
template = ERB.new(::File.read(::File.expand_path('../../../skel/livereload.html.erb', __FILE__)))
|
||||
|
||||
if line['<head']
|
||||
line.gsub!(/<head([^(er)]|\s)[^>]*>/) { |match| %{#{match}#{template.result(binding)}} }
|
||||
line.gsub!(HEAD_TAG_REGEX) { |match| %{#{match}#{template.result(binding)}} }
|
||||
end
|
||||
|
||||
headers["X-Rack-LiveReload"] = '1'
|
||||
|
@ -223,5 +223,22 @@ describe Rack::LiveReload do
|
||||
|
||||
it { should be_bad_browser(user_agent) }
|
||||
end
|
||||
|
||||
describe 'head tag regex' do
|
||||
let(:regex) { described_class::HEAD_TAG_REGEX }
|
||||
subject { regex }
|
||||
|
||||
it { should be_kind_of(Regexp) }
|
||||
|
||||
it 'only picks a valid <head> tag' do
|
||||
regex.match("<head></head>").to_s.should eq('<head>')
|
||||
regex.match("<head><title></title></head>").to_s.should eq('<head>')
|
||||
regex.match("<head attribute='something'><title></title></head>").to_s.should eq("<head attribute='something'>")
|
||||
end
|
||||
|
||||
it 'responds false when no head tag' do
|
||||
regex.match("<header></header>").should be_false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user