Я действительно застрял в этой части:
Если я отключу # rubocop:disable Metrics/AbcSize
, то я получаю эту ошибку:
ruby -v : ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin14]
rubocop -V
0.52.1 (using Parser 2.4.0.2, running on ruby 2.4.2 x86_64-darwin14)
$ rubocop .
Inspecting 7 files
.....W.
Offenses:
recipes/default.rb:13:1: W: Lint/MissingCopEnableDirective: Re-enable Metrics/AbcSize cop with # rubocop:enable after disabling it.
# rubocop:disable Metrics/AbcSize
^
7 files inspected, 1 offense detected
Если я включу rubocop
в скрипте, то получу следующее:
rubocop .
Inspecting 7 files
.....C.
Offenses:
recipes/default.rb:31:1: C: Metrics/AbcSize: Assignment Branch Condition size for check_tropo_versions is too high. [33.02/20]
def check_tropo_versions ...
^^^^^^^^^^^^^^^^^^^^^^^^
7 files inspected, 1 offense detected
Несколько строк моего скрипта:
# rubocop:enable Metrics/AbcSize
require 'nokogiri'
Chef.event_handler do
on :resource_updated do |resource, _action|
if resource.declared_type.to_s == 'remote_file' && resource.cookbook_name == 'tropo-patch' && resource.recipe_name == 'default'
puts "#{Time.now.strftime('%Y%m%d%H%M%S')},#{resource.path},#{resource.source[0]}"
File.open('/var/log/tropo-patch.log', 'a') { |f| f.write("#{Time.now.strftime('%Y%m%d%H%M%S')},#{resource.path},#{resource.source[0]}\n") }
end
end
end
Я не могу отключить rubocop
из глобального конфигурационного файла, но если это можно решить, я тоже попробую это:
Metrics/AbcSize:
Description: >-
A calculated magnitude based on number of assignments,
branches, and conditions.
Reference: 'http://c2.com/cgi/wiki?AbcMetric'
Enabled: true
# rubocop:disable Metrics/AbcSize
до сложного кода; а затем еще и написать# rubocop:enable Metrics/AbcSize
после кода? (Т.е. непосредственно под этим методом, в том же файле.) - person Tom Lord   schedule 04.01.2018check_tropo_versions
. Вместо того, чтобы просто отключить руководство по стилю для метода, возможно, вы могли бы показать его в своем вопросе, и мы предложим лучший способ написать код; тем самым делая его совместимым с rubocop? - person Tom Lord   schedule 04.01.2018