如何避免方法超出允许的最大ABC复杂度(1)

时间:2018-04-13 03:21:50

标签: ruby-on-rails

您好我正在使用ruby-2.5.0和Rails 5处理RoR项目。我有一个方法,我用正则表达式查找日期和时间如下: -

def find_date_time(params)
    date_pattern = %r{\d{1,2}/\d{1,2}/\d{4}|\d{1,2}\/\d{1,2}\/\d{2}}
    time_pattern = /(\d{2}\:\d{2}:\d{2}|\d{2}\:\d{2})/
    date = params.to_s[date_pattern]
    return unless date
    date_array = date.split('/')
    if date_array.last.length == 2
      date = date_array.replace([date_array.first,
                                 date_array.second,
                                 '20' + date_array.third])
                       .join('/')
    end
    time = params.to_s.scan(time_pattern)
    Time.strptime(date +
                  ' ' +
                  (time.present? ? time.uniq.flatten.last : ''),
                  (time.present? ? '%d/%m/%Y %H:%M' : '%d/%m/%Y'))
  end

它的工作正常,但是当我运行我的单元测试RAILS_ENV=test bundle exec rake时,它返回错误Methods exceeded maximum allowed ABC complexity (1)我正在使用rubocop-rspec。请帮助我如何降低代码的复杂性。提前谢谢。

0 个答案:

没有答案