hydra-role-management 1.0.3 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a18af0a3d576ae69f57684ad43d907d83415877d25654b11da6385370242f3c8
4
- data.tar.gz: 07fd2858acc275ad0b5e6fe9bdf49fbdf77ee07f74d739dc2e12a4f084d6918f
3
+ metadata.gz: 61cbc32dc3e32c66c6d8e68507337815184f76ee15ed4a6f47b003525d66c672
4
+ data.tar.gz: f67e29bc421c18f92e22b471134cd1fe741d6defcef2c3b61ff8cd163f57e2f1
5
5
  SHA512:
6
- metadata.gz: 54f3d82b070aa200abeb4b6b0feab03cc6f15b57d869c944ca99bbaf3dd569d8020e87665dd66cbe2feaab301ab1983107d93980a9cd6eec044f0d1cda3738a1
7
- data.tar.gz: 0d91a4d3a19f8cd7edaf5bfb515bd2c0d26dd9128fdd83c23af4524fee2e56bc88d781760bb60a8b467cd2597487064da967acb1f87cf8ed1584b1ce346fdb87
6
+ metadata.gz: f608323776d336776049d75ac017b0e9069e278a2791efdd38335d77348c638732ea9e1fccdea59ac519be8d8add265bf4e5e0616d05c296195b8c76bdc82936
7
+ data.tar.gz: 168efd3ca4c09ef0e06f175526ad24674c7ac0d10866024595a437a6e37a8555c6ae284223627e4ac4ae28a4d9ad858bb99fe6d987036538c7ed555d095a3687
data/.circleci/config.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  version: 2.1
3
3
  orbs:
4
- samvera: samvera/circleci-orb@0
4
+ samvera: samvera/circleci-orb@1.0
5
5
  jobs:
6
6
  test:
7
7
  parameters:
@@ -9,7 +9,7 @@ jobs:
9
9
  type: string
10
10
  bundler_version:
11
11
  type: string
12
- default: 1.17.3
12
+ default: 2.4.5
13
13
  rails_version:
14
14
  type: string
15
15
  executor:
@@ -20,18 +20,33 @@ jobs:
20
20
  NOKOGIRI_USE_SYSTEM_LIBRARIES: true
21
21
  ENGINE_CART_RAILS_OPTIONS: --skip-git --skip-bundle --skip-listen --skip-spring --skip-yarn --skip-keeps --skip-action-cable --skip-coffee --skip-puma --skip-test
22
22
  steps:
23
+ - run:
24
+ name: Update the apt package repository cache
25
+ command: |
26
+ sudo apt-get update
27
+ - run:
28
+ name: Install required apt packages
29
+ command: |
30
+ sudo apt-get install -y libsqlite3-dev
23
31
  - samvera/cached_checkout
24
- - samvera/bundle_for_gem:
32
+ - run:
33
+ name: Check for a branch named 'master'
34
+ command: |
35
+ git fetch --all --quiet --prune --prune-tags
36
+ if [[ -n "$(git branch --all --list master */master)" ]]; then
37
+ echo "A branch named 'master' was found. Please remove it."
38
+ echo "$(git branch --all --list master */master)"
39
+ fi
40
+ [[ -z "$(git branch --all --list master */master)" ]]
41
+ - samvera/bundle:
25
42
  ruby_version: << parameters.ruby_version >>
26
43
  bundler_version: << parameters.bundler_version >>
27
- project: hydra-role-management
28
44
  - samvera/rubocop
29
45
  - samvera/engine_cart_generate:
30
46
  cache_key: v1-internal-test-app-{{ checksum "hydra-role-management.gemspec" }}-{{ checksum "spec/test_app_templates/lib/generators/test_app_generator.rb" }}-{{ checksum "lib/generators/roles/roles_generator.rb" }}-<< parameters.rails_version >>-<< parameters.ruby_version >>
31
- - samvera/bundle_for_gem:
47
+ - samvera/bundle:
32
48
  ruby_version: << parameters.ruby_version >>
33
49
  bundler_version: << parameters.bundler_version >>
34
- project: hydra-role-management
35
50
  - samvera/parallel_rspec
36
51
  - persist_to_workspace:
37
52
  root: ~/
@@ -42,47 +57,152 @@ jobs:
42
57
  workflows:
43
58
  ci:
44
59
  jobs:
60
+ # Rails 7.0
45
61
  - test:
46
- name: ruby2-7_rails6-0
47
- ruby_version: 2.7.0
48
- rails_version: 6.0.2
62
+ name: "ruby3-2_rails7-0"
63
+ ruby_version: 3.2.0
64
+ rails_version: 7.0.4.1
49
65
  - test:
50
- name: ruby2-6_rails6-0
51
- ruby_version: 2.6.5
52
- rails_version: 6.0.2
66
+ name: "ruby3-1_rails7-0"
67
+ ruby_version: 3.1.3
68
+ rails_version: 7.0.4.1
53
69
  - test:
54
- name: ruby2-5_rails6-0
55
- ruby_version: 2.5.7
56
- rails_version: 6.0.2
70
+ name: "ruby3-0_rails7-0"
71
+ ruby_version: 3.0.5
72
+ rails_version: 7.0.4.1
73
+ # Rails 6.1
57
74
  - test:
58
- name: ruby2-7_rails5-2
59
- ruby_version: 2.7.0
60
- rails_version: 5.2.4
75
+ name: "ruby3-2_rails6-1"
76
+ ruby_version: 3.2.0
77
+ rails_version: 6.1.7.1
61
78
  - test:
62
- name: ruby2-6_rails5-2
63
- ruby_version: 2.6.5
64
- rails_version: 5.2.4
79
+ name: "ruby3-1_rails6-1"
80
+ ruby_version: 3.1.3
81
+ rails_version: 6.1.7.1
65
82
  - test:
66
- name: ruby2-5_rails5-2
67
- ruby_version: 2.5.7
68
- rails_version: 5.2.4
83
+ name: "ruby3-0_rails6-1"
84
+ ruby_version: 3.0.5
85
+ rails_version: 6.1.7.1
69
86
  - test:
70
- name: ruby2-4_rails5-2
71
- ruby_version: 2.4.9
72
- rails_version: 5.2.4
87
+ name: "ruby2-7_rails6-1"
88
+ ruby_version: 2.7.7
89
+ rails_version: 6.1.7.1
90
+ # Rails 6.0
73
91
  - test:
74
- name: ruby2-7_rails5-1
75
- ruby_version: 2.7.0
92
+ name: "ruby3-2_rails6-0"
93
+ ruby_version: 3.2.0
94
+ rails_version: 6.0.6.1
95
+ - test:
96
+ name: "ruby3-1_rails6-0"
97
+ ruby_version: 3.1.3
98
+ rails_version: 6.0.6.1
99
+ - test:
100
+ name: "ruby3-0_rails6-0"
101
+ ruby_version: 3.0.5
102
+ rails_version: 6.0.6.1
103
+ - test:
104
+ name: "ruby2-7_rails6-0"
105
+ ruby_version: 2.7.7
106
+ rails_version: 6.0.6.1
107
+ - test:
108
+ name: "ruby2-6_rails6-0"
109
+ ruby_version: 2.6.10
110
+ rails_version: 6.0.6.1
111
+ # Rails 5.2
112
+ - test:
113
+ name: "ruby2-7_rails5-2"
114
+ ruby_version: 2.7.7
115
+ rails_version: 5.2.8.1
116
+ - test:
117
+ name: "ruby2-6_rails5-2"
118
+ ruby_version: 2.6.10
119
+ rails_version: 5.2.8.1
120
+ # Rails 5.1
121
+ - test:
122
+ name: "ruby2-7_rails5-1"
123
+ ruby_version: 2.7.7
76
124
  rails_version: 5.1.7
77
125
  - test:
78
- name: ruby2-6_rails5-1
79
- ruby_version: 2.6.5
126
+ name: "ruby2-6_rails5-1"
127
+ ruby_version: 2.6.10
80
128
  rails_version: 5.1.7
