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