about summary refs log tree commit diff
path: root/app/services/fetch_atom_service.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-11-15 16:56:29 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-11-15 16:56:29 +0100
commitfdc17bea58f210f62ac0d9e836b68e84c6dbd15c (patch)
tree491613c94695ba867e81d50124e7e3eb73a0eff5 /app/services/fetch_atom_service.rb
parenta91c3ef6cef0fe5a1645c043e7d4a5ef96e82c4f (diff)
Fix rubocop issues, introduce usage of frozen literal to improve performance
Diffstat (limited to 'app/services/fetch_atom_service.rb')
-rw-r--r--app/services/fetch_atom_service.rb20
1 files changed, 8 insertions, 12 deletions
diff --git a/app/services/fetch_atom_service.rb b/app/services/fetch_atom_service.rb
index 5f00bf801..98ee1db84 100644
--- a/app/services/fetch_atom_service.rb
+++ b/app/services/fetch_atom_service.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
 class FetchAtomService < BaseService
   def call(url)
     response = http_client.head(url)
@@ -9,15 +11,9 @@ class FetchAtomService < BaseService
     Rails.logger.debug "Remote status GET request returned code #{response.code}"
 
     return nil if response.code != 200
-
-    if response.mime_type == 'application/atom+xml'
-      return [url, fetch(url)]
-    elsif !response['Link'].blank?
-      return process_headers(url, response)
-    else
-      return process_html(fetch(url))
-    end
-
+    return [url, fetch(url)] if response.mime_type == 'application/atom+xml'
+    return process_headers(url, response) unless response['Link'].blank?
+    process_html(fetch(url))
   rescue OpenSSL::SSL::SSLError => e
     Rails.logger.debug "SSL error: #{e}"
   end
@@ -31,17 +27,17 @@ class FetchAtomService < BaseService
     alternate_link = page.xpath('//link[@rel="alternate"]').find { |link| link['type'] == 'application/atom+xml' }
 
     return nil if alternate_link.nil?
-    return [alternate_link['href'], fetch(alternate_link['href'])]
+    [alternate_link['href'], fetch(alternate_link['href'])]
   end
 
   def process_headers(url, response)
     Rails.logger.debug 'Processing link header'
 
     link_header    = LinkHeader.parse(response['Link'].is_a?(Array) ? response['Link'].first : response['Link'])
-    alternate_link = link_header.find_link(['rel', 'alternate'], ['type', 'application/atom+xml'])
+    alternate_link = link_header.find_link(%w(rel alternate), %w(type application/atom+xml))
 
     return process_html(fetch(url)) if alternate_link.nil?
-    return [alternate_link.href, fetch(alternate_link.href)]
+    [alternate_link.href, fetch(alternate_link.href)]
   end
 
   def fetch(url)