129
+
130
+ nightly:
131
+ triggers:
132
+ - schedule:
133
+ cron: "0 0 * * *"
134
+ filters:
135
+ branches:
136
+ only:
137
+ - main
138
+
139
+ jobs:
140
+ # Rails 7.0
141
+ - test:
142
+ name: "ruby3-2_rails7-0"
143
+ ruby_version: 3.2.0
144
+ rails_version: 7.0.4.1
145
+ - test:
146
+ name: "ruby3-1_rails7-0"
147
+ ruby_version: 3.1.3
148
+ rails_version: 7.0.4.1
149
+ - test:
150
+ name: "ruby3-0_rails7-0"
151
+ ruby_version: 3.0.5
152
+ rails_version: 7.0.4.1
153
+ # Rails 6.1
154
+ - test:
155
+ name: "ruby3-2_rails6-1"
156
+ ruby_version: 3.2.0
157
+ rails_version: 6.1.7.1
158
+ - test:
159
+ name: "ruby3-1_rails6-1"
160
+ ruby_version: 3.1.3
161
+ rails_version: 6.1.7.1
162
+ - test:
163
+ name: "ruby3-0_rails6-1"
164
+ ruby_version: 3.0.5
165
+ rails_version: 6.1.7.1
166
+ - test:
167
+ name: "ruby2-7_rails6-1"
168
+ ruby_version: 2.7.7
169
+ rails_version: 6.1.7.1
170
+ # Rails 6.0
171
+ - test:
172
+ name: "ruby3-2_rails6-0"
173
+ ruby_version: 3.2.0
174
+ rails_version: 6.0.6.1
175
+ - test:
176
+ name: "ruby3-1_rails6-0"
177
+ ruby_version: 3.1.3
178
+ rails_version: 6.0.6.1
179
+ - test:
180
+ name: "ruby3-0_rails6-0"
181
+ ruby_version: 3.0.5
182
+ rails_version: 6.0.6.1
183
+ - test:
184
+ name: "ruby2-7_rails6-0"
185
+ ruby_version: 2.7.7
186
+ rails_version: 6.0.6.1
187
+ - test:
188
+ name: "ruby2-6_rails6-0"
189
+ ruby_version: 2.6.10
190
+ rails_version: 6.0.6.1
191
+ # Rails 5.2
192
+ - test:
193
+ name: "ruby2-7_rails5-2"
194
+ ruby_version: 2.7.7
195
+ rails_version: 5.2.8.1
196
+ - test:
197
+ name: "ruby2-6_rails5-2"
198
+ ruby_version: 2.6.10
199
+ rails_version: 5.2.8.1
200
+ # Rails 5.1
81
201
  - test:
82
- name: ruby2-5_rails5-1
83
- ruby_version: 2.5.7
202
+ name: "ruby2-7_rails5-1"
203
+ ruby_version: 2.7.7
84
204
  rails_version: 5.1.7
85
205
  - test:
86
- name: ruby2-4_rails5-1
87
- ruby_version: 2.4.9
206
+ name: "ruby2-6_rails5-1"
207
+ ruby_version: 2.6.10
88
208
  rails_version: 5.1.7
data/.rubocop.yml CHANGED
@@ -1,5 +1,8 @@
1
+ inherit_gem:
2
+ bixby: bixby_default.yml
3
+
1
4
  AllCops:
2
- TargetRubyVersion: 2.4
5
+ TargetRubyVersion: 2.6
3
6
 
4
7
  Bundler/DuplicatedGem:
5
8
  Exclude:
@@ -14,7 +17,7 @@ Metrics/BlockLength:
14
17
  - 'spec/routing/role_management_routes_spec.rb'
15
18
  - hydra-role-management.gemspec
16
19
 
17
- Metrics/LineLength:
20
+ Layout/LineLength:
18
21
  Exclude:
19
22
  - ''
20
23
  - 'lib/generators/roles/roles_generator.rb'
data/CONTRIBUTING.md CHANGED
@@ -22,6 +22,28 @@ https://wiki.duraspace.org/display/samvera/Samvera+Community+Intellectual+Proper
22
22
 
23
23
  You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
24
24
 
25
+ ## Language
26
+
27
+ The language we use matters. Today, tomorrow, and for years to come
28
+ people will read the code we write. They will judge us for our
29
+ design, logic, and the words we use to describe the system.
30
+
31
+ Our words should be accessible. Favor descriptive words that give
32
+ meaning while avoiding reinforcing systemic inequities. For example,
33
+ in the Samvera community, we should favor using allowed\_list instead
34
+ of whitelist, denied\_list instead of blacklist, or source/copy
35
+ instead of master/slave.
36
+
37
+ We're going to get it wrong, but this is a call to keep working to
38
+ make it right. View our code and the words we choose as a chance to
39
+ have a conversation. A chance to grow an understanding of the systems
40
+ we develop as well as the systems in which we live.
41
+
42
+ See [“Blacklists” and “whitelists”: a salutary warning concerning the
43
+ prevalence of racist language in discussions of predatory
44
+ publishing](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6148600/) for
45
+ further details.
46
+
25
47
  ## Contribution Tasks
26
48
 
27
49
  * Reporting Issues
@@ -34,7 +56,7 @@ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the pr
34
56
  ### Reporting Issues
35
57
 
36
58
  * Make sure you have a [GitHub account](https://github.com/signup/free)
37
- * Submit a [Github issue](./issues) by:
59
+ * Submit a [Github issue](https://github.com/samvera/{{library}}/issues/) by:
38
60
  * Clearly describing the issue
39
61
  * Provide a descriptive summary
40
62
  * Explain the expected behavior
data/README.md CHANGED
@@ -1,10 +1,15 @@
1
1
  # hydra-role-management
2
2
 
3
- Code: [![CircleCI](https://circleci.com/gh/samvera/hydra-role-management.svg?style=svg)](https://circleci.com/gh/samvera/hydra-role-management) [![Gem Version](https://badge.fury.io/rb/hydra-role-management.svg)](https://badge.fury.io/rb/hydra-role-management) [![Coverage Status](https://coveralls.io/repos/github/samvera/hydra-role-management/badge.svg?branch=master)](https://coveralls.io/github/samvera/hydra-role-management?branch=master)
3
+ Code:
4
+ [![Gem Version](https://badge.fury.io/rb/hydra-role-management.svg)](https://badge.fury.io/rb/hydra-role-management)
5
+ [![Build Status](https://circleci.com/gh/samvera/hydra-role-management.svg?style=svg)](https://circleci.com/gh/samvera/hydra-role-management)
6
+ [![Coverage Status](https://coveralls.io/repos/github/samvera/hydra-role-management/badge.svg?branch=main)](https://coveralls.io/github/samvera/hydra-role-management?branch=main)
4
7
 
5
- Docs: [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md) [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE.md)
8
+ Docs:
9
+ [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
10
+ [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE.md)
6
11
 
7
- Jump In: [![Slack Status](http://slack.samvera.org/badge.svg)](http://slack.samvera.org/)
12
+ Community Support: [![Samvera Community Slack](https://img.shields.io/badge/samvera-slack-blueviolet)](http://slack.samvera.org/)
8
13
 
9
14
  # What is hydra-role-management?
10
15
 
@@ -14,11 +19,13 @@ As of version 1.0, this gem only supports Rails 5.
14
19
 
15
20
  ## Product Owner & Maintenance
16
21
 
17
- **hydra-role-management** is a Core Component of the Samvera community. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).
22
+ `hydra-role-management` was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer has a dedicated Product Owner. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).
18
23
 
19
24
  ### Product Owner
20
25
 
21
- [jrgriffiniii](https://github.com/jrgriffiniii)
26
+ **Vacant**
27
+
28
+ _Until a Product Owner has been identified, we ask that you please direct all requests for support, bug reports, and general questions to the [`#dev` Channel on the Samvera Slack](https://samvera.slack.com/app_redirect?channel=dev)._
22
29
 
23
30
  # Help
24
31
 
@@ -63,7 +70,7 @@ The Samvera community is here to help. Please see our [support guide](./SUPPORT.
63
70
  github_changelog_generator --user samvera --project hydra-role-management --token YOUR_GITHUB_TOKEN_HERE
64
71
  ```
65
72
 
66
- 5. Commit these changes to the master branch
73
+ 5. Commit these changes to the main branch
67
74
 
68
75
  6. Run `rake release`
69
76
 
@@ -32,7 +32,7 @@ module Hydra
32
32
 
33
33
  def update
34
34
  @role = Role.find(params[:id])
35
- if @role.update_attributes(role_params)
35
+ if @role.update(role_params)
36
36
  redirect_to role_management.edit_role_path(@role),
37
37
  notice: 'Role was successfully updated.'
38
38
  else
data/app/models/role.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Class modeling Roles within the application
4
- class Role < ActiveRecord::Base
4
+ class Role < ApplicationRecord
5
5
  has_and_belongs_to_many :users
6
6
 
7
7
  validates :name,
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('../lib/hydra/role_management/version', __FILE__)
3
+ require File.expand_path('lib/hydra/role_management/version', __dir__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.authors = ['Justin Coyne']
@@ -16,17 +16,19 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ['lib']
17
17
  gem.version = Hydra::RoleManagement::VERSION
18
18
  gem.license = 'Apache 2.0'
19
+ gem.metadata = { "rubygems_mfa_required" => "true" }
19
20
 
20
21
  gem.add_dependency 'blacklight'
21
22
  gem.add_dependency 'bootstrap_form'
22
23
  gem.add_dependency 'bundler', '>= 1.5'
23
24
  gem.add_dependency 'cancancan'
24
25
  gem.add_dependency 'json', '>= 1.8'
25
- gem.add_development_dependency 'bixby', '~> 1.0.0'
26
+ gem.add_dependency 'psych', "~> 3.0"
27
+ gem.add_development_dependency 'bixby'
26
28
  gem.add_development_dependency 'engine_cart', '~> 2.1'
27
29
  gem.add_development_dependency 'github_changelog_generator'
28
30
  gem.add_development_dependency 'pry-byebug'
29
- gem.add_development_dependency 'rails-controller-testing', '~> 0'
31
+ gem.add_development_dependency 'rails-controller-testing', '~> 1'
30
32
  gem.add_development_dependency 'rake'
31
33
  gem.add_development_dependency 'rspec-its'
32
34
  gem.add_development_dependency 'rspec-rails'
@@ -1,4 +1,3 @@
1
-
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'rails/generators'
@@ -8,7 +7,7 @@ require 'rails/generators/migration'
8
7
  class RolesGenerator < Rails::Generators::Base
9
8
  include Rails::Generators::Migration
10
9
 
11
- source_root File.expand_path('../templates', __FILE__)
10
+ source_root File.expand_path('templates', __dir__)
12
11
 
13
12
  argument :model_name, type: :string, default: 'user'
14
13
  desc '
@@ -69,6 +68,7 @@ This generator makes the following changes to your application:
69
68
  # file will be added to config/initializers and the correct code will be added to the model at runtime.
70
69
  def rails3_attr_accessible
71
70
  return if ActionController.const_defined? :StrongParameters
71
+
72
72
  Rails.logger.info 'Role model will include attr_accessible :name because you are installing this gem in a Rails 3 app.'
73
73
  copy_file 'hydra_role_management_rails3.rb', 'config/initializers/hydra_role_management_rails3.rb'
74
74
  end
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Role.send :include, Hydra::RoleManagement::LegacyAttributeHandling
3
+ Role.include Hydra::RoleManagement::LegacyAttributeHandling
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Hydra
4
4
  module RoleManagement
5
- VERSION = '1.0.3'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
@@ -1,4 +1,3 @@
1
-
2
1
  # frozen_string_literal: true
3
2
 
4
3
  class SolrDocument
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-role-management
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-10 00:00:00.000000000 Z
11
+ date: 2023-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blacklight
@@ -81,19 +81,33 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.8'
83
83
  - !ruby/object:Gem::Dependency
84
- name: bixby
84
+ name: psych
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.0.0
90
- type: :development
89
+ version: '3.0'
90
+ type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.0.0
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bixby
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: engine_cart
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +156,14 @@ dependencies:
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0'
159
+ version: '1'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0'
166
+ version: '1'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: rake
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -260,8 +274,9 @@ files:
260
274
  homepage: https://github.com/samvera/hydra-role-management
261
275
  licenses:
262
276
  - Apache 2.0
263
- metadata: {}
264
- post_install_message:
277
+ metadata:
278
+ rubygems_mfa_required: 'true'
279
+ post_install_message:
265
280
  rdoc_options: []
266
281
  require_paths:
267
282
  - lib
@@ -276,8 +291,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
291
  - !ruby/object:Gem::Version
277
292
  version: '0'
278
293
  requirements: []
279
- rubygems_version: 3.1.2
280
- signing_key:
294
+ rubygems_version: 3.4.1
295
+ signing_key:
281
296
  specification_version: 4
282
297
  summary: Rails engine to do user roles in an RDBMS for hydra-head
283
298
  test_files: