diff --git a/sinatra-contrib/lib/sinatra/link_header.rb b/sinatra-contrib/lib/sinatra/link_header.rb
index 115555fbbb..6d9bac4d3c 100644
--- a/sinatra-contrib/lib/sinatra/link_header.rb
+++ b/sinatra-contrib/lib/sinatra/link_header.rb
@@ -90,7 +90,7 @@ def link(*urls)
link = (response["Link"] ||= "")
urls.map do |url|
- link << "\n" unless link.empty?
+ link << ",\n" unless link.empty?
link << (http_pattern % url)
html_pattern % url
end.join "\n"
@@ -117,7 +117,7 @@ def link(*urls)
def link_headers
yield if block_given?
return "" unless response.include? "Link"
- response["Link"].lines.map do |line|
+ response["Link"].split(",\n").map do |line|
url, *opts = line.split(';').map(&:strip)
""
end.join "\n"
diff --git a/sinatra-contrib/spec/link_header_spec.rb b/sinatra-contrib/spec/link_header_spec.rb
index b6dc204e58..6cd611558f 100644
--- a/sinatra-contrib/spec/link_header_spec.rb
+++ b/sinatra-contrib/spec/link_header_spec.rb
@@ -41,7 +41,7 @@
it "takes an options hash" do
get '/'
elements = ["", "foo=\"bar\"", "rel=\"from-filter\""]
- expect(headers['Link'].lines.first.strip.split('; ').sort).to eq(elements)
+ expect(headers['Link'].split(",\n").first.strip.split('; ').sort).to eq(elements)
end
end