longleaf 0.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +94 -0
  3. data/.editorconfig +13 -0
  4. data/.gitignore +4 -1
  5. data/.rubocop.yml +44 -0
  6. data/.rubocop_todo.yml +834 -0
  7. data/.yardopts +1 -0
  8. data/Gemfile +16 -1
  9. data/README.md +98 -12
  10. data/Rakefile +6 -0
  11. data/bin/setup +16 -1
  12. data/docs/aboutlongleaf.md +28 -0
  13. data/docs/extra.css +32 -0
  14. data/docs/img/change-file.png +0 -0
  15. data/docs/img/ll-example-preserved.png +0 -0
  16. data/docs/index.md +19 -0
  17. data/docs/install.md +66 -0
  18. data/docs/ll-example/config-example-relative.yml +33 -0
  19. data/docs/ll-example/files-dir/LLexample-PDF.pdf +0 -0
  20. data/docs/ll-example/files-dir/LLexample-TOCHANGE.txt +15 -0
  21. data/docs/ll-example/files-dir/LLexample-tokeep.txt +10 -0
  22. data/docs/ll-example/metadata-dir/.gitkeep +0 -0
  23. data/docs/ll-example/replica-files/.gitkeep +0 -0
  24. data/docs/ll-example/replica-metadata/.gitkeep +0 -0
  25. data/docs/quickstart.md +270 -0
  26. data/docs/rdocs/Longleaf.html +135 -0
  27. data/docs/rdocs/Longleaf/AppFields.html +178 -0
  28. data/docs/rdocs/Longleaf/ApplicationConfigDeserializer.html +631 -0
  29. data/docs/rdocs/Longleaf/ApplicationConfigManager.html +610 -0
  30. data/docs/rdocs/Longleaf/ApplicationConfigValidator.html +238 -0
  31. data/docs/rdocs/Longleaf/CLI.html +909 -0
  32. data/docs/rdocs/Longleaf/ChecksumMismatchError.html +151 -0
  33. data/docs/rdocs/Longleaf/ConfigBuilder.html +1339 -0
  34. data/docs/rdocs/Longleaf/ConfigurationError.html +143 -0
  35. data/docs/rdocs/Longleaf/ConfigurationValidator.html +227 -0
  36. data/docs/rdocs/Longleaf/DeregisterCommand.html +420 -0
  37. data/docs/rdocs/Longleaf/DeregisterEvent.html +453 -0
  38. data/docs/rdocs/Longleaf/DeregistrationError.html +151 -0
  39. data/docs/rdocs/Longleaf/DigestHelper.html +419 -0
  40. data/docs/rdocs/Longleaf/EventError.html +147 -0
  41. data/docs/rdocs/Longleaf/EventNames.html +163 -0
  42. data/docs/rdocs/Longleaf/EventStatusTracking.html +656 -0
  43. data/docs/rdocs/Longleaf/FileCheckService.html +540 -0
  44. data/docs/rdocs/Longleaf/FileHelpers.html +520 -0
  45. data/docs/rdocs/Longleaf/FileRecord.html +716 -0
  46. data/docs/rdocs/Longleaf/FileSelector.html +901 -0
  47. data/docs/rdocs/Longleaf/FixityCheckService.html +691 -0
  48. data/docs/rdocs/Longleaf/IndexManager.html +1155 -0
  49. data/docs/rdocs/Longleaf/InvalidDigestAlgorithmError.html +143 -0
  50. data/docs/rdocs/Longleaf/InvalidStoragePathError.html +143 -0
  51. data/docs/rdocs/Longleaf/Logging.html +405 -0
  52. data/docs/rdocs/Longleaf/Logging/RedirectingLogger.html +1213 -0
  53. data/docs/rdocs/Longleaf/LongleafError.html +139 -0
  54. data/docs/rdocs/Longleaf/MDFields.html +193 -0
  55. data/docs/rdocs/Longleaf/MetadataBuilder.html +787 -0
  56. data/docs/rdocs/Longleaf/MetadataDeserializer.html +537 -0
  57. data/docs/rdocs/Longleaf/MetadataError.html +143 -0
  58. data/docs/rdocs/Longleaf/MetadataPersistenceManager.html +539 -0
  59. data/docs/rdocs/Longleaf/MetadataRecord.html +1411 -0
  60. data/docs/rdocs/Longleaf/MetadataSerializer.html +786 -0
  61. data/docs/rdocs/Longleaf/PreservationServiceError.html +147 -0
  62. data/docs/rdocs/Longleaf/PreserveCommand.html +410 -0
  63. data/docs/rdocs/Longleaf/PreserveEvent.html +491 -0
  64. data/docs/rdocs/Longleaf/RegisterCommand.html +428 -0
  65. data/docs/rdocs/Longleaf/RegisterEvent.html +628 -0
  66. data/docs/rdocs/Longleaf/RegisteredFileSelector.html +446 -0
  67. data/docs/rdocs/Longleaf/RegistrationError.html +151 -0
  68. data/docs/rdocs/Longleaf/ReindexCommand.html +576 -0
  69. data/docs/rdocs/Longleaf/RsyncReplicationService.html +1180 -0
  70. data/docs/rdocs/Longleaf/SequelIndexDriver.html +1978 -0
  71. data/docs/rdocs/Longleaf/ServiceCandidateFilesystemIterator.html +572 -0
  72. data/docs/rdocs/Longleaf/ServiceCandidateIndexIterator.html +532 -0
  73. data/docs/rdocs/Longleaf/ServiceCandidateLocator.html +333 -0
  74. data/docs/rdocs/Longleaf/ServiceClassCache.html +725 -0
  75. data/docs/rdocs/Longleaf/ServiceDateHelper.html +425 -0
  76. data/docs/rdocs/Longleaf/ServiceDefinition.html +683 -0
  77. data/docs/rdocs/Longleaf/ServiceDefinitionManager.html +371 -0
  78. data/docs/rdocs/Longleaf/ServiceDefinitionValidator.html +269 -0
  79. data/docs/rdocs/Longleaf/ServiceFields.html +173 -0
  80. data/docs/rdocs/Longleaf/ServiceManager.html +1229 -0
  81. data/docs/rdocs/Longleaf/ServiceMappingManager.html +410 -0
  82. data/docs/rdocs/Longleaf/ServiceMappingValidator.html +347 -0
  83. data/docs/rdocs/Longleaf/ServiceRecord.html +821 -0
  84. data/docs/rdocs/Longleaf/StorageLocation.html +985 -0
  85. data/docs/rdocs/Longleaf/StorageLocationManager.html +729 -0
  86. data/docs/rdocs/Longleaf/StorageLocationUnavailableError.html +143 -0
  87. data/docs/rdocs/Longleaf/StorageLocationValidator.html +373 -0
  88. data/docs/rdocs/Longleaf/StoragePathValidator.html +253 -0
  89. data/docs/rdocs/Longleaf/SystemConfigBuilder.html +441 -0
  90. data/docs/rdocs/Longleaf/SystemConfigFields.html +163 -0
  91. data/docs/rdocs/Longleaf/ValidateConfigCommand.html +451 -0
  92. data/docs/rdocs/Longleaf/ValidateMetadataCommand.html +408 -0
  93. data/docs/rdocs/_index.html +660 -0
  94. data/docs/rdocs/class_list.html +51 -0
  95. data/docs/rdocs/css/common.css +1 -0
  96. data/docs/rdocs/css/full_list.css +58 -0
  97. data/docs/rdocs/css/style.css +496 -0
  98. data/docs/rdocs/file.README.html +165 -0
  99. data/docs/rdocs/file_list.html +56 -0
  100. data/docs/rdocs/frames.html +17 -0
  101. data/docs/rdocs/index.html +165 -0
  102. data/docs/rdocs/js/app.js +303 -0
  103. data/docs/rdocs/js/full_list.js +216 -0
  104. data/docs/rdocs/js/jquery.js +4 -0
  105. data/docs/rdocs/method_list.html +2051 -0
  106. data/docs/rdocs/top-level-namespace.html +110 -0
  107. data/lib/longleaf/candidates/file_selector.rb +150 -0
  108. data/lib/longleaf/candidates/manifest_digest_provider.rb +17 -0
  109. data/lib/longleaf/candidates/physical_path_provider.rb +17 -0
  110. data/lib/longleaf/candidates/registered_file_selector.rb +67 -0
  111. data/lib/longleaf/candidates/service_candidate_filesystem_iterator.rb +93 -0
  112. data/lib/longleaf/candidates/service_candidate_index_iterator.rb +84 -0
  113. data/lib/longleaf/candidates/service_candidate_locator.rb +23 -0
  114. data/lib/longleaf/candidates/single_digest_provider.rb +13 -0
  115. data/lib/longleaf/cli.rb +252 -46
  116. data/lib/longleaf/commands/deregister_command.rb +51 -0
  117. data/lib/longleaf/commands/preserve_command.rb +50 -0
  118. data/lib/longleaf/commands/register_command.rb +34 -43
  119. data/lib/longleaf/commands/reindex_command.rb +92 -0
  120. data/lib/longleaf/commands/validate_config_command.rb +33 -8
  121. data/lib/longleaf/commands/validate_metadata_command.rb +51 -0
  122. data/lib/longleaf/errors.rb +26 -7
  123. data/lib/longleaf/events/deregister_event.rb +53 -0
  124. data/lib/longleaf/events/event_names.rb +9 -0
  125. data/lib/longleaf/events/event_status_tracking.rb +59 -0
  126. data/lib/longleaf/events/preserve_event.rb +82 -0
  127. data/lib/longleaf/events/register_event.rb +59 -51
  128. data/lib/longleaf/helpers/case_insensitive_hash.rb +38 -0
  129. data/lib/longleaf/helpers/digest_helper.rb +56 -0
  130. data/lib/longleaf/helpers/s3_uri_helper.rb +86 -0
  131. data/lib/longleaf/helpers/selection_options_parser.rb +215 -0
  132. data/lib/longleaf/helpers/service_date_helper.rb +78 -0
  133. data/lib/longleaf/indexing/index_manager.rb +101 -0
  134. data/lib/longleaf/indexing/sequel_index_driver.rb +306 -0
  135. data/lib/longleaf/logging.rb +5 -4
  136. data/lib/longleaf/logging/redirecting_logger.rb +30 -25
  137. data/lib/longleaf/models/app_fields.rb +7 -2
  138. data/lib/longleaf/models/file_record.rb +31 -8
  139. data/lib/longleaf/models/filesystem_metadata_location.rb +56 -0
  140. data/lib/longleaf/models/filesystem_storage_location.rb +52 -0
  141. data/lib/longleaf/models/md_fields.rb +3 -1
  142. data/lib/longleaf/models/metadata_location.rb +47 -0
  143. data/lib/longleaf/models/metadata_record.rb +43 -16
  144. data/lib/longleaf/models/s3_storage_location.rb +138 -0
  145. data/lib/longleaf/models/service_definition.rb +7 -6
  146. data/lib/longleaf/models/service_fields.rb +7 -1
  147. data/lib/longleaf/models/service_record.rb +10 -6
  148. data/lib/longleaf/models/storage_location.rb +24 -19
  149. data/lib/longleaf/models/storage_types.rb +9 -0
  150. data/lib/longleaf/models/system_config_fields.rb +9 -0
  151. data/lib/longleaf/preservation_services/file_check_service.rb +59 -0
  152. data/lib/longleaf/preservation_services/fixity_check_service.rb +124 -0
  153. data/lib/longleaf/preservation_services/rsync_replication_service.rb +198 -0
  154. data/lib/longleaf/preservation_services/s3_replication_service.rb +131 -0
  155. data/lib/longleaf/services/application_config_deserializer.rb +81 -24
  156. data/lib/longleaf/services/application_config_manager.rb +20 -6
  157. data/lib/longleaf/services/application_config_validator.rb +19 -9
  158. data/lib/longleaf/services/configuration_validator.rb +67 -4
  159. data/lib/longleaf/services/filesystem_location_validator.rb +16 -0
  160. data/lib/longleaf/services/metadata_deserializer.rb +115 -42
  161. data/lib/longleaf/services/metadata_persistence_manager.rb +47 -0
  162. data/lib/longleaf/services/metadata_serializer.rb +156 -23
  163. data/lib/longleaf/services/metadata_validator.rb +76 -0
  164. data/lib/longleaf/services/s3_location_validator.rb +19 -0
  165. data/lib/longleaf/services/service_class_cache.rb +112 -0
  166. data/lib/longleaf/services/service_definition_manager.rb +10 -7
  167. data/lib/longleaf/services/service_definition_validator.rb +25 -18
  168. data/lib/longleaf/services/service_manager.rb +86 -11
  169. data/lib/longleaf/services/service_mapping_manager.rb +13 -12
  170. data/lib/longleaf/services/service_mapping_validator.rb +36 -26
  171. data/lib/longleaf/services/storage_location_manager.rb +76 -15
  172. data/lib/longleaf/services/storage_location_validator.rb +49 -35
  173. data/lib/longleaf/specs/config_builder.rb +47 -23
  174. data/lib/longleaf/specs/config_validator_helpers.rb +16 -0
  175. data/lib/longleaf/specs/custom_matchers.rb +9 -0
  176. data/lib/longleaf/specs/file_helpers.rb +61 -0
  177. data/lib/longleaf/specs/metadata_builder.rb +98 -0
  178. data/lib/longleaf/specs/system_config_builder.rb +27 -0
  179. data/lib/longleaf/version.rb +1 -1
  180. data/longleaf.gemspec +20 -7
  181. data/mkdocs.yml +21 -0
  182. metadata +308 -24
  183. data/.travis.yml +0 -4
  184. data/lib/longleaf/commands/abstract_command.rb +0 -37
  185. data/lib/longleaf/services/storage_path_validator.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46460cd1116e97c1d54c4f12ad130a318b79fd9f3db3e5fbec02b4dfe1e65ee9
4
- data.tar.gz: b8270d5fdb29c00c9689e9d5bd6b48530ac35dfd3e99daaa3a5b90803428deca
3
+ metadata.gz: eb37785f1fd9fc03721f7cdc3946f648d3c1e126385677daba89fdcfb3c32330
4
+ data.tar.gz: a208d7c6c79440563950c6b64647637f75fa3687690ff496395cab5e524408f3
5
5
  SHA512:
6
- metadata.gz: d83b4ee88d75fc45197750e453a3798749a6d27e6b378848d466276c2292a64a7fe472d96913d466dee742b68d9660ed73916d0349cd8065b686b634f589a38a
7
- data.tar.gz: a86bfb33e7decbded01d465f28e0d2123a2c3571339888ffb796c66c4002c9da6574733b31100a10ce00ea474461317661a8470bcf356be807bef61eb6533445
6
+ metadata.gz: 2d1df2dd6abad7c04af677ca571308b322368daeaa27ddde4bc48d2804819851b19e66ce6c66a01007a8439c7c6d6c5937de8c55813ee9af3f2b99a4486affa9
7
+ data.tar.gz: 2d2ba20c34cdf8abeeb163558b5eb5dec681fb03c17029e97ee3fa9f58ec36de00d9c1b8e8e5effbcf0dcd8ac8abb75866a8983efbd68bff8669f9a9d7a046ef
@@ -0,0 +1,94 @@
1
+ # Ruby CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2.1
6
+
7
+ commands:
8
+ build_and_run_tests:
9
+ steps:
10
+ - checkout
11
+
12
+ # Download and cache dependencies
13
+ - restore_cache:
14
+ keys:
15
+ - v1-dependencies-{{ checksum "longleaf.gemspec" }}
16
+ # fallback to using the latest cache if no exact match is found
17
+ - v1-dependencies-
18
+
19
+ - run:
20
+ name: install dependencies
21
+ command: |
22
+ bin/setup
23
+
24
+ - run:
25
+ name: install rsync
26
+ command: sudo apt install -y rsync
27
+
28
+ - save_cache:
29
+ paths:
30
+ - ./.bundle
31
+ key: v1-dependencies-{{ checksum "longleaf.gemspec" }}
32
+
33
+ - run:
34
+ name: run tests
35
+ command: |
36
+ mkdir /tmp/test-results
37
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb")"
38
+
39
+ bundle exec rspec \
40
+ --format progress \
41
+ --format RspecJunitFormatter \
42
+ --out /tmp/test-results/rspec.xml \
43
+ --format progress \
44
+ $TEST_FILES
45
+
46
+ # collect reports
47
+ - store_test_results:
48
+ path: /tmp/test-results
49
+
50
+ - store_artifacts:
51
+ path: /tmp/test-results
52
+ destination: test-results
53
+
54
+ - store_artifacts:
55
+ path: coverage
56
+ install_new_bundler:
57
+ steps:
58
+ - run:
59
+ name: upgrade bundler
60
+ command: |
61
+ sudo gem update --system
62
+ sudo gem uninstall bundler
63
+ sudo rm /usr/local/bin/bundle
64
+ sudo gem install bundler
65
+
66
+ jobs:
67
+ test_with_ruby_23:
68
+ docker:
69
+ - image: circleci/ruby:2.3
70
+ environment:
71
+ BUNDLER_VERSION: 2.1.4
72
+
73
+ working_directory: ~/repo
74
+
75
+ steps:
76
+ - install_new_bundler
77
+ - build_and_run_tests
78
+
79
+ test_with_ruby_latest:
80
+ docker:
81
+ - image: circleci/ruby:2.7
82
+ environment:
83
+ BUNDLER_VERSION: 2.1.4
84
+
85
+ working_directory: ~/repo
86
+
87
+ steps:
88
+ - build_and_run_tests
89
+ workflows:
90
+ version: 2.2
91
+ notify_deploy:
92
+ jobs:
93
+ - test_with_ruby_23
94
+ - test_with_ruby_latest
data/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # Taken from https://raw.githubusercontent.com/rubocop-hq/rubocop/master/.editorconfig
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [*.md]
13
+ trim_trailing_whitespace = false
data/.gitignore CHANGED
@@ -3,7 +3,10 @@
3
3
  /Gemfile.lock
4
4
  /_yardoc/
5
5
  /coverage/
6
- /doc/
7
6
  /pkg/
8
7
  /spec/reports/
9
8
  /tmp/
9
+ .idea
10
+ coverage
11
+ # ignore site folder created by mkdocs
12
+ site/
data/.rubocop.yml ADDED
@@ -0,0 +1,44 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-rspec
5
+ - rubocop-performance
6
+ - rubocop-sequel
7
+
8
+ AllCops:
9
+ DisplayCopNames: true
10
+ TargetRubyVersion: 2.3
11
+ Exclude:
12
+ - "longleaf.gemspec"
13
+
14
+ Layout/IndentationConsistency:
15
+ EnforcedStyle: normal
16
+
17
+ Metrics/BlockLength:
18
+ Exclude:
19
+ - "spec/**/*"
20
+
21
+ Metrics/LineLength:
22
+ Max: 200
23
+ Exclude:
24
+ - 'spec/**/*'
25
+
26
+ Naming/HeredocDelimiterNaming:
27
+ Enabled: false
28
+
29
+ Naming/PredicateName:
30
+ NamePrefixBlacklist:
31
+ - is_
32
+
33
+ Rails:
34
+ Enabled: false
35
+
36
+ Rails/OutputSafety:
37
+ Enabled: false
38
+
39
+ # https://github.com/rubocop-hq/rubocop/issues/6439
40
+ Style/AccessModifierDeclarations:
41
+ Enabled: false
42
+
43
+ Style/StringLiterals:
44
+ Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,834 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2019-05-30 14:23:53 -0400 using RuboCop version 0.70.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 108
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
12
+ # SupportedStyles: with_first_argument, with_fixed_indentation
13
+ Layout/AlignArguments:
14
+ Enabled: false
15
+
16
+ # Offense count: 1
17
+ # Cop supports --auto-correct.
18
+ Layout/AlignArray:
19
+ Exclude:
20
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
21
+
22
+ # Offense count: 60
23
+ # Cop supports --auto-correct.
24
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
25
+ # SupportedHashRocketStyles: key, separator, table
26
+ # SupportedColonStyles: key, separator, table
27
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
28
+ Layout/AlignHash:
29
+ Enabled: false
30
+
31
+ # Offense count: 3
32
+ # Cop supports --auto-correct.
33
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
34
+ # SupportedStyles: with_first_parameter, with_fixed_indentation
35
+ Layout/AlignParameters:
36
+ Exclude:
37
+ - 'lib/longleaf/models/metadata_record.rb'
38
+ - 'lib/longleaf/specs/config_builder.rb'
39
+ - 'lib/longleaf/specs/metadata_builder.rb'
40
+
41
+ # Offense count: 2
42
+ # Cop supports --auto-correct.
43
+ Layout/ClosingParenthesisIndentation:
44
+ Exclude:
45
+ - 'spec/longleaf/services/metadata_persistence_manager_spec.rb'
46
+
47
+ # Offense count: 13
48
+ # Cop supports --auto-correct.
49
+ Layout/EmptyLineAfterGuardClause:
50
+ Exclude:
51
+ - 'lib/longleaf/candidates/file_selector.rb'
52
+ - 'lib/longleaf/helpers/digest_helper.rb'
53
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
54
+ - 'lib/longleaf/models/file_record.rb'
55
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
56
+ - 'lib/longleaf/services/service_manager.rb'
57
+ - 'lib/longleaf/services/service_mapping_validator.rb'
58
+ - 'lib/longleaf/services/storage_location_manager.rb'
59
+ - 'lib/longleaf/specs/custom_matchers.rb'
60
+ - 'spec/features/deregister_command_spec.rb'
61
+
62
+ # Offense count: 16
63
+ # Cop supports --auto-correct.
64
+ # Configuration parameters: EnforcedStyle.
65
+ # SupportedStyles: around, only_before
66
+ Layout/EmptyLinesAroundAccessModifier:
67
+ Enabled: false
68
+
69
+ # Offense count: 23
70
+ # Cop supports --auto-correct.
71
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
72
+ # SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
73
+ Layout/IndentFirstArgument:
74
+ Exclude:
75
+ - 'lib/longleaf/candidates/service_candidate_filesystem_iterator.rb'
76
+ - 'lib/longleaf/cli.rb'
77
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
78
+ - 'lib/longleaf/services/application_config_deserializer.rb'
79
+ - 'lib/longleaf/services/application_config_manager.rb'
80
+ - 'lib/longleaf/services/service_definition_manager.rb'
81
+ - 'lib/longleaf/services/storage_location_validator.rb'
82
+ - 'lib/longleaf/specs/metadata_builder.rb'
83
+ - 'spec/features/deregister_command_spec.rb'
84
+ - 'spec/features/register_command_spec.rb'
85
+ - 'spec/features/validate_application_config_spec.rb'
86
+ - 'spec/longleaf/logging/redirecting_logger_spec.rb'
87
+
88
+ # Offense count: 19
89
+ # Cop supports --auto-correct.
90
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
91
+ # SupportedStyles: special_inside_parentheses, consistent, align_braces
92
+ Layout/IndentFirstHashElement:
93
+ Exclude:
94
+ - 'lib/longleaf/cli.rb'
95
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
96
+ - 'spec/longleaf/candidates/service_candidate_filesystem_iterator_spec.rb'
97
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
98
+ - 'spec/longleaf/preservation_services/rsync_replication_service_spec.rb'
99
+
100
+ # Offense count: 11
101
+ # Cop supports --auto-correct.
102
+ # Configuration parameters: EnforcedStyle.
103
+ # SupportedStyles: symmetrical, new_line, same_line
104
+ Layout/MultilineHashBraceLayout:
105
+ Exclude:
106
+ - 'lib/longleaf/cli.rb'
107
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
108
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
109
+ - 'spec/longleaf/preservation_services/rsync_replication_service_spec.rb'
110
+
111
+ # Offense count: 47
112
+ # Cop supports --auto-correct.
113
+ # Configuration parameters: EnforcedStyle.
114
+ # SupportedStyles: symmetrical, new_line, same_line
115
+ Layout/MultilineMethodCallBraceLayout:
116
+ Enabled: false
117
+
118
+ # Offense count: 422
119
+ # Cop supports --auto-correct.
120
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
121
+ # SupportedStyles: aligned, indented, indented_relative_to_receiver
122
+ Layout/MultilineMethodCallIndentation:
123
+ Enabled: false
124
+
125
+ # Offense count: 26
126
+ # Cop supports --auto-correct.
127
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
128
+ # SupportedStyles: space, no_space, compact
129
+ # SupportedStylesForEmptyBraces: space, no_space
130
+ Layout/SpaceInsideHashLiteralBraces:
131
+ Exclude:
132
+ - 'lib/longleaf/commands/reindex_command.rb'
133
+ - 'spec/features/rsync_replication_feature_spec.rb'
134
+ - 'spec/longleaf/candidates/service_candidate_filesystem_iterator_spec.rb'
135
+ - 'spec/longleaf/models/metadata_record_spec.rb'
136
+ - 'spec/longleaf/models/service_record_spec.rb'
137
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
138
+ - 'spec/longleaf/services/metadata_serializer_spec.rb'
139
+
140
+ # Offense count: 41
141
+ # Cop supports --auto-correct.
142
+ # Configuration parameters: EnforcedStyle.
143
+ # SupportedStyles: space, no_space
144
+ Layout/SpaceInsideParens:
145
+ Exclude:
146
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
147
+ - 'spec/features/rsync_replication_feature_spec.rb'
148
+ - 'spec/longleaf/events/deregister_event_spec.rb'
149
+ - 'spec/longleaf/events/preserve_event_spec.rb'
150
+ - 'spec/longleaf/events/register_event_spec.rb'
151
+ - 'spec/longleaf/models/metadata_record_spec.rb'
152
+ - 'spec/longleaf/models/service_definition_spec.rb'
153
+ - 'spec/longleaf/models/service_record_spec.rb'
154
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
155
+ - 'spec/longleaf/preservation_services/rsync_replication_service_spec.rb'
156
+ - 'spec/longleaf/services/metadata_serializer_spec.rb'
157
+ - 'spec/longleaf/services/service_definition_validator_spec.rb'
158
+ - 'spec/longleaf/services/storage_location_validator_spec.rb'
159
+
160
+ # Offense count: 1
161
+ Lint/EmptyWhen:
162
+ Exclude:
163
+ - 'lib/longleaf/candidates/service_candidate_index_iterator.rb'
164
+
165
+ # Offense count: 11
166
+ Lint/ParenthesesAsGroupedExpression:
167
+ Exclude:
168
+ - 'spec/features/metadata_indexing_spec.rb'
169
+ - 'spec/features/reindex_command_spec.rb'
170
+ - 'spec/longleaf/models/metadata_record_spec.rb'
171
+
172
+ # Offense count: 10
173
+ # Cop supports --auto-correct.
174
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
175
+ Lint/UnusedBlockArgument:
176
+ Exclude:
177
+ - 'lib/longleaf/commands/validate_config_command.rb'
178
+ - 'lib/longleaf/logging/redirecting_logger.rb'
179
+ - 'lib/longleaf/services/application_config_deserializer.rb'
180
+ - 'lib/longleaf/services/service_mapping_manager.rb'
181
+ - 'lib/longleaf/services/storage_location_manager.rb'
182
+
183
+ # Offense count: 4
184
+ # Cop supports --auto-correct.
185
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
186
+ Lint/UnusedMethodArgument:
187
+ Exclude:
188
+ - 'lib/longleaf/preservation_services/file_check_service.rb'
189
+ - 'lib/longleaf/preservation_services/fixity_check_service.rb'
190
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
191
+
192
+ # Offense count: 6
193
+ Lint/UselessAssignment:
194
+ Exclude:
195
+ - 'lib/longleaf/cli.rb'
196
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
197
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
198
+ - 'lib/longleaf/services/application_config_deserializer.rb'
199
+ - 'spec/longleaf/events/register_event_spec.rb'
200
+
201
+ # Offense count: 44
202
+ Metrics/AbcSize:
203
+ Max: 45
204
+
205
+ # Offense count: 1
206
+ # Configuration parameters: CountComments, ExcludedMethods.
207
+ # ExcludedMethods: refine
208
+ Metrics/BlockLength:
209
+ Max: 36
210
+
211
+ # Offense count: 2
212
+ # Configuration parameters: CountBlocks.
213
+ Metrics/BlockNesting:
214
+ Max: 4
215
+
216
+ # Offense count: 3
217
+ # Configuration parameters: CountComments.
218
+ Metrics/ClassLength:
219
+ Max: 212
220
+
221
+ # Offense count: 16
222
+ Metrics/CyclomaticComplexity:
223
+ Max: 11
224
+
225
+ # Offense count: 4
226
+ # Cop supports --auto-correct.
227
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
228
+ # URISchemes: http, https
229
+ Metrics/LineLength:
230
+ Max: 299
231
+
232
+ # Offense count: 56
233
+ # Configuration parameters: CountComments, ExcludedMethods.
234
+ Metrics/MethodLength:
235
+ Max: 40
236
+
237
+ # Offense count: 7
238
+ # Configuration parameters: CountKeywordArgs.
239
+ Metrics/ParameterLists:
240
+ Max: 7
241
+
242
+ # Offense count: 13
243
+ Metrics/PerceivedComplexity:
244
+ Max: 13
245
+
246
+ # Offense count: 2
247
+ Naming/AccessorMethodName:
248
+ Exclude:
249
+ - 'lib/longleaf/specs/metadata_builder.rb'
250
+ - 'spec/features/reindex_command_spec.rb'
251
+
252
+ # Offense count: 1
253
+ Naming/BinaryOperatorParameterName:
254
+ Exclude:
255
+ - 'lib/longleaf/models/file_record.rb'
256
+
257
+ # Offense count: 4
258
+ # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist, MethodDefinitionMacros.
259
+ # NamePrefix: is_, has_, have_
260
+ # NamePrefixBlacklist: is_, has_, have_
261
+ # NameWhitelist: is_a?
262
+ # MethodDefinitionMacros: define_method, define_singleton_method
263
+ Naming/PredicateName:
264
+ Exclude:
265
+ - 'spec/**/*'
266
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
267
+ - 'lib/longleaf/preservation_services/file_check_service.rb'
268
+ - 'lib/longleaf/preservation_services/fixity_check_service.rb'
269
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
270
+
271
+ # Offense count: 22
272
+ # Cop supports --auto-correct.
273
+ # Configuration parameters: PreferredName.
274
+ Naming/RescuedExceptionsVariableName:
275
+ Exclude:
276
+ - 'lib/longleaf/cli.rb'
277
+ - 'lib/longleaf/commands/deregister_command.rb'
278
+ - 'lib/longleaf/commands/preserve_command.rb'
279
+ - 'lib/longleaf/commands/register_command.rb'
280
+ - 'lib/longleaf/commands/reindex_command.rb'
281
+ - 'lib/longleaf/commands/validate_config_command.rb'
282
+ - 'lib/longleaf/commands/validate_metadata_command.rb'
283
+ - 'lib/longleaf/events/deregister_event.rb'
284
+ - 'lib/longleaf/events/register_event.rb'
285
+ - 'lib/longleaf/services/application_config_deserializer.rb'
286
+ - 'lib/longleaf/services/metadata_deserializer.rb'
287
+ - 'lib/longleaf/services/storage_location_validator.rb'
288
+ - 'spec/longleaf/logging/redirecting_logger_spec.rb'
289
+
290
+ # Offense count: 4
291
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
292
+ # AllowedNames: io, id, to, by, on, in, at, ip, db
293
+ Naming/UncommunicativeMethodParamName:
294
+ Exclude:
295
+ - 'lib/longleaf/logging/redirecting_logger.rb'
296
+
297
+ # Offense count: 4
298
+ # Configuration parameters: EnforcedStyle.
299
+ # SupportedStyles: snake_case, camelCase
300
+ Naming/VariableName:
301
+ Exclude:
302
+ - 'lib/longleaf/logging/redirecting_logger.rb'
303
+
304
+ # Offense count: 1
305
+ # Cop supports --auto-correct.
306
+ Performance/RedundantBlockCall:
307
+ Exclude:
308
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
309
+
310
+ # Offense count: 1
311
+ # Cop supports --auto-correct.
312
+ Performance/RedundantMatch:
313
+ Exclude:
314
+ - 'lib/longleaf/cli.rb'
315
+
316
+ # Offense count: 2
317
+ RSpec/BeforeAfterAll:
318
+ Exclude:
319
+ - 'spec/spec_helper.rb'
320
+ - 'spec/rails_helper.rb'
321
+ - 'spec/support/**/*.rb'
322
+ - 'spec/features/metadata_indexing_spec.rb'
323
+ - 'spec/features/reindex_command_spec.rb'
324
+
325
+ # Offense count: 308
326
+ # Configuration parameters: Prefixes.
327
+ # Prefixes: when, with, without
328
+ RSpec/ContextWording:
329
+ Enabled: false
330
+
331
+ # Offense count: 12
332
+ RSpec/DescribeClass:
333
+ Exclude:
334
+ - 'spec/features/cli_spec.rb'
335
+ - 'spec/features/deregister_command_spec.rb'
336
+ - 'spec/features/file_check_feature_spec.rb'
337
+ - 'spec/features/fixity_check_feature_spec.rb'
338
+ - 'spec/features/metadata_digests_spec.rb'
339
+ - 'spec/features/metadata_indexing_spec.rb'
340
+ - 'spec/features/preserve_command_spec.rb'
341
+ - 'spec/features/register_command_spec.rb'
342
+ - 'spec/features/reindex_command_spec.rb'
343
+ - 'spec/features/rsync_replication_feature_spec.rb'
344
+ - 'spec/features/validate_application_config_spec.rb'
345
+ - 'spec/features/validate_metadata_command_spec.rb'
346
+
347
+ # Offense count: 57
348
+ # Cop supports --auto-correct.
349
+ # Configuration parameters: SkipBlocks, EnforcedStyle.
350
+ # SupportedStyles: described_class, explicit
351
+ RSpec/DescribedClass:
352
+ Enabled: false
353
+
354
+ # Offense count: 2
355
+ # Cop supports --auto-correct.
356
+ RSpec/EmptyLineAfterExampleGroup:
357
+ Exclude:
358
+ - 'spec/longleaf/models/storage_location_spec.rb'
359
+
360
+ # Offense count: 31
361
+ # Cop supports --auto-correct.
362
+ RSpec/EmptyLineAfterFinalLet:
363
+ Exclude:
364
+ - 'spec/longleaf/candidates/service_candidate_filesystem_iterator_spec.rb'
365
+ - 'spec/longleaf/indexing/sequel_index_driver_spec.rb'
366
+ - 'spec/longleaf/models/metadata_record_spec.rb'
367
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
368
+ - 'spec/longleaf/services/metadata_deserializer_spec.rb'
369
+ - 'spec/longleaf/services/storage_location_validator_spec.rb'
370
+ - 'spec/support/shared_examples/file_selector_examples.rb'
371
+
372
+ # Offense count: 5
373
+ # Cop supports --auto-correct.
374
+ RSpec/EmptyLineAfterHook:
375
+ Exclude:
376
+ - 'spec/features/register_command_spec.rb'
377
+ - 'spec/longleaf/services/service_class_cache_spec.rb'
378
+
379
+ # Offense count: 33
380
+ # Configuration parameters: Max.
381
+ RSpec/ExampleLength:
382
+ Enabled: false
383
+
384
+ # Offense count: 2
385
+ RSpec/ExpectInHook:
386
+ Exclude:
387
+ - 'spec/features/metadata_indexing_spec.rb'
388
+ - 'spec/longleaf/events/register_event_spec.rb'
389
+
390
+ # Offense count: 31
391
+ # Configuration parameters: CustomTransform, IgnoreMethods.
392
+ RSpec/FilePath:
393
+ Enabled: false
394
+
395
+ # Offense count: 19
396
+ # Cop supports --auto-correct.
397
+ # Configuration parameters: EnforcedStyle.
398
+ # SupportedStyles: implicit, each, example
399
+ RSpec/HookArgument:
400
+ Exclude:
401
+ - 'spec/features/metadata_digests_spec.rb'
402
+ - 'spec/features/validate_application_config_spec.rb'
403
+ - 'spec/longleaf/models/storage_location_spec.rb'
404
+ - 'spec/longleaf/preservation_services/rsync_replication_service_spec.rb'
405
+ - 'spec/longleaf/services/application_config_deserializer_spec.rb'
406
+ - 'spec/longleaf/services/application_config_validator_spec.rb'
407
+ - 'spec/longleaf/services/metadata_deserializer_spec.rb'
408
+ - 'spec/longleaf/services/service_manager_spec.rb'
409
+
410
+ # Offense count: 10
411
+ # Configuration parameters: AssignmentOnly.
412
+ RSpec/InstanceVariable:
413
+ Exclude:
414
+ - 'spec/features/metadata_indexing_spec.rb'
415
+ - 'spec/features/reindex_command_spec.rb'
416
+ - 'spec/longleaf/indexing/sequel_index_driver_spec.rb'
417
+
418
+ # Offense count: 1
419
+ # Cop supports --auto-correct.
420
+ RSpec/LetBeforeExamples:
421
+ Exclude:
422
+ - 'spec/longleaf/models/metadata_record_spec.rb'
423
+
424
+ # Offense count: 15
425
+ RSpec/LetSetup:
426
+ Exclude:
427
+ - 'spec/features/metadata_indexing_spec.rb'
428
+ - 'spec/features/preserve_command_spec.rb'
429
+ - 'spec/longleaf/candidates/service_candidate_filesystem_iterator_spec.rb'
430
+ - 'spec/longleaf/candidates/service_candidate_index_iterator_spec.rb'
431
+ - 'spec/longleaf/indexing/sequel_index_driver_spec.rb'
432
+
433
+ # Offense count: 11
434
+ # Configuration parameters: .
435
+ # SupportedStyles: have_received, receive
436
+ RSpec/MessageSpies:
437
+ EnforcedStyle: receive
438
+
439
+ # Offense count: 187
440
+ # Configuration parameters: AggregateFailuresByDefault.
441
+ RSpec/MultipleExpectations:
442
+ Max: 9
443
+
444
+ # Offense count: 126
445
+ RSpec/NestedGroups:
446
+ Max: 5
447
+
448
+ # Offense count: 84
449
+ # Cop supports --auto-correct.
450
+ # Configuration parameters: EnforcedStyle.
451
+ # SupportedStyles: not_to, to_not
452
+ RSpec/NotToNot:
453
+ Enabled: false
454
+
455
+ # Offense count: 12
456
+ # Cop supports --auto-correct.
457
+ # Configuration parameters: EnforcedStyle.
458
+ # SupportedStyles: and_return, block
459
+ RSpec/ReturnFromStub:
460
+ Exclude:
461
+ - 'spec/longleaf/events/preserve_event_spec.rb'
462
+
463
+ # Offense count: 42
464
+ RSpec/ScatteredLet:
465
+ Exclude:
466
+ - 'spec/features/fixity_check_feature_spec.rb'
467
+ - 'spec/features/metadata_indexing_spec.rb'
468
+ - 'spec/features/reindex_command_spec.rb'
469
+ - 'spec/features/rsync_replication_feature_spec.rb'
470
+ - 'spec/longleaf/candidates/service_candidate_filesystem_iterator_spec.rb'
471
+ - 'spec/longleaf/candidates/service_candidate_index_iterator_spec.rb'
472
+ - 'spec/longleaf/candidates/service_candidate_locator_spec.rb'
473
+ - 'spec/longleaf/events/deregister_event_spec.rb'
474
+ - 'spec/longleaf/indexing/sequel_index_driver_spec.rb'
475
+ - 'spec/longleaf/models/metadata_record_spec.rb'
476
+ - 'spec/longleaf/services/service_manager_spec.rb'
477
+ - 'spec/support/shared_examples/file_selector_examples.rb'
478
+
479
+ # Offense count: 3
480
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
481
+ RSpec/VerifiedDoubles:
482
+ Exclude:
483
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
484
+ - 'spec/longleaf/services/service_class_cache_spec.rb'
485
+ - 'spec/longleaf/services/service_manager_spec.rb'
486
+
487
+ # Offense count: 1
488
+ RSpec/VoidExpect:
489
+ Exclude:
490
+ - 'spec/longleaf/indexing/sequel_index_driver_spec.rb'
491
+
492
+ # Offense count: 2
493
+ # Cop supports --auto-correct.
494
+ # Configuration parameters: EnforcedStyle.
495
+ # SupportedStyles: always, conditionals
496
+ Style/AndOr:
497
+ Exclude:
498
+ - 'lib/longleaf/candidates/file_selector.rb'
499
+ - 'lib/longleaf/candidates/registered_file_selector.rb'
500
+
501
+ # Offense count: 1
502
+ # Cop supports --auto-correct.
503
+ # Configuration parameters: EnforcedStyle.
504
+ # SupportedStyles: percent_q, bare_percent
505
+ Style/BarePercentLiterals:
506
+ Exclude:
507
+ - 'lib/longleaf/specs/file_helpers.rb'
508
+
509
+ # Offense count: 1
510
+ # Cop supports --auto-correct.
511
+ Style/BlockComments:
512
+ Exclude:
513
+ - 'spec/spec_helper.rb'
514
+
515
+ # Offense count: 200
516
+ # Cop supports --auto-correct.
517
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners.
518
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
519
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
520
+ # FunctionalMethods: let, let!, subject, watch
521
+ # IgnoredMethods: lambda, proc, it
522
+ Style/BlockDelimiters:
523
+ Enabled: false
524
+
525
+ # Offense count: 10
526
+ # Cop supports --auto-correct.
527
+ # Configuration parameters: EnforcedStyle.
528
+ # SupportedStyles: braces, no_braces, context_dependent
529
+ Style/BracesAroundHashParameters:
530
+ Exclude:
531
+ - 'lib/longleaf/cli.rb'
532
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
533
+
534
+ # Offense count: 1
535
+ # Cop supports --auto-correct.
536
+ # Configuration parameters: EnforcedStyle.
537
+ # SupportedStyles: is_a?, kind_of?
538
+ Style/ClassCheck:
539
+ Exclude:
540
+ - 'lib/longleaf/specs/metadata_builder.rb'
541
+
542
+ # Offense count: 82
543
+ # Cop supports --auto-correct.
544
+ Style/ColonMethodCall:
545
+ Enabled: false
546
+
547
+ # Offense count: 1
548
+ # Cop supports --auto-correct.
549
+ # Configuration parameters: Keywords.
550
+ # Keywords: TODO, FIXME, OPTIMIZE, HACK, REVIEW
551
+ Style/CommentAnnotation:
552
+ Exclude:
553
+ - 'spec/longleaf/candidates/service_candidate_index_iterator_spec.rb'
554
+
555
+ # Offense count: 11
556
+ # Cop supports --auto-correct.
557
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
558
+ # SupportedStyles: assign_to_condition, assign_inside_condition
559
+ Style/ConditionalAssignment:
560
+ Exclude:
561
+ - 'lib/longleaf/events/event_status_tracking.rb'
562
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
563
+ - 'lib/longleaf/logging/redirecting_logger.rb'
564
+ - 'lib/longleaf/models/storage_location.rb'
565
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
566
+ - 'lib/longleaf/services/application_config_deserializer.rb'
567
+ - 'lib/longleaf/services/metadata_deserializer.rb'
568
+ - 'lib/longleaf/services/metadata_serializer.rb'
569
+ - 'lib/longleaf/specs/metadata_builder.rb'
570
+ - 'spec/features/reindex_command_spec.rb'
571
+
572
+ # Offense count: 2
573
+ Style/Documentation:
574
+ Exclude:
575
+ - 'spec/**/*'
576
+ - 'test/**/*'
577
+ - 'lib/longleaf.rb'
578
+ - 'lib/longleaf/specs/custom_matchers.rb'
579
+
580
+ # Offense count: 52
581
+ # Cop supports --auto-correct.
582
+ Style/EmptyLiteral:
583
+ Enabled: false
584
+
585
+ # Offense count: 1
586
+ # Cop supports --auto-correct.
587
+ # Configuration parameters: EnforcedStyle.
588
+ # SupportedStyles: format, sprintf, percent
589
+ Style/FormatString:
590
+ Exclude:
591
+ - 'lib/longleaf/logging/redirecting_logger.rb'
592
+
593
+ # Offense count: 119
594
+ # Cop supports --auto-correct.
595
+ # Configuration parameters: EnforcedStyle.
596
+ # SupportedStyles: always, never
597
+ Style/FrozenStringLiteralComment:
598
+ Enabled: false
599
+
600
+ # Offense count: 13
601
+ # Configuration parameters: MinBodyLength.
602
+ Style/GuardClause:
603
+ Exclude:
604
+ - 'lib/longleaf/candidates/file_selector.rb'
605
+ - 'lib/longleaf/candidates/registered_file_selector.rb'
606
+ - 'lib/longleaf/candidates/service_candidate_index_iterator.rb'
607
+ - 'lib/longleaf/cli.rb'
608
+ - 'lib/longleaf/helpers/service_date_helper.rb'
609
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
610
+ - 'lib/longleaf/preservation_services/file_check_service.rb'
611
+ - 'lib/longleaf/preservation_services/fixity_check_service.rb'
612
+ - 'lib/longleaf/services/metadata_persistence_manager.rb'
613
+ - 'lib/longleaf/services/storage_location_manager.rb'
614
+
615
+ # Offense count: 59
616
+ # Cop supports --auto-correct.
617
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
618
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
619
+ Style/HashSyntax:
620
+ Enabled: false
621
+
622
+ # Offense count: 3
623
+ Style/IfInsideElse:
624
+ Exclude:
625
+ - 'lib/longleaf/preservation_services/fixity_check_service.rb'
626
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
627
+
628
+ # Offense count: 32
629
+ # Cop supports --auto-correct.
630
+ Style/IfUnlessModifier:
631
+ Enabled: false
632
+
633
+ # Offense count: 1
634
+ # Cop supports --auto-correct.
635
+ # Configuration parameters: InverseMethods, InverseBlocks.
636
+ Style/InverseMethods:
637
+ Exclude:
638
+ - 'lib/longleaf/helpers/digest_helper.rb'
639
+
640
+ # Offense count: 3
641
+ # Cop supports --auto-correct.
642
+ # Configuration parameters: IgnoredMethods.
643
+ Style/MethodCallWithoutArgsParentheses:
644
+ Exclude:
645
+ - 'spec/longleaf/services/metadata_deserializer_spec.rb'
646
+ - 'spec/support/shared_examples/file_selector_examples.rb'
647
+
648
+ # Offense count: 1
649
+ # Cop supports --auto-correct.
650
+ Style/MultilineIfModifier:
651
+ Exclude:
652
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
653
+
654
+ # Offense count: 2
655
+ Style/MultipleComparison:
656
+ Exclude:
657
+ - 'lib/longleaf/candidates/file_selector.rb'
658
+ - 'lib/longleaf/candidates/registered_file_selector.rb'
659
+
660
+ # Offense count: 59
661
+ # Cop supports --auto-correct.
662
+ # Configuration parameters: EnforcedStyle.
663
+ # SupportedStyles: literals, strict
664
+ Style/MutableConstant:
665
+ Exclude:
666
+ - 'lib/longleaf/candidates/file_selector.rb'
667
+ - 'lib/longleaf/events/event_names.rb'
668
+ - 'lib/longleaf/helpers/digest_helper.rb'
669
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
670
+ - 'lib/longleaf/models/app_fields.rb'
671
+ - 'lib/longleaf/models/md_fields.rb'
672
+ - 'lib/longleaf/models/service_fields.rb'
673
+ - 'lib/longleaf/models/system_config_fields.rb'
674
+ - 'lib/longleaf/preservation_services/fixity_check_service.rb'
675
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
676
+ - 'lib/longleaf/services/service_class_cache.rb'
677
+ - 'lib/longleaf/version.rb'
678
+ - 'spec/features/fixity_check_feature_spec.rb'
679
+ - 'spec/longleaf/preservation_services/fixity_check_service_spec.rb'
680
+
681
+ # Offense count: 9
682
+ # Cop supports --auto-correct.
683
+ # Configuration parameters: EnforcedStyle.
684
+ # SupportedStyles: both, prefix, postfix
685
+ Style/NegatedIf:
686
+ Exclude:
687
+ - 'lib/longleaf/candidates/file_selector.rb'
688
+ - 'lib/longleaf/candidates/service_candidate_filesystem_iterator.rb'
689
+ - 'lib/longleaf/commands/reindex_command.rb'
690
+ - 'lib/longleaf/events/preserve_event.rb'
691
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
692
+ - 'lib/longleaf/preservation_services/file_check_service.rb'
693
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
694
+ - 'lib/longleaf/services/service_class_cache.rb'
695
+
696
+ # Offense count: 2
697
+ # Cop supports --auto-correct.
698
+ # Configuration parameters: EnforcedStyle, MinBodyLength.
699
+ # SupportedStyles: skip_modifier_ifs, always
700
+ Style/Next:
701
+ Exclude:
702
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
703
+ - 'lib/longleaf/services/storage_location_validator.rb'
704
+
705
+ # Offense count: 5
706
+ # Cop supports --auto-correct.
707
+ # Configuration parameters: AutoCorrect, EnforcedStyle, IgnoredMethods.
708
+ # SupportedStyles: predicate, comparison
709
+ Style/NumericPredicate:
710
+ Exclude:
711
+ - 'spec/**/*'
712
+ - 'lib/longleaf/commands/reindex_command.rb'
713
+ - 'lib/longleaf/events/event_status_tracking.rb'
714
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
715
+
716
+ # Offense count: 8
717
+ # Cop supports --auto-correct.
718
+ # Configuration parameters: PreferredDelimiters.
719
+ Style/PercentLiteralDelimiters:
720
+ Exclude:
721
+ - 'lib/longleaf/cli.rb'
722
+ - 'spec/features/file_check_feature_spec.rb'
723
+ - 'spec/features/fixity_check_feature_spec.rb'
724
+
725
+ # Offense count: 2
726
+ # Cop supports --auto-correct.
727
+ Style/PerlBackrefs:
728
+ Exclude:
729
+ - 'lib/longleaf/helpers/service_date_helper.rb'
730
+
731
+ # Offense count: 93
732
+ # Cop supports --auto-correct.
733
+ # Configuration parameters: .
734
+ # SupportedStyles: compact, exploded
735
+ Style/RaiseArgs:
736
+ EnforcedStyle: compact
737
+
738
+ # Offense count: 3
739
+ # Cop supports --auto-correct.
740
+ Style/RedundantBegin:
741
+ Exclude:
742
+ - 'lib/longleaf/cli.rb'
743
+ - 'lib/longleaf/services/application_config_deserializer.rb'
744
+
745
+ # Offense count: 11
746
+ # Cop supports --auto-correct.
747
+ Style/RedundantParentheses:
748
+ Exclude:
749
+ - 'spec/features/metadata_indexing_spec.rb'
750
+ - 'spec/features/reindex_command_spec.rb'
751
+ - 'spec/longleaf/models/metadata_record_spec.rb'
752
+
753
+ # Offense count: 9
754
+ # Cop supports --auto-correct.
755
+ # Configuration parameters: AllowMultipleReturnValues.
756
+ Style/RedundantReturn:
757
+ Exclude:
758
+ - 'lib/longleaf/candidates/registered_file_selector.rb'
759
+ - 'lib/longleaf/helpers/digest_helper.rb'
760
+ - 'lib/longleaf/indexing/sequel_index_driver.rb'
761
+ - 'lib/longleaf/specs/file_helpers.rb'
762
+
763
+ # Offense count: 1
764
+ # Cop supports --auto-correct.
765
+ Style/RedundantSelf:
766
+ Exclude:
767
+ - 'lib/longleaf/services/metadata_serializer.rb'
768
+
769
+ # Offense count: 21
770
+ # Cop supports --auto-correct.
771
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
772
+ # SupportedStyles: slashes, percent_r, mixed
773
+ Style/RegexpLiteral:
774
+ Exclude:
775
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
776
+ - 'spec/features/file_check_feature_spec.rb'
777
+ - 'spec/features/fixity_check_feature_spec.rb'
778
+ - 'spec/longleaf/logging/redirecting_logger_spec.rb'
779
+
780
+ # Offense count: 9
781
+ # Cop supports --auto-correct.
782
+ # Configuration parameters: EnforcedStyle.
783
+ # SupportedStyles: implicit, explicit
784
+ Style/RescueStandardError:
785
+ Exclude:
786
+ - 'lib/longleaf/commands/deregister_command.rb'
787
+ - 'lib/longleaf/commands/preserve_command.rb'
788
+ - 'lib/longleaf/commands/register_command.rb'
789
+ - 'lib/longleaf/commands/reindex_command.rb'
790
+ - 'lib/longleaf/commands/validate_config_command.rb'
791
+ - 'lib/longleaf/commands/validate_metadata_command.rb'
792
+ - 'lib/longleaf/services/application_config_deserializer.rb'
793
+ - 'lib/longleaf/services/metadata_deserializer.rb'
794
+
795
+ # Offense count: 1
796
+ # Cop supports --auto-correct.
797
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, Whitelist.
798
+ # Whitelist: present?, blank?, presence, try, try!
799
+ Style/SafeNavigation:
800
+ Exclude:
801
+ - 'lib/longleaf/services/metadata_serializer.rb'
802
+
803
+ # Offense count: 2
804
+ # Cop supports --auto-correct.
805
+ Style/SelfAssignment:
806
+ Exclude:
807
+ - 'lib/longleaf/logging/redirecting_logger.rb'
808
+ - 'lib/longleaf/preservation_services/rsync_replication_service.rb'
809
+
810
+ # Offense count: 3
811
+ # Cop supports --auto-correct.
812
+ Style/UnneededInterpolation:
813
+ Exclude:
814
+ - 'lib/longleaf/logging/redirecting_logger.rb'
815
+
816
+ # Offense count: 1
817
+ # Cop supports --auto-correct.
818
+ Style/UnneededPercentQ:
819
+ Exclude:
820
+ - 'lib/longleaf/specs/file_helpers.rb'
821
+
822
+ # Offense count: 2
823
+ # Cop supports --auto-correct.
824
+ Style/WhileUntilDo:
825
+ Exclude:
826
+ - 'lib/longleaf/candidates/file_selector.rb'
827
+ - 'lib/longleaf/candidates/registered_file_selector.rb'
828
+
829
+ # Offense count: 33
830
+ # Cop supports --auto-correct.
831
+ # Configuration parameters: EnforcedStyle, MinSize, WordRegex.
832
+ # SupportedStyles: percent, brackets
833
+ Style/WordArray:
834
+ Enabled: false