arclight 0.4.0 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +11 -4
  3. data/.github/workflows/ruby.yml +24 -8
  4. data/.rspec +0 -1
  5. data/.rubocop.yml +289 -3
  6. data/.rubocop_todo.yml +64 -76
  7. data/CONTRIBUTING.md +5 -5
  8. data/Gemfile +15 -10
  9. data/README.md +18 -12
  10. data/app/assets/javascripts/arclight/arclight.js +3 -7
  11. data/app/assets/javascripts/arclight/oembed_viewer.js +64 -39
  12. data/app/assets/javascripts/arclight/truncate_controller.js +27 -0
  13. data/app/assets/stylesheets/arclight/application.scss +1 -5
  14. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +104 -130
  15. data/app/assets/stylesheets/arclight/modules/icons.scss +14 -3
  16. data/app/assets/stylesheets/arclight/modules/layout.scss +121 -100
  17. data/app/assets/stylesheets/arclight/modules/mastheads.scss +15 -57
  18. data/app/assets/stylesheets/arclight/modules/repositories.scss +2 -2
  19. data/app/assets/stylesheets/arclight/modules/repository_card.scss +4 -48
  20. data/app/assets/stylesheets/arclight/modules/search_results.scss +86 -35
  21. data/app/assets/stylesheets/arclight/modules/show_collection.scss +5 -32
  22. data/app/assets/stylesheets/arclight/modules/truncator.scss +56 -0
  23. data/app/assets/stylesheets/arclight/variables.scss +7 -4
  24. data/app/components/arclight/access_component.html.erb +14 -0
  25. data/app/components/arclight/access_component.rb +25 -0
  26. data/app/components/arclight/bookmark_component.html.erb +25 -0
  27. data/app/components/arclight/bookmark_component.rb +9 -0
  28. data/app/components/arclight/breadcrumb_component.rb +40 -0
  29. data/app/components/arclight/breadcrumbs_hierarchy_component.html.erb +34 -0
  30. data/app/components/arclight/breadcrumbs_hierarchy_component.rb +25 -0
  31. data/app/components/arclight/collection_context_component.html.erb +12 -0
  32. data/app/components/arclight/collection_context_component.rb +27 -0
  33. data/app/components/arclight/collection_info_component.html.erb +28 -0
  34. data/app/components/arclight/collection_info_component.rb +26 -0
  35. data/app/components/arclight/collection_sidebar_component.html.erb +15 -0
  36. data/app/components/arclight/collection_sidebar_component.rb +41 -0
  37. data/app/{views/catalog/_search_results_repository.html.erb → components/arclight/constraints_component.html.erb} +2 -1
  38. data/app/components/arclight/constraints_component.rb +17 -0
  39. data/app/components/arclight/document_collection_context_component.html.erb +29 -0
  40. data/app/components/arclight/document_collection_context_component.rb +28 -0
  41. data/app/components/arclight/document_collection_hierarchy_component.html.erb +46 -0
  42. data/app/components/arclight/document_collection_hierarchy_component.rb +62 -0
  43. data/app/components/arclight/document_component.html.erb +39 -0
  44. data/app/components/arclight/document_component.rb +49 -0
  45. data/app/components/arclight/document_components_hierarchy_component.html.erb +32 -0
  46. data/app/components/arclight/document_components_hierarchy_component.rb +28 -0
  47. data/app/components/arclight/document_download_component.html.erb +24 -0
  48. data/app/components/arclight/document_download_component.rb +71 -0
  49. data/app/components/arclight/embed_component.html.erb +10 -0
  50. data/app/components/arclight/embed_component.rb +43 -0
  51. data/app/components/arclight/group_component.html.erb +30 -0
  52. data/app/components/arclight/group_component.rb +23 -0
  53. data/app/components/arclight/header_component.html.erb +5 -0
  54. data/app/components/arclight/header_component.rb +10 -0
  55. data/app/components/arclight/index_metadata_field_component.html.erb +17 -0
  56. data/app/components/arclight/index_metadata_field_component.rb +20 -0
  57. data/app/components/arclight/masthead_component.html.erb +15 -0
  58. data/app/components/arclight/masthead_component.rb +10 -0
  59. data/app/components/arclight/metadata_section_component.html.erb +13 -0
  60. data/app/components/arclight/metadata_section_component.rb +22 -0
  61. data/app/components/arclight/oembed_viewer_component.html.erb +5 -0
  62. data/app/components/arclight/oembed_viewer_component.rb +16 -0
  63. data/app/components/arclight/online_content_filter_component.html.erb +15 -0
  64. data/app/components/arclight/online_content_filter_component.rb +19 -0
  65. data/app/components/arclight/online_status_indicator_component.rb +19 -0
  66. data/app/components/arclight/repository_breadcrumb_component.html.erb +10 -0
  67. data/app/components/arclight/repository_breadcrumb_component.rb +17 -0
  68. data/app/components/arclight/repository_location_component.html.erb +20 -0
  69. data/app/components/arclight/repository_location_component.rb +10 -0
  70. data/app/components/arclight/search_bar_component.html.erb +25 -0
  71. data/app/components/arclight/search_bar_component.rb +32 -0
  72. data/app/components/arclight/search_result_breadcrumbs_component.html.erb +3 -0
  73. data/app/components/arclight/search_result_breadcrumbs_component.rb +37 -0
  74. data/app/components/arclight/search_result_component.html.erb +20 -0
  75. data/app/components/arclight/search_result_component.rb +24 -0
  76. data/app/components/arclight/search_result_title_component.html.erb +13 -0
  77. data/app/components/arclight/search_result_title_component.rb +15 -0
  78. data/app/components/arclight/sidebar_component.html.erb +9 -0
  79. data/app/components/arclight/sidebar_component.rb +19 -0
  80. data/app/components/arclight/upper_metadata_layout_component.rb +10 -0
  81. data/app/components/blacklight/icons/bookmark_component.rb +12 -0
  82. data/app/components/blacklight/icons/collection_component.rb +14 -0
  83. data/app/components/blacklight/icons/compact_component.rb +12 -0
  84. data/app/components/blacklight/icons/container_component.rb +14 -0
  85. data/app/components/blacklight/icons/ead_component.rb +12 -0
  86. data/app/components/blacklight/icons/file_component.rb +14 -0
  87. data/app/components/blacklight/icons/folder_component.rb +12 -0
  88. data/app/components/blacklight/icons/online_component.rb +15 -0
  89. data/app/components/blacklight/icons/pdf_component.rb +12 -0
  90. data/app/components/blacklight/icons/repository_component.rb +12 -0
  91. data/app/controllers/arclight/repositories_controller.rb +4 -4
  92. data/app/{controllers/concerns → helpers}/arclight/ead_format_helpers.rb +4 -7
  93. data/app/helpers/arclight/field_config_helpers.rb +26 -0
  94. data/app/helpers/arclight_helper.rb +16 -254
  95. data/app/models/arclight/document_downloads.rb +12 -15
  96. data/app/models/arclight/parent.rb +5 -0
  97. data/app/models/arclight/parents.rb +2 -1
  98. data/app/models/arclight/requests/aeon_external_request.rb +1 -1
  99. data/app/models/arclight/requests/aeon_web_ead.rb +8 -3
  100. data/app/models/arclight/requests/google_form.rb +8 -3
  101. data/app/models/concerns/arclight/catalog.rb +25 -15
  102. data/app/models/concerns/arclight/search_behavior.rb +12 -26
  103. data/app/models/concerns/arclight/solr_document.rb +70 -73
  104. data/app/presenters/arclight/show_presenter.rb +34 -7
  105. data/app/views/arclight/_requests.html.erb +2 -2
  106. data/app/views/arclight/repositories/_repository.html.erb +21 -40
  107. data/app/views/arclight/repositories/index.html.erb +3 -1
  108. data/app/views/arclight/repositories/show.html.erb +4 -6
  109. data/app/views/arclight/requests/_aeon_external_request_endpoint.html.erb +4 -5
  110. data/app/views/arclight/requests/_aeon_web_ead.html.erb +3 -4
  111. data/app/views/arclight/requests/_google_form.html.erb +4 -6
  112. data/app/views/catalog/_group.html.erb +1 -18
  113. data/app/views/catalog/_group_toggle.html.erb +1 -1
  114. data/app/views/catalog/_search_results_header.html.erb +3 -0
  115. data/app/views/catalog/hierarchy.html.erb +19 -0
  116. data/app/views/catalog/index.html.erb +16 -7
  117. data/app/views/shared/_breadcrumbs.html.erb +2 -14
  118. data/app/views/shared/_main_menu_links.html.erb +1 -1
  119. data/arclight.gemspec +13 -11
  120. data/config/breadcrumbs.rb +24 -0
  121. data/config/i18n-tasks.yml +9 -8
  122. data/config/importmap.rb +3 -0
  123. data/config/locales/arclight.en.yml +31 -30
  124. data/config/routes.rb +1 -1
  125. data/docker-compose.yml +16 -0
  126. data/lib/arclight/digital_object.rb +2 -1
  127. data/lib/arclight/engine.rb +18 -37
  128. data/lib/arclight/exceptions.rb +1 -0
  129. data/lib/arclight/hash_absolute_xpath.rb +2 -1
  130. data/lib/arclight/normalized_id.rb +2 -0
  131. data/lib/arclight/normalized_title.rb +2 -0
  132. data/lib/arclight/repository.rb +45 -56
  133. data/lib/arclight/routes/hierarchy.rb +19 -0
  134. data/lib/arclight/routes.rb +8 -0
  135. data/lib/arclight/traject/ead2_component_config.rb +292 -0
  136. data/lib/arclight/traject/ead2_config.rb +66 -287
  137. data/lib/arclight/version.rb +1 -1
  138. data/lib/arclight/year_range.rb +4 -3
  139. data/lib/arclight.rb +6 -1
  140. data/lib/generators/arclight/install_generator.rb +59 -21
  141. data/lib/generators/arclight/templates/arclight.scss +4 -3
  142. data/lib/generators/arclight/templates/catalog_controller.rb +150 -165
  143. data/lib/generators/arclight/templates/config/locales/arclight.en.yml +53 -0
  144. data/lib/generators/arclight/templates/config/repositories.yml +20 -27
  145. data/lib/tasks/index.rake +14 -17
  146. data/package.json +11 -13
  147. data/solr/conf/schema.xml +42 -38
  148. data/solr/conf/solrconfig.xml +34 -31
  149. data/tasks/arclight.rake +8 -7
  150. data/template.rb +1 -2
  151. metadata +147 -120
  152. data/.babelrc +0 -3
  153. data/app/assets/javascripts/arclight/collection_navigation.js +0 -100
  154. data/app/assets/javascripts/arclight/collection_scrollspy.js +0 -6
  155. data/app/assets/javascripts/arclight/context_navigation.js +0 -351
  156. data/app/assets/javascripts/arclight/truncator.js.erb +0 -29
  157. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +0 -26
  158. data/app/assets/stylesheets/arclight/modules/context_navigation.scss +0 -75
  159. data/app/controllers/concerns/arclight/field_config_helpers.rb +0 -102
  160. data/app/factories/blacklight_field_configuration_factory.rb +0 -30
  161. data/app/views/arclight/repositories/_in_person_repository.html.erb +0 -19
  162. data/app/views/arclight/repositories/_repository_contact.html.erb +0 -9
  163. data/app/views/arclight/viewers/_oembed.html.erb +0 -8
  164. data/app/views/catalog/_access_contents.html.erb +0 -15
  165. data/app/views/catalog/_arclight_abstract_or_scope.html.erb +0 -5
  166. data/app/views/catalog/_arclight_bookmark_control.html.erb +0 -38
  167. data/app/views/catalog/_arclight_document_header_icon.html.erb +0 -1
  168. data/app/views/catalog/_arclight_document_index_header.html.erb +0 -13
  169. data/app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb +0 -0
  170. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  171. data/app/views/catalog/_arclight_index_compact_default.html.erb +0 -22
  172. data/app/views/catalog/_arclight_index_default.html.erb +0 -45
  173. data/app/views/catalog/_arclight_index_group_document_compact_default.html.erb +0 -19
  174. data/app/views/catalog/_arclight_index_group_document_default.html.erb +0 -18
  175. data/app/views/catalog/_arclight_online_content_indicator.html.erb +0 -3
  176. data/app/views/catalog/_arclight_rangelimit.html.erb +0 -24
  177. data/app/views/catalog/_arclight_viewer_default.html.erb +0 -1
  178. data/app/views/catalog/_collection_contents.html.erb +0 -4
  179. data/app/views/catalog/_collection_context.html.erb +0 -15
  180. data/app/views/catalog/_collection_context_nav.html.erb +0 -12
  181. data/app/views/catalog/_collection_online_contents.html.erb +0 -17
  182. data/app/views/catalog/_component_context.html.erb +0 -5
  183. data/app/views/catalog/_containers.html.erb +0 -3
  184. data/app/views/catalog/_context_card.html.erb +0 -27
  185. data/app/views/catalog/_context_sidebar.html.erb +0 -8
  186. data/app/views/catalog/_custom_metadata.html.erb +0 -16
  187. data/app/views/catalog/_document_downloads.html.erb +0 -14
  188. data/app/views/catalog/_group_header_compact_default.html.erb +0 -15
  189. data/app/views/catalog/_group_header_default.html.erb +0 -20
  190. data/app/views/catalog/_home.html.erb +0 -1
  191. data/app/views/catalog/_index_breadcrumb_default.html.erb +0 -6
  192. data/app/views/catalog/_index_collection_context_default.html.erb +0 -53
  193. data/app/views/catalog/_index_default.html.erb +0 -17
  194. data/app/views/catalog/_index_header.html.erb +0 -7
  195. data/app/views/catalog/_index_header_online_contents_default.html.erb +0 -1
  196. data/app/views/catalog/_index_online_contents_default.html.erb +0 -6
  197. data/app/views/catalog/_online_content_label.html.erb +0 -5
  198. data/app/views/catalog/_search_form.html.erb +0 -34
  199. data/app/views/catalog/_search_results.html.erb +0 -28
  200. data/app/views/catalog/_show_actions_box_default.html.erb +0 -27
  201. data/app/views/catalog/_show_breadcrumbs_default.html.erb +0 -6
  202. data/app/views/catalog/_show_collection.html.erb +0 -66
  203. data/app/views/catalog/_show_default.html.erb +0 -70
  204. data/app/views/catalog/_show_upper_metadata_collection.html.erb +0 -1
  205. data/app/views/catalog/_show_upper_metadata_default.html.erb +0 -14
  206. data/app/views/catalog/_sort_and_per_page.html.erb +0 -8
  207. data/app/views/catalog/_within_collection_dropdown.html.erb +0 -26
  208. data/app/views/layouts/catalog_result.html.erb +0 -7
  209. data/app/views/shared/_context_sidebar.html.erb +0 -8
  210. data/app/views/shared/_header_navbar.html.erb +0 -61
  211. data/app/views/shared/_show_breadcrumbs.html.erb +0 -27
  212. data/lib/arclight/viewer.rb +0 -45
  213. data/lib/arclight/viewers/oembed.rb +0 -57
  214. data/solr/conf/scripts.conf +0 -24
  215. data/vendor/assets/javascripts/responsiveTruncator.js +0 -69
  216. data/vendor/assets/javascripts/stickyfill.js +0 -480
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f51a3a7025a39a90504bd7a9fe679f84a88b1ebc14c3497d16b4a3f0f7919c36
4
- data.tar.gz: c39d93f039a1ac4bd05373353d121268801c2eabb097ff16e142b08f155a518d
3
+ metadata.gz: 1145e9c396f3fb41357ffc7d8e4139e47973369de6d17bc71e2d8b17696bfbb9
4
+ data.tar.gz: '0329f7cb492c8e02b4ce48417acaafc291a9db5d7413855e699f1c16d975ef98'
5
5
  SHA512:
6
- metadata.gz: dd10ff42c38f9a1c8c408279182adc4c2c6af1a77ed2d1996435efb43a46d2398064de8e878a552be062cc94c77407734cb5db7992f266baaba77931eab031e7
7
- data.tar.gz: 2fea971f65494fccbb43d1bf42ff5ae3da35fd03e13425b1480a7064411ff9dd3cc4bbc8f7cdd2355e58dab2930822e74434732ceab7792ea2112f9d5877bb57
6
+ metadata.gz: dbad57d56b4272b94423f6d733d823f8644020d1c5144297a42866346e2b4e48a0c68691930fa6b949d4c6692fc98023b356428e9bae1957005b50f16999be47
7
+ data.tar.gz: b8504eec100f970e296015c329536175be352dd369116310469a5e4bc4dc19cfe3eee2580e83a7206906d427dc5836b328efbeec8f13436f9f783464831acd5f
data/.eslintrc CHANGED
@@ -2,14 +2,21 @@
2
2
  "env": {
3
3
  "es6": true
4
4
  },
5
+ "parserOptions": {
6
+ "ecmaVersion": 2022,
7
+ "sourceType": "module"
8
+ },
5
9
  "extends": "airbnb-base/legacy",
6
10
  "globals": {
7
- "jQuery": true,
8
- "$": true,
9
- "Blacklight": true
11
+ "Blacklight": true,
12
+ "bootstrap": true,
13
+ "Stimulus": true,
10
14
  },
11
15
  "rules": {
12
16
  "no-param-reassign": [2, { "props": false }],
13
- "func-names": ["error", "never"]
17
+ "func-names": ["error", "never"],
18
+ "indent": ["warn"],
19
+ "quotes": ["error", "single", { "avoidEscape": true }],
20
+ "semi": ["warn", "never"]
14
21
  }
15
22
  }
@@ -2,28 +2,44 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ branches: [ main ]
6
6
  pull_request:
7
- branches: [ master ]
7
+ branches: [ main ]
8
8
 
9
9
  jobs:
10
10
  test:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- rails_version: [5.2.4.3, 6.0.3.2, 6.1.0]
15
- ruby: [2.6, 2.7]
14
+ rails_version: [7.0.4]
15
+ ruby: ['3.0', '3.1', '3.2']
16
+ blacklight_version: [8.0.0.beta5]
16
17
  env:
17
18
  RAILS_VERSION: ${{ matrix.rails_version }}
18
19
  steps:
19
- - uses: actions/checkout@v2
20
+ - uses: actions/checkout@v3
20
21
  - name: Set up Ruby ${{ matrix.ruby }}
21
22
  uses: ruby/setup-ruby@v1
22
23
  with:
24
+ bundler: latest
23
25
  ruby-version: ${{ matrix.ruby }}
24
26
  - name: Install dependencies with Rails ${{ matrix.rails_version }}
25
27
  run: bundle install
26
- - name: Install dependencies with yarn
27
- run: yarn install
28
28
  - name: Run tests
29
- run: bundle exec rake
29
+ run: bundle exec rake ci
30
+ lint:
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - name: Checkout code
34
+ uses: actions/checkout@v3
35
+ - name: Install Ruby and gems
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ bundler: latest
39
+ ruby-version: 3.2
40
+ - name: Install dependencies with Bundler
41
+ run: bundle install
42
+ - name: Install dependencies with yarn
43
+ run: yarn install
44
+ - name: Lint Ruby files
45
+ run: bundle exec rake rubocop eslint
data/.rspec CHANGED
@@ -1,2 +1 @@
1
- --format documentation
2
1
  --color
data/.rubocop.yml CHANGED
@@ -1,4 +1,7 @@
1
- require: rubocop-rspec
1
+ require:
2
+ - rubocop-rspec
3
+ - rubocop-rails
4
+ - rubocop-rake
2
5
 
3
6
  inherit_from:
4
7
  - .rubocop_todo.yml
@@ -11,7 +14,7 @@ AllCops:
11
14
  - 'lib/generators/arclight/templates/**/*'
12
15
  - 'vendor/**/*'
13
16
  - 'node_modules/**/*'
14
- TargetRubyVersion: 2.4
17
+ TargetRubyVersion: 3.0
15
18
  DisplayCopNames: true
16
19
 
17
20
  Metrics/ModuleLength:
@@ -30,7 +33,11 @@ Metrics/BlockLength:
30
33
  - 'spec/**/*'
31
34
  - 'tasks/**/*'
32
35
 
33
- Metrics/LineLength:
36
+ Naming/PredicateName:
37
+ ForbiddenPrefixes:
38
+ - _is
39
+
40
+ Layout/LineLength:
34
41
  Max: 160
35
42
 
36
43
  Rails:
@@ -42,3 +49,282 @@ Bundler/DuplicatedGem:
42
49
  Style/FormatStringToken:
43
50
  Exclude:
44
51
  - 'spec/test_app_templates/lib/generators/test_app_generator.rb'
52
+
53
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.30
54
+ Enabled: true
55
+ Gemspec/RequireMFA: # new in 1.23
56
+ Enabled: false
57
+ Layout/LineContinuationLeadingSpace: # new in 1.31
58
+ Enabled: true
59
+ Layout/LineContinuationSpacing: # new in 1.31
60
+ Enabled: true
61
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
62
+ Enabled: true
63
+ Layout/SpaceBeforeBrackets: # new in 1.7
64
+ Enabled: true
65
+ Lint/AmbiguousAssignment: # new in 1.7
66
+ Enabled: true
67
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
68
+ Enabled: true
69
+ Lint/AmbiguousRange: # new in 1.19
70
+ Enabled: true
71
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
72
+ Enabled: true
73
+ Lint/DeprecatedConstants: # new in 1.8
74
+ Enabled: true
75
+ Lint/DuplicateBranch: # new in 1.3
76
+ Enabled: true
77
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
78
+ Enabled: true
79
+ Lint/EmptyBlock: # new in 1.1
80
+ Enabled: true
81
+ Lint/EmptyClass: # new in 1.3
82
+ Enabled: true
83
+ Lint/EmptyInPattern: # new in 1.16
84
+ Enabled: true
85
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
86
+ Enabled: true
87
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
88
+ Enabled: true
89
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
90
+ Enabled: true
91
+ Lint/NonAtomicFileOperation: # new in 1.31
92
+ Enabled: true
93
+ Lint/NumberedParameterAssignment: # new in 1.9
94
+ Enabled: true
95
+ Lint/OrAssignmentToConstant: # new in 1.9
96
+ Enabled: true
97
+ Lint/RedundantDirGlobSort: # new in 1.8
98
+ Enabled: true
99
+ Lint/RefinementImportMethods: # new in 1.27
100
+ Enabled: true
101
+ Lint/RequireRangeParentheses: # new in 1.32
102
+ Enabled: true
103
+ Lint/RequireRelativeSelfPath: # new in 1.22
104
+ Enabled: true
105
+ Lint/SymbolConversion: # new in 1.9
106
+ Enabled: true
107
+ Lint/ToEnumArguments: # new in 1.1
108
+ Enabled: true
109
+ Lint/TripleQuotes: # new in 1.9
110
+ Enabled: true
111
+ Lint/UnexpectedBlockArity: # new in 1.5
112
+ Enabled: true
113
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
114
+ Enabled: true
115
+ Lint/UselessRuby2Keywords: # new in 1.23
116
+ Enabled: true
117
+ Naming/BlockForwarding: # new in 1.24
118
+ Enabled: true
119
+ Security/CompoundHash: # new in 1.28
120
+ Enabled: true
121
+ Security/IoMethods: # new in 1.22
122
+ Enabled: true
123
+ Style/ArgumentsForwarding: # new in 1.1
124
+ Enabled: true
125
+ Style/CollectionCompact: # new in 1.2
126
+ Enabled: true
127
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
128
+ Enabled: true
129
+ Style/EmptyHeredoc: # new in 1.32
130
+ Enabled: true
131
+ Style/EndlessMethod: # new in 1.8
132
+ Enabled: true
133
+ Style/EnvHome: # new in 1.29
134
+ Enabled: true
135
+ Style/FetchEnvVar: # new in 1.28
136
+ Enabled: true
137
+ Style/FileRead: # new in 1.24
138
+ Enabled: true
139
+ Style/FileWrite: # new in 1.24
140
+ Enabled: true
141
+ Style/HashConversion: # new in 1.10
142
+ Enabled: true
143
+ Style/HashExcept: # new in 1.7
144
+ Enabled: true
145
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
146
+ Enabled: true
147
+ Style/InPatternThen: # new in 1.16
148
+ Enabled: true
149
+ Style/MagicCommentFormat: # new in 1.35
150
+ Enabled: true
151
+ Style/MapCompactWithConditionalBlock: # new in 1.30
152
+ Enabled: true
153
+ Style/MapToHash: # new in 1.24
154
+ Enabled: true
155
+ Style/MultilineInPatternThen: # new in 1.16
156
+ Enabled: true
157
+ Style/NegatedIfElseCondition: # new in 1.2
158
+ Enabled: true
159
+ Style/NestedFileDirname: # new in 1.26
160
+ Enabled: true
161
+ Style/NilLambda: # new in 1.3
162
+ Enabled: true
163
+ Style/NumberedParameters: # new in 1.22
164
+ Enabled: true
165
+ Style/NumberedParametersLimit: # new in 1.22
166
+ Enabled: true
167
+ Style/ObjectThen: # new in 1.28
168
+ Enabled: true
169
+ Style/OpenStructUse: # new in 1.23
170
+ Enabled: true
171
+ Style/QuotedSymbols: # new in 1.16
172
+ Enabled: true
173
+ Style/RedundantArgument: # new in 1.4
174
+ Enabled: true
175
+ Style/RedundantInitialize: # new in 1.27
176
+ Enabled: true
177
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
178
+ Enabled: true
179
+ Style/SelectByRegexp: # new in 1.22
180
+ Enabled: true
181
+ Style/StringChars: # new in 1.12
182
+ Enabled: true
183
+ Style/SwapValues: # new in 1.1
184
+ Enabled: true
185
+ RSpec/BeEq: # new in 2.9.0
186
+ Enabled: true
187
+ RSpec/BeNil: # new in 2.9.0
188
+ Enabled: true
189
+ RSpec/ChangeByZero: # new in 2.11
190
+ Enabled: true
191
+ RSpec/ClassCheck: # new in 2.13
192
+ Enabled: true
193
+ RSpec/ExcessiveDocstringSpacing: # new in 2.5
194
+ Enabled: true
195
+ RSpec/IdenticalEqualityAssertion: # new in 2.4
196
+ Enabled: true
197
+ RSpec/NoExpectationExample: # new in 2.13
198
+ Enabled: true
199
+ RSpec/SubjectDeclaration: # new in 2.5
200
+ Enabled: true
201
+ RSpec/VerifiedDoubleReference: # new in 2.10.0
202
+ Enabled: true
203
+ RSpec/Capybara/SpecificFinders: # new in 2.13
204
+ Enabled: true
205
+ RSpec/Capybara/SpecificMatcher: # new in 2.12
206
+ Enabled: true
207
+ RSpec/FactoryBot/SyntaxMethods: # new in 2.7
208
+ Enabled: true
209
+ RSpec/Rails/AvoidSetupHook: # new in 2.4
210
+ Enabled: true
211
+ RSpec/Rails/HaveHttpStatus: # new in 2.12
212
+ Enabled: true
213
+ Rails/ActionControllerFlashBeforeRender: # new in 2.16
214
+ Enabled: true
215
+ Rails/ActionControllerTestCase: # new in 2.14
216
+ Enabled: true
217
+ Rails/ActiveRecordCallbacksOrder: # new in 2.7
218
+ Enabled: true
219
+ Rails/ActiveSupportOnLoad: # new in 2.16
220
+ Enabled: true
221
+ Rails/AddColumnIndex: # new in 2.11
222
+ Enabled: true
223
+ Rails/AfterCommitOverride: # new in 2.8
224
+ Enabled: true
225
+ Rails/AttributeDefaultBlockValue: # new in 2.9
226
+ Enabled: true
227
+ Rails/CompactBlank: # new in 2.13
228
+ Enabled: true
229
+ Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14
230
+ Enabled: true
231
+ Rails/DotSeparatedKeys: # new in 2.15
232
+ Enabled: true
233
+ Rails/DuplicateAssociation: # new in 2.14
234
+ Enabled: true
235
+ Rails/DuplicateScope: # new in 2.14
236
+ Enabled: true
237
+ Rails/DurationArithmetic: # new in 2.13
238
+ Enabled: true
239
+ Rails/EagerEvaluationLogMessage: # new in 2.11
240
+ Enabled: true
241
+ Rails/ExpandedDateRange: # new in 2.11
242
+ Enabled: true
243
+ Rails/FindById: # new in 2.7
244
+ Enabled: true
245
+ Rails/FreezeTime: # new in 2.16
246
+ Enabled: true
247
+ Rails/I18nLazyLookup: # new in 2.14
248
+ Enabled: true
249
+ Rails/I18nLocaleAssignment: # new in 2.11
250
+ Enabled: true
251
+ Rails/I18nLocaleTexts: # new in 2.14
252
+ Enabled: true
253
+ Rails/Inquiry: # new in 2.7
254
+ Enabled: true
255
+ Rails/MailerName: # new in 2.7
256
+ Enabled: true
257
+ Rails/MatchRoute: # new in 2.7
258
+ Enabled: true
259
+ Rails/MigrationClassName: # new in 2.14
260
+ Enabled: true
261
+ Rails/NegateInclude: # new in 2.7
262
+ Enabled: true
263
+ Rails/Pluck: # new in 2.7
264
+ Enabled: true
265
+ Rails/PluckInWhere: # new in 2.7
266
+ Enabled: true
267
+ Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13
268
+ Enabled: true
269
+ Rails/RedundantTravelBack: # new in 2.12
270
+ Enabled: true
271
+ Rails/RenderInline: # new in 2.7
272
+ Enabled: true
273
+ Rails/RenderPlainText: # new in 2.7
274
+ Enabled: true
275
+ Rails/RootJoinChain: # new in 2.13
276
+ Enabled: true
277
+ Rails/RootPathnameMethods: # new in 2.16
278
+ Enabled: true
279
+ Rails/RootPublicPath: # new in 2.15
280
+ Enabled: true
281
+ Rails/ShortI18n: # new in 2.7
282
+ Enabled: true
283
+ Rails/SquishedSQLHeredocs: # new in 2.8
284
+ Enabled: true
285
+ Rails/StripHeredoc: # new in 2.15
286
+ Enabled: true
287
+ Rails/TimeZoneAssignment: # new in 2.10
288
+ Enabled: true
289
+ Rails/ToFormattedS: # new in 2.15
290
+ Enabled: true
291
+ Rails/ToSWithArgument: # new in 2.16
292
+ Enabled: true
293
+ Rails/TopLevelHashWithIndifferentAccess: # new in 2.16
294
+ Enabled: true
295
+ Rails/TransactionExitStatement: # new in 2.14
296
+ Enabled: true
297
+ Rails/UnusedIgnoredColumns: # new in 2.11
298
+ Enabled: true
299
+ Rails/WhereEquals: # new in 2.9
300
+ Enabled: true
301
+ Rails/WhereExists: # new in 2.7
302
+ Enabled: true
303
+ Rails/WhereMissing: # new in 2.16
304
+ Enabled: true
305
+ Rails/WhereNot: # new in 2.8
306
+ Enabled: true
307
+ Lint/DuplicateMagicComment: # new in 1.37
308
+ Enabled: true
309
+ Style/OperatorMethodCall: # new in 1.37
310
+ Enabled: true
311
+ Style/RedundantEach: # new in 1.38
312
+ Enabled: true
313
+ Style/RedundantStringEscape: # new in 1.37
314
+ Enabled: true
315
+ RSpec/SortMetadata: # new in 2.14
316
+ Enabled: true
317
+ RSpec/Capybara/NegationMatcher: # new in 2.14
318
+ Enabled: true
319
+ RSpec/Capybara/SpecificActions: # new in 2.14
320
+ Enabled: true
321
+ RSpec/FactoryBot/ConsistentParenthesesStyle: # new in 2.14
322
+ Enabled: false # https://github.com/rspec/rspec-rails/issues/2635
323
+ RSpec/Rails/InferredSpecType: # new in 2.14
324
+ Enabled: true
325
+ Rails/ActionOrder: # new in 2.17
326
+ Enabled: true
327
+ Rails/IgnoredColumnsAssignment: # new in 2.17
328
+ Enabled: true
329
+ Rails/WhereNotWithMultipleConditions: # new in 2.17
330
+ Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,139 +1,127 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2019-09-05 15:26:25 -0600 using RuboCop version 0.74.0.
3
+ # on 2022-10-05 03:27:31 UTC using RuboCop version 1.36.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 3
10
- Lint/AmbiguousBlockAssociation:
11
- Exclude:
12
- - 'lib/arclight/traject/ead2_config.rb'
9
+ # Offense count: 2
10
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
11
+ Metrics/AbcSize:
12
+ Max: 19
13
13
 
14
- # Offense count: 1
15
- # Configuration parameters: CheckForMethodsWithNoSideEffects.
16
- Lint/Void:
17
- Exclude:
18
- - 'lib/arclight/year_range.rb'
14
+ # Offense count: 2
15
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
16
+ Metrics/CyclomaticComplexity:
17
+ Max: 8
19
18
 
20
- # Offense count: 68
21
- # Configuration parameters: CountComments, ExcludedMethods.
22
- Metrics/BlockLength:
23
- Max: 278
24
- Exclude:
25
- - 'spec/features/collection_page_spec.rb'
19
+ # Offense count: 4
20
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
21
+ Metrics/MethodLength:
22
+ Max: 17
26
23
 
27
24
  # Offense count: 1
28
- # Configuration parameters: CountComments, ExcludedMethods.
29
- Metrics/MethodLength:
30
- Max: 11
31
- Exclude:
32
- - 'app/helpers/arclight_helper.rb'
25
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
26
+ Metrics/PerceivedComplexity:
27
+ Max: 9
33
28
 
34
29
  # Offense count: 1
35
- # Configuration parameters: Blacklist.
36
- # Blacklist: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
30
+ # Configuration parameters: ForbiddenDelimiters.
31
+ # ForbiddenDelimiters: (?-mix:(^|\s)(EO[A-Z]{1}|END)(\s|$))
37
32
  Naming/HeredocDelimiterNaming:
38
33
  Exclude:
39
34
  - 'spec/features/autocomplete_spec.rb'
40
35
 
41
- # Offense count: 91
42
- # Configuration parameters: Prefixes.
36
+ # Offense count: 80
37
+ # Configuration parameters: Prefixes, AllowedPatterns.
43
38
  # Prefixes: when, with, without
44
39
  RSpec/ContextWording:
45
40
  Enabled: false
46
41
 
47
42
  # Offense count: 1
48
- # Cop supports --auto-correct.
43
+ # This cop supports unsafe autocorrection (--autocorrect-all).
49
44
  # Configuration parameters: SkipBlocks, EnforcedStyle.
50
45
  # SupportedStyles: described_class, explicit
51
46
  RSpec/DescribedClass:
52
47
  Exclude:
53
48
  - 'spec/presenters/arclight/show_presenter_spec.rb'
54
49
 
55
- # Offense count: 61
56
- # Cop supports --auto-correct.
57
- RSpec/EmptyLineAfterExampleGroup:
58
- Enabled: false
59
-
60
- # Offense count: 12
61
- # Cop supports --auto-correct.
62
- RSpec/EmptyLineAfterHook:
63
- Exclude:
64
- - 'spec/features/collection_page_spec.rb'
65
- - 'spec/features/home_page_spec.rb'
66
- - 'spec/features/many_component_ead_spec.rb'
67
- - 'spec/features/search_results_spec.rb'
68
- - 'spec/helpers/arclight_helper_spec.rb'
69
- - 'spec/views/_collection_count.html.erb_spec.rb'
70
- - 'spec/views/repositories/index.html.erb_spec.rb'
71
-
72
- # Offense count: 49
73
- # Configuration parameters: Max.
50
+ # Offense count: 62
51
+ # Configuration parameters: CountAsOne.
74
52
  RSpec/ExampleLength:
75
- Enabled: false
53
+ Max: 49
76
54
 
77
55
  # Offense count: 2
78
56
  RSpec/ExpectInHook:
79
57
  Exclude:
80
58
  - 'spec/helpers/arclight_helper_spec.rb'
81
- - 'spec/presenters/arclight/index_presenter_spec.rb'
82
59
 
83
60
  # Offense count: 1
84
- # Configuration parameters: CustomTransform, IgnoreMethods.
61
+ # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
62
+ # Include: **/*_spec*rb*, **/spec/**/*
85
63
  RSpec/FilePath:
86
64
  Exclude:
87
65
  - 'spec/lib/arclight/viewers/oembed_spec.rb'
88
66
 
89
- # Offense count: 107
90
- # Configuration parameters: AggregateFailuresByDefault.
67
+ # Offense count: 132
91
68
  RSpec/MultipleExpectations:
92
- Max: 26
69
+ Max: 25
93
70
 
94
- # Offense count: 8
71
+ # Offense count: 30
72
+ # Configuration parameters: AllowSubject.
73
+ RSpec/MultipleMemoizedHelpers:
74
+ Max: 10
75
+
76
+ # Offense count: 19
77
+ # Configuration parameters: AllowedGroups.
95
78
  RSpec/NestedGroups:
96
- Max: 4
79
+ Max: 5
97
80
 
98
81
  # Offense count: 7
99
- # Cop supports --auto-correct.
100
- # Configuration parameters: Strict, EnforcedStyle.
82
+ # This cop supports unsafe autocorrection (--autocorrect-all).
83
+ # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
101
84
  # SupportedStyles: inflected, explicit
102
85
  RSpec/PredicateMatcher:
103
86
  Exclude:
104
87
  - 'spec/helpers/arclight_helper_spec.rb'
105
88
  - 'spec/lib/arclight/year_range_spec.rb'
106
89
 
107
- # Offense count: 1
108
- Security/Open:
90
+ # Offense count: 3
91
+ RSpec/StubbedMock:
109
92
  Exclude:
110
- - 'lib/tasks/index.rake'
93
+ - 'spec/helpers/arclight_helper_spec.rb'
94
+ - 'spec/lib/arclight/viewer_spec.rb'
111
95
 
112
- # Offense count: 1
113
- # Cop supports --auto-correct.
114
- # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners.
115
- # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
116
- # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
117
- # FunctionalMethods: let, let!, subject, watch
118
- # IgnoredMethods: lambda, proc, it
119
- Style/BlockDelimiters:
96
+ # Offense count: 2
97
+ # This cop supports unsafe autocorrection (--autocorrect-all).
98
+ # Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent.
99
+ Rails/Blank:
120
100
  Exclude:
121
- - 'lib/tasks/index.rake'
101
+ - 'lib/arclight/repository.rb'
122
102
 
123
103
  # Offense count: 1
124
- Style/CommentedKeyword:
104
+ # Configuration parameters: Include.
105
+ # Include: app/helpers/**/*.rb
106
+ Rails/HelperInstanceVariable:
125
107
  Exclude:
126
- - 'lib/arclight/year_range.rb'
108
+ - 'app/helpers/arclight_helper.rb'
127
109
 
128
110
  # Offense count: 1
129
- Style/Documentation:
111
+ Rails/OutputSafety:
112
+ Exclude:
113
+ - 'app/helpers/arclight/field_config_helpers.rb'
114
+
115
+ # Offense count: 7
116
+ # This cop supports unsafe autocorrection (--autocorrect-all).
117
+ # Configuration parameters: Include.
118
+ # Include: **/Rakefile, **/*.rake
119
+ Rails/RakeEnvironment:
130
120
  Exclude:
131
- - 'spec/**/*'
132
- - 'test/**/*'
133
- - 'lib/arclight.rb'
121
+ - 'lib/tasks/index.rake'
122
+ - 'tasks/arclight.rake'
134
123
 
135
124
  # Offense count: 1
136
- # Cop supports --auto-correct.
137
- Style/IfUnlessModifier:
125
+ Security/Open:
138
126
  Exclude:
139
- - 'app/models/concerns/arclight/search_behavior.rb'
127
+ - 'lib/tasks/index.rake'
data/CONTRIBUTING.md CHANGED
@@ -1,13 +1,13 @@
1
1
  ## Contributing
2
2
 
3
- ArcLight is a collaborative open source project where contributions are welcome. This contributing guide is borrowed in part from the [GeoBlacklight Contributing Guide](https://github.com/geoblacklight/geoblacklight/blob/master/CONTRIBUTING.md).
3
+ ArcLight is a collaborative open source project where contributions are welcome. This contributing guide is borrowed in part from the [GeoBlacklight Contributing Guide](https://github.com/geoblacklight/geoblacklight/blob/main/CONTRIBUTING.md).
4
4
 
5
5
  ### Reporting issues
6
6
 
7
- Did you find a bug in ArcLight or interested in a new feature? Please make sure to add an issue for it in the [issue tracker](https://github.com/sul-dlss/arclight/issues) as follows:
7
+ Did you find a bug in ArcLight or interested in a new feature? Please make sure to add an issue for it in the [issue tracker](https://github.com/projectblacklight/arclight/issues) as follows:
8
8
 
9
9
  - Make sure you have a [GitHub account](https://github.com/signup/free)
10
- - Submit a new [Github issue](https://github.com/sul-dlss/arclight/issues) by:
10
+ - Submit a new [Github issue](https://github.com/projectblacklight/arclight/issues) by:
11
11
  - Clearly describing the issue
12
12
  - Provide a descriptive summary
13
13
  - Explain the expected behavior
@@ -20,7 +20,7 @@ ArcLight also welcomes code and documentation contributions. We follow the [pull
20
20
 
21
21
  #### Pull request overview
22
22
 
23
- 1. Fork it ( http://github.com/sul-dlss/arclight/fork )
23
+ 1. Fork it ( http://github.com/projectblacklight/arclight/fork )
24
24
  2. Create your feature branch (`git checkout -b my-new-feature`)
25
25
  3. Commit your changes (`git commit -am 'Add some feature'`)
26
26
  4. Push to the branch (`git push origin my-new-feature`)
@@ -40,4 +40,4 @@ Here are some general rules to follow for merging pull requests.
40
40
  - If you are uncertain, bring other contributors into the conversation by creating a comment that includes their `@username`.
41
41
  - If you like the pull request, but want others to chime in, create a +1 comment and tag a user.
42
42
 
43
- If you wish to ask questions or participate further, see our general [README](https://github.com/sul-dlss/arclight/blob/master/README.md).
43
+ If you wish to ask questions or participate further, see our general [README](https://github.com/projectblacklight/arclight/blob/main/README.md).
data/Gemfile CHANGED
@@ -4,9 +4,10 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in arclight.gemspec
6
6
  gemspec
7
+
7
8
  # BEGIN ENGINE_CART BLOCK
8
- # engine_cart: 1.1.0
9
- # engine_cart stanza: 0.10.0
9
+ # engine_cart: 2.5.0
10
+ # engine_cart stanza: 2.5.0
10
11
  # the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
11
12
  file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
12
13
  if File.exist?(file)
@@ -26,15 +27,19 @@ else
26
27
  else
27
28
  gem 'rails', ENV['RAILS_VERSION']
28
29
  end
29
- end
30
30
 
31
- case ENV['RAILS_VERSION']
32
- when /^4.2/
33
- gem 'coffee-rails', '~> 4.1.0'
34
- gem 'responders', '~> 2.0'
35
- gem 'sass-rails', '>= 5.0'
36
- when /^4.[01]/
37
- gem 'sass-rails', '< 5.0'
31
+ case ENV['RAILS_VERSION']
32
+ when /^6.0/
33
+ gem 'sass-rails', '>= 6'
34
+ gem 'webpacker', '~> 4.0'
35
+ when /^5.[12]/
36
+ gem 'sass-rails', '~> 5.0'
37
+ gem 'sprockets', '~> 3.7'
38
+ gem 'thor', '~> 0.20'
39
+ end
38
40
  end
39
41
  end
40
42
  # END ENGINE_CART BLOCK
43
+
44
+ # Used by engine_cart if you need to change a specific version of a dependency
45
+ eval_gemfile File.expand_path('spec/test_app_templates/Gemfile.extra', File.dirname(__FILE__))