longleaf 0.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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