Commit 4db6b8f0 authored by Maxim Rydkin's avatar Maxim Rydkin Committed by Robert Speicher

Decrease Cyclomatic Complexity threshold to 13

parent a1a2ce4a
...@@ -643,7 +643,7 @@ Metrics/ClassLength: ...@@ -643,7 +643,7 @@ Metrics/ClassLength:
# of test cases needed to validate a method. # of test cases needed to validate a method.
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:
Enabled: true Enabled: true
Max: 14 Max: 13
# Limit lines to 80 characters. # Limit lines to 80 characters.
Metrics/LineLength: Metrics/LineLength:
......
---
title: Decrease Cyclomatic Complexity threshold to 13
merge_request: 14152
author: Maxim Rydkin
type: other
...@@ -12,12 +12,7 @@ module Gitlab ...@@ -12,12 +12,7 @@ module Gitlab
MissingEndDelimiter = Class.new(ParserError) MissingEndDelimiter = Class.new(ParserError)
def parse(text, our_path:, their_path:, parent_file: nil) def parse(text, our_path:, their_path:, parent_file: nil)
raise UnmergeableFile if text.blank? # Typically a binary file validate_text!(text)
raise UnmergeableFile if text.length > 200.kilobytes
text.force_encoding('UTF-8')
raise UnsupportedEncoding unless text.valid_encoding?
line_obj_index = 0 line_obj_index = 0
line_old = 1 line_old = 1
...@@ -32,15 +27,15 @@ module Gitlab ...@@ -32,15 +27,15 @@ module Gitlab
full_line = line.delete("\n") full_line = line.delete("\n")
if full_line == conflict_start if full_line == conflict_start
raise UnexpectedDelimiter unless type.nil? validate_delimiter!(type.nil?)
type = 'new' type = 'new'
elsif full_line == conflict_middle elsif full_line == conflict_middle
raise UnexpectedDelimiter unless type == 'new' validate_delimiter!(type == 'new')
type = 'old' type = 'old'
elsif full_line == conflict_end elsif full_line == conflict_end
raise UnexpectedDelimiter unless type == 'old' validate_delimiter!(type == 'old')
type = nil type = nil
elsif line[0] == '\\' elsif line[0] == '\\'
...@@ -59,6 +54,21 @@ module Gitlab ...@@ -59,6 +54,21 @@ module Gitlab
lines lines
end end
private
def validate_text!(text)
raise UnmergeableFile if text.blank? # Typically a binary file
raise UnmergeableFile if text.length > 200.kilobytes
text.force_encoding('UTF-8')
raise UnsupportedEncoding unless text.valid_encoding?
end
def validate_delimiter!(condition)
raise UnexpectedDelimiter unless condition
end
end end
end end
end end
...@@ -4,6 +4,15 @@ require_relative 'redis/queues' unless defined?(Gitlab::Redis::Queues) ...@@ -4,6 +4,15 @@ require_relative 'redis/queues' unless defined?(Gitlab::Redis::Queues)
module Gitlab module Gitlab
module MailRoom module MailRoom
DEFAULT_CONFIG = {
enabled: false,
port: 143,
ssl: false,
start_tls: false,
mailbox: 'inbox',
idle_timeout: 60
}.freeze
class << self class << self
def enabled? def enabled?
config[:enabled] && config[:address] config[:enabled] && config[:address]
...@@ -22,16 +31,10 @@ module Gitlab ...@@ -22,16 +31,10 @@ module Gitlab
def fetch_config def fetch_config
return {} unless File.exist?(config_file) return {} unless File.exist?(config_file)
rails_env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development' config = YAML.load_file(config_file)[rails_env].deep_symbolize_keys[:incoming_email] || {}
all_config = YAML.load_file(config_file)[rails_env].deep_symbolize_keys config = DEFAULT_CONFIG.merge(config) do |_key, oldval, newval|
newval.nil? ? oldval : newval
config = all_config[:incoming_email] || {} end
config[:enabled] = false if config[:enabled].nil?
config[:port] = 143 if config[:port].nil?
config[:ssl] = false if config[:ssl].nil?
config[:start_tls] = false if config[:start_tls].nil?
config[:mailbox] = 'inbox' if config[:mailbox].nil?
config[:idle_timeout] = 60 if config[:idle_timeout].nil?
if config[:enabled] && config[:address] if config[:enabled] && config[:address]
gitlab_redis_queues = Gitlab::Redis::Queues.new(rails_env) gitlab_redis_queues = Gitlab::Redis::Queues.new(rails_env)
...@@ -45,6 +48,10 @@ module Gitlab ...@@ -45,6 +48,10 @@ module Gitlab
config config
end end
def rails_env
@rails_env ||= ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
end
def config_file def config_file
ENV['MAIL_ROOM_GITLAB_CONFIG_FILE'] || File.expand_path('../../../config/gitlab.yml', __FILE__) ENV['MAIL_ROOM_GITLAB_CONFIG_FILE'] || File.expand_path('../../../config/gitlab.yml', __FILE__)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment