Merge branch '31362_decrease_cyclomatic_complexity_threshold_step4' into 'master'
Decrease Cyclomatic Complexity threshold to 13 See merge request !14152
This commit is contained in:
commit
467dffa631
|
@ -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:
|
||||||
|
|
|
@ -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)
|
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
|
||||||
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
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue