class Faraday::Hypermedia::LinkExtractorCJ
Public Instance Methods
process_response(response_env)
click to toggle source
# File lib/faraday/hypermedia/link_extractor.rb, line 7 def process_response(response_env) # TODO: collectionのlinksしか取り出していない。itemsにも存在する # TODO: itemsのselfがあれば取り出す cj = parse(response_env[:body]) return if cj.links.empty? && cj.items.empty? # link_arrays = cj.links.map do |link| # attrs = [['rel', link.rel]] # attrs << ['title', link.name] if link.name # [link.href, attrs] # end # link_value = LinkHeader.new(link_arrays).to_s link_values = cj.links.map { |link| value = %(<#{link.href}>;rel="#{link.rel}") value += %(;title="#{link.name}") if link.name value } item_values = cj.items.map { |item| %(<#{item.href}>;rel="item") if item.href }.compact link_header = (link_values + item_values).join(',') if response_env[:response_headers]['link'] response_env[:response_headers]['link'] += ",#{link_header}" else response_env[:response_headers]['link'] = link_header end end