Decrease Cyclomatic Complexity threshold to 13
This commit is contained in:
parent
a1a2ce4af4
commit
4db6b8f0bb
4 changed files with 42 additions and 20 deletions
|
@ -643,7 +643,7 @@ Metrics/ClassLength:
|
|||
# of test cases needed to validate a method.
|
||||
Metrics/CyclomaticComplexity:
|
||||
Enabled: true
|
||||
Max: 14
|
||||
Max: 13
|
||||
|
||||
# Limit lines to 80 characters.
|
||||
Metrics/LineLength:
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Decrease Cyclomatic Complexity threshold to 13
|
||||
merge_request: 14152
|
||||
author: Maxim Rydkin
|
||||
type: other
|
|
@ -12,12 +12,7 @@ module Gitlab
|
|||
MissingEndDelimiter = Class.new(ParserError)
|
||||
|
||||
def parse(text, our_path:, their_path:, parent_file: nil)
|
||||
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?
|
||||
validate_text!(text)
|
||||
|
||||
line_obj_index = 0
|
||||
line_old = 1
|
||||
|
@ -32,15 +27,15 @@ module Gitlab
|
|||
full_line = line.delete("\n")
|
||||
|
||||
if full_line == conflict_start
|
||||
raise UnexpectedDelimiter unless type.nil?
|
||||
validate_delimiter!(type.nil?)
|
||||
|
||||
type = 'new'
|
||||
elsif full_line == conflict_middle
|
||||
raise UnexpectedDelimiter unless type == 'new'
|
||||
validate_delimiter!(type == 'new')
|
||||
|
||||
type = 'old'
|
||||
elsif full_line == conflict_end
|
||||
raise UnexpectedDelimiter unless type == 'old'
|
||||
validate_delimiter!(type == 'old')
|
||||
|
||||
type = nil
|
||||
elsif line[0] == '\\'
|
||||
|
@ -59,6 +54,21 @@ module Gitlab
|
|||
|
||||
lines
|
||||
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
|
||||
|
|
|
@ -4,6 +4,15 @@ require_relative 'redis/queues' unless defined?(Gitlab::Redis::Queues)
|
|||
|
||||
module Gitlab
|
||||
module MailRoom
|
||||
DEFAULT_CONFIG = {
|
||||
enabled: false,
|
||||
port: 143,
|
||||
ssl: false,
|
||||
start_tls: false,
|
||||
mailbox: 'inbox',
|
||||
idle_timeout: 60
|
||||
}.freeze
|
||||
|
||||
class << self
|
||||
def enabled?
|
||||
config[:enabled] && config[:address]
|
||||
|
@ -22,16 +31,10 @@ module Gitlab
|
|||
def fetch_config
|
||||
return {} unless File.exist?(config_file)
|
||||
|
||||
rails_env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
|
||||
all_config = YAML.load_file(config_file)[rails_env].deep_symbolize_keys
|
||||
|
||||
config = all_config[:incoming_email] || {}
|
||||
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?
|
||||
config = YAML.load_file(config_file)[rails_env].deep_symbolize_keys[:incoming_email] || {}
|
||||
config = DEFAULT_CONFIG.merge(config) do |_key, oldval, newval|
|
||||
newval.nil? ? oldval : newval
|
||||
end
|
||||
|
||||
if config[:enabled] && config[:address]
|
||||
gitlab_redis_queues = Gitlab::Redis::Queues.new(rails_env)
|
||||
|
@ -45,6 +48,10 @@ module Gitlab
|
|||
config
|
||||
end
|
||||
|
||||
def rails_env
|
||||
@rails_env ||= ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
|
||||
end
|
||||
|
||||
def config_file
|
||||
ENV['MAIL_ROOM_GITLAB_CONFIG_FILE'] || File.expand_path('../../../config/gitlab.yml', __FILE__)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue