From 758ee7ed870c03ec4a8a764a4536d0040bfa9892 Mon Sep 17 00:00:00 2001 From: ashmaroli Date: Wed, 8 Nov 2017 02:09:58 +0530 Subject: [PATCH] Refactor method to reduce ABC Metric size (#6529) Merge pull request 6529 --- lib/jekyll/commands/serve.rb | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/jekyll/commands/serve.rb b/lib/jekyll/commands/serve.rb index 892749a8..a89d152e 100644 --- a/lib/jekyll/commands/serve.rb +++ b/lib/jekyll/commands/serve.rb @@ -205,27 +205,22 @@ module Jekyll # forget to add one of the certificates. private - # rubocop:disable Metrics/AbcSize def enable_ssl(opts) - return if !opts[:JekyllOptions]["ssl_cert"] && !opts[:JekyllOptions]["ssl_key"] - if !opts[:JekyllOptions]["ssl_cert"] || !opts[:JekyllOptions]["ssl_key"] - # rubocop:disable Style/RedundantException - raise RuntimeError, "--ssl-cert or --ssl-key missing." - end + cert, key, src = + opts[:JekyllOptions].values_at("ssl_cert", "ssl_key", "source") + + return if cert.nil? && key.nil? + raise "Missing --ssl_cert or --ssl_key. Both are required." unless cert && key + require "openssl" require "webrick/https" - source_key = Jekyll.sanitized_path(opts[:JekyllOptions]["source"], \ - opts[:JekyllOptions]["ssl_key" ]) - source_certificate = Jekyll.sanitized_path(opts[:JekyllOptions]["source"], \ - opts[:JekyllOptions]["ssl_cert"]) - opts[:SSLCertificate] = - OpenSSL::X509::Certificate.new(File.read(source_certificate)) - opts[:SSLPrivateKey ] = OpenSSL::PKey::RSA.new(File.read(source_key)) + + opts[:SSLCertificate] = OpenSSL::X509::Certificate.new(read_file(src, cert)) + opts[:SSLPrivateKey ] = OpenSSL::PKey::RSA.new(read_file(src, key)) opts[:SSLEnable] = true end private - def start_callback(detached) unless detached proc do @@ -239,6 +234,11 @@ module Jekyll file = File.expand_path("../mime.types", __dir__) WEBrick::HTTPUtils.load_mime_types(file) end + + private + def read_file(source_dir, file_path) + File.read(Jekyll.sanitized_path(source_dir, file_path)) + end end end end