qa 5.3.1 → 5.4.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
- SHA1:
3
- metadata.gz: c1c3fae004b371d868fd208111a1697188d93b9f
4
- data.tar.gz: b5982a647a5e865a5ae18230efe63a77eaa43989
2
+ SHA256:
3
+ metadata.gz: 2cb9f1edbd16f3dd603d89186b346a7f8260e0b8fb63115e3db9dafd4d675ef4
4
+ data.tar.gz: 3538535172b770704916c4bffaaf54b54d4ec03af7fb5e71beec643e5ae0785a
5
5
  SHA512:
6
- metadata.gz: 693682443e03c19274ac677e57553998048b720171a55bd8450e14942c10e7e121509bffcea2396a83114873c541ef8730bfca440f3adc2956f3d778476f037c
7
- data.tar.gz: 640a7304c27f7f965711bc1280d6041bb76bc830b7f9531747e8f3bd2cd8b1e4e59726300a853c302b38b7fe7709353fe1b0f885526c15e6fc775add6e2e36d1
6
+ metadata.gz: 4375a19041225c707ac60333e2b3b7ef634e6ffcedd5e0d1cde253d5f6eb78e713b2240995ff3de8918ea7c1d5d954659be210db93151059763cb5c3ee31cf6e
7
+ data.tar.gz: 2709d4b3c44bb5be35f22e8a98a7163e2a6d27dc1502ba87051e9f7b5c19039e1c9fc661bb9cf44765e440688141e34c99bc7e8d43297302d2f98a754aad8258
data/README.md CHANGED
@@ -1,77 +1,83 @@
1
1
  # Questioning Authority
2
2
 
3
- Code:
4
- [![Gem Version](https://badge.fury.io/rb/qa.png)](http://badge.fury.io/rb/qa)
5
- [![Build Status](https://circleci.com/gh/samvera/questioning_authority.svg?style=svg)](https://circleci.com/gh/samvera/questioning_authority)
6
- [![Coverage Status](https://coveralls.io/repos/github/samvera/questioning_authority/badge.svg?branch=master)](https://coveralls.io/github/samvera/questioning_authority?branch=master)
3
+ Code: [![Gem Version](https://badge.fury.io/rb/qa.png)](http://badge.fury.io/rb/qa) [![Build Status](https://circleci.com/gh/samvera/questioning_authority.svg?style=svg)](https://circleci.com/gh/samvera/questioning_authority) [![Coverage Status](https://coveralls.io/repos/github/samvera/questioning_authority/badge.svg?branch=master)](https://coveralls.io/github/samvera/questioning_authority?branch=master)
7
4
 
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)
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)
11
6
 
12
7
  Jump In: [![Slack Status](http://slack.samvera.org/badge.svg)](http://slack.samvera.org/)
13
8
 
14
9
  You should question your authorities.
15
10
 
16
- ----
11
+ --------------------------------------------------------------------------------
12
+
17
13
  ## Table of Contents
18
14
 
19
- * [What does this do?](#what-does-this-do)
20
- * [How does it work?](#how-does-it-work)
21
- * [Sub-Authorities](#sub-authorities)
22
- * [How do I use this?](#how-do-i-use-this)
23
- * [Basic QA Requests](#basic-qa-requests)
24
- * [Typical JSON Results](#typical-json-results)
25
- * [Authority Sources information](#authority-sources-information)
26
- * [Developer Notes](#developer-notes)
27
- * [Compatibility](#compatibility)
28
- * [Product Owner & Maintenance](#product-owner--maintenance)
29
- * [Product Owner](#product-owner)
30
- * [Help](#help)
31
- * [Acknowledgments](#acknowledgments)
32
-
33
- ## Not seeing documentation you used to find in the README?
34
-
35
- Much of the documentation has moved to the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) to allow for better organization. We hope that you will find this easier to use.
36
-
37
- ----
15
+ - [What does this do?](#what-does-this-do)
16
+ - [How does it work?](#how-does-it-work)
17
+
18
+ - [Sub-Authorities](#sub-authorities)
19
+
20
+ - [How do I use this?](#how-do-i-use-this)
21
+
22
+ - [Basic QA Requests](#basic-qa-requests)
23
+ - [Typical JSON Results](#typical-json-results)
24
+
25
+ - [Authority Sources information](#authority-sources-information)
26
+
27
+ - [Developer Notes](#developer-notes)
28
+
29
+ - [Compatibility](#compatibility)
30
+ - [Product Owner & Maintenance](#product-owner--maintenance)
31
+
32
+ - [Product Owner](#product-owner)
33
+
34
+ - [Help](#help)
35
+
36
+ - [Acknowledgments](#acknowledgments)
37
+
38
+ ## Not seeing documentation you used to find in the README?
39
+
40
+ Much of the documentation has moved to the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) to allow for better organization. We hope that you will find this easier to use.
41
+
42
+ --------------------------------------------------------------------------------
43
+
38
44
  ## What does this do?
39
45
 
40
- Provides a set of uniform RESTful routes to query any controlled vocabulary or set of authority terms.
41
- Results are returned in JSON and can be used within the context of a Rails application or any other
42
- Ruby environment. Primary examples would include providing auto-complete functionality via Javascript
43
- or populating a dropdown menu with a set of terms.
46
+ Provides a set of uniform RESTful routes to query any controlled vocabulary or set of authority terms. Results are returned in JSON and can be used within the context of a Rails application or any other Ruby environment. Primary examples would include providing auto-complete functionality via Javascript or populating a dropdown menu with a set of terms.
44
47
 
45
48
  ## How does it work?
46
49
 
47
- Authorities are defined as classes, each implementing a set of methods allowing a controller to return
48
- results from a given vocabulary in the JSON format. The controller does three things:
50
+ Authorities are defined as classes, each implementing a set of methods allowing a controller to return results from a given vocabulary in the JSON format. The controller does three things:
49
51
 
50
- * provide a list of all terms (if allowed by the class)
51
- * return a set of terms matching a given query
52
- * return the complete information for a specific term given its identifier
52
+ - provide a list of all terms (if allowed by the class)
53
+ - return a set of terms matching a given query
54
+ - return the complete information for a specific term given its identifier
53
55
 
54
- Depending on the kind of authority or its API, the controller may not do all of these things such
55
- as return a complete list of terms.
56
+ Depending on the kind of authority or its API, the controller may not do all of these things such as return a complete list of terms.
56
57
 
57
58
  ### Sub-Authorities
58
59
 
59
- Some authorities, such as Library of Congress, allow sub-authorities which is an additional parameter that
60
- further defines the kind of authority to use with the context of a larger one.
60
+ Some authorities, such as Library of Congress, allow sub-authorities which is an additional parameter that further defines the kind of authority to use with the context of a larger one.
61
61
 
62
62
  ## How do I use this?
63
63
 
64
64
  Add the gem to your Gemfile
65
65
 
66
- gem 'qa'
66
+ ```
67
+ gem 'qa'
68
+ ```
67
69
 
68
70
  Run bundler
69
71
 
70
- bundle install
72
+ ```
73
+ bundle install
74
+ ```
71
75
 
72
76
  Install the gem to your application
73
77
 
74
- rails generate qa:install
78
+ ```
79
+ rails generate qa:install
80
+ ```
75
81
 
76
82
  This will copy over some additional config files and add the engine's routes to your `config/route.rb`.
77
83
 
@@ -79,84 +85,104 @@ Start questioning your authorities!
79
85
 
80
86
  ### Basic QA Requests
81
87
 
82
- These show the basic routing patterns for connecting to authorities. See the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) documentation for detailed documentation and examples for each authority and local authorities.
88
+ These show the basic routing patterns for connecting to authorities. See the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) documentation for detailed documentation and examples for each authority and local authorities.
83
89
 
84
90
  Return a complete list of terms:
85
91
 
86
- /qa/terms/:vocab
87
- /qa/terms/:vocab/:subauthority
92
+ ```
93
+ /qa/terms/:vocab
94
+ /qa/terms/:vocab/:subauthority
95
+ ```
88
96
 
89
97
  Return a set of terms matching a given query
90
98
 
91
- /qa/search/:vocab?q=search_term
92
- /qa/search/:vocab/:subauthority?q=search_term
99
+ ```
100
+ /qa/search/:vocab?q=search_term
101
+ /qa/search/:vocab/:subauthority?q=search_term
102
+ ```
93
103
 
94
104
  Return the complete information for a specific term given its identifier
95
105
 
96
- /qa/show/:vocab/:id
97
- /qa/show/:vocab/:subauthority/:id
98
-
99
-
106
+ ```
107
+ /qa/show/:vocab/:id
108
+ /qa/show/:vocab/:subauthority/:id
109
+ ```
100
110
 
101
111
  ### Typical JSON Results
102
112
 
103
113
  Results are returned in JSON in this format:
104
114
 
105
- [
106
- {"id" : "subject_id_1", "label" : "First labels"},
107
- {"id" : "subject_id_2", "label" : "Printing labels"},
108
- {"id" : "", "label" : "This term has no id number"},
109
- {"id" : "", "label" : "Neither does this"}
110
- ]
111
-
115
+ ```
116
+ [
117
+ {"id" : "subject_id_1", "label" : "First labels"},
118
+ {"id" : "subject_id_2", "label" : "Printing labels"},
119
+ {"id" : "", "label" : "This term has no id number"},
120
+ {"id" : "", "label" : "Neither does this"}
121
+ ]
122
+ ```
112
123
 
113
124
  # Authority Sources information
114
125
 
115
126
  See the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) for documentation on how to connect to the supported authorities, documentation on how to create new authorities, and other useful tips.
116
127
 
117
-
118
128
  # Developer Notes
119
129
 
120
130
  [How to Contribute](./CONTRIBUTING.md)
121
131
 
122
132
  To develop this gem, clone the repository, then run:
123
133
 
124
- bundle install
125
- rake ci
134
+ ```
135
+ bundle install
136
+ rake ci
137
+ ```
126
138
 
127
- This will install the gems, create a dummy application under spec/internal and run the tests. After you've made changes,
128
- make sure you've included tests and run the test suite with a new sample application:
139
+ This will install the gems, create a dummy application under spec/internal and run the tests. After you've made changes, make sure you've included tests and run the test suite with a new sample application:
129
140
 
130
- rake engine_cart:clean
131
- rake ci
141
+ ```
142
+ rake engine_cart:clean
143
+ rake ci
144
+ ```
132
145
 
133
146
  Commit your features into a new branch and submit a pull request.
134
147
 
135
148
  ## Compatibility
136
149
 
137
- * Ruby 2.5 or the latest 2.4 version is recommended. Later versions may also work.
138
- * Rails 5 is required. We recommend the latest Rails 5.2 release.
150
+ - Ruby 2.5 or the latest 2.4 version is recommended. Later versions may also work.
151
+ - Rails 5 is required. We recommend the latest Rails 5.2 release.
139
152
 
140
153
  ## Product Owner & Maintenance
141
154
 
142
- Questioning Authority is a Core Component of the Samvera community. The documentation for
143
- what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).
155
+ Questioning Authority 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).
144
156
 
145
157
  ### Product Owner
146
158
 
147
159
  [elrayle](https://github.com/elrayle)
148
160
 
161
+ ## Releasing
162
+
163
+ 1. `bundle install`
164
+ 2. Increase the version number in `lib/qa/version.rb`
165
+ 3. Increase the same version number in `.github_changelog_generator`
166
+ 4. Update `CHANGELOG.md` by running this command:
167
+
168
+ ```
169
+ github_changelog_generator --user samvera --project questioning_authority --token YOUR_GITHUB_TOKEN_HERE
170
+ ```
171
+
172
+ 5. Commit these changes to the master branch
173
+
174
+ 6. Run `rake release`
175
+
149
176
  # Help
150
177
 
151
178
  The Samvera community is here to help. Please see our [support guide](./SUPPORT.md).
152
179
 
153
180
  # Acknowledgments
154
181
 
155
- This software has been developed by and is brought to you by the Samvera community. Learn more at the
156
- [Samvera website](http://samvera.org/).
182
+ This software has been developed by and is brought to you by the Samvera community. Learn more at the [Samvera website](http://samvera.org/).
157
183
 
158
184
  ![Samvera Logo](https://wiki.duraspace.org/download/thumbnails/87459292/samvera-fall-font2-200w.png?version=1&modificationDate=1498550535816&api=v2)
159
185
 
160
- ### Special thanks to...
186
+ ## Special thanks to...
161
187
 
162
188
  [Jeremy Friesen](https://github.com/jeremyf) who gave us the name for our gem.
@@ -2,7 +2,33 @@ module Qa::Authorities
2
2
  class Geonames < Base
3
3
  include WebServiceBase
4
4
 
5
- class_attribute :username, :label
5
+ class_attribute :username, :label, :query_url_host, :find_url_host
6
+
7
+ # You may need to change your query_url_host in your implementation. To do
8
+ # so, in the installed application's config/initializers/qa.rb add the
9
+ # following:
10
+ #
11
+ # @example
12
+ # Qa::Authorities::Geonames.query_url_host = "http://ws.geonames.net"
13
+ #
14
+ # @note This is not exposed as part of the configuration block, but is
15
+ # something you can add after the configuration block.
16
+ # @todo Expose this magic value as a configuration option; Which likely
17
+ # requires consideration about how to do this for the general case
18
+ self.query_url_host = "http://api.geonames.org"
19
+
20
+ # You may need to change your query_url_host in your implementation. To do
21
+ # so, in the installed application's config/initializers/qa.rb add the
22
+ # following:
23
+ #
24
+ # @example
25
+ # Qa::Authorities::Geonames.find_url_host = "http://ws.geonames.net"
26
+ #
27
+ # @note This is not exposed as part of the configuration block, but is
28
+ # something you can add after the configuration block.
29
+ # @todo Expose this magic value as a configuration option; Which likely
30
+ # requires consideration about how to do this for the general case
31
+ self.find_url_host = "http://www.geonames.org"
6
32
 
7
33
  self.label = lambda do |item|
8
34
  [item['name'], item['adminName1'], item['countryName']].compact.join(', ')
@@ -18,7 +44,7 @@ module Qa::Authorities
18
44
 
19
45
  def build_query_url(q)
20
46
  query = ERB::Util.url_encode(untaint(q))
21
- "http://api.geonames.org/searchJSON?q=#{query}&username=#{username}&maxRows=10"
47
+ File.join(query_url_host, "searchJSON?q=#{query}&username=#{username}&maxRows=10")
22
48
  end
23
49
 
24
50
  def untaint(q)
@@ -30,7 +56,7 @@ module Qa::Authorities
30
56
  end
31
57
 
32
58
  def find_url(id)
33
- "http://www.geonames.org/getJSON?geonameId=#{id}&username=#{username}"
59
+ File.join(find_url_host, "getJSON?geonameId=#{id}&username=#{username}")
34
60
  end
35
61
 
36
62
  private
@@ -39,7 +65,7 @@ module Qa::Authorities
39
65
  def parse_authority_response(response)
40
66
  response['geonames'].map do |result|
41
67
  # Note: the trailing slash is meaningful.
42
- { 'id' => "http://sws.geonames.org/#{result['geonameId']}/",
68
+ { 'id' => "https://sws.geonames.org/#{result['geonameId']}/",
43
69
  'label' => label.call(result) }
44
70
  end
45
71
  end
@@ -112,8 +112,8 @@ module Qa::Authorities
112
112
  predicate_map = preds_for_term
113
113
  ldpath_map = ldpaths_for_term
114
114
 
115
- raise Qa::InvalidConfiguration, "do not specify results using both predicates and ldpath in term configuration for linked data authority #{authority_name} (ldpath is preferred)" if predicate_map.present? && ldpath_map.present? # rubocop:disable Metrics/LineLength
116
- raise Qa::InvalidConfiguration, "must specify label_ldpath or label_predicate in term configuration for linked data authority #{authority_name} (label_ldpath is preferred)" unless ldpath_map.key?(:label) || predicate_map.key?(:label) # rubocop:disable Metrics/LineLength
115
+ raise Qa::InvalidConfiguration, "do not specify results using both predicates and ldpath in term configuration for linked data authority #{authority_name} (ldpath is preferred)" if predicate_map.present? && ldpath_map.present? # rubocop:disable Layout/LineLength
116
+ raise Qa::InvalidConfiguration, "must specify label_ldpath or label_predicate in term configuration for linked data authority #{authority_name} (label_ldpath is preferred)" unless ldpath_map.key?(:label) || predicate_map.key?(:label) # rubocop:disable Layout/LineLength
117
117
 
118
118
  if predicate_map.present?
119
119
  Qa.deprecation_warning(
@@ -74,8 +74,8 @@ module Qa::Authorities
74
74
  predicate_map = preds_for_search
75
75
  ldpath_map = ldpaths_for_search
76
76
 
77
- raise Qa::InvalidConfiguration, "do not specify results using both predicates and ldpath in search configuration for linked data authority #{authority_name} (ldpath is preferred)" if predicate_map.present? && ldpath_map.present? # rubocop:disable Metrics/LineLength
78
- raise Qa::InvalidConfiguration, "must specify label_ldpath or label_predicate in search configuration for linked data authority #{authority_name} (label_ldpath is preferred)" unless ldpath_map.key?(:label) || predicate_map.key?(:label) # rubocop:disable Metrics/LineLength
77
+ raise Qa::InvalidConfiguration, "do not specify results using both predicates and ldpath in search configuration for linked data authority #{authority_name} (ldpath is preferred)" if predicate_map.present? && ldpath_map.present? # rubocop:disable Layout/LineLength
78
+ raise Qa::InvalidConfiguration, "must specify label_ldpath or label_predicate in search configuration for linked data authority #{authority_name} (label_ldpath is preferred)" unless ldpath_map.key?(:label) || predicate_map.key?(:label) # rubocop:disable Layout/LineLength
79
79
 
80
80
  if predicate_map.present?
81
81
  Qa.deprecation_warning(
@@ -1,3 +1,3 @@
1
1
  module Qa
2
- VERSION = "5.3.1".freeze
2
+ VERSION = "5.4.0".freeze
3
3
  end
@@ -7,6 +7,34 @@ describe Qa::Authorities::Geonames do
7
7
 
8
8
  let(:authority) { described_class.new }
9
9
 
10
+ describe ".query_url_host" do
11
+ subject { described_class.query_url_host }
12
+ it { is_expected.to eq "http://api.geonames.org" }
13
+ it "can be overridden" do
14
+ begin
15
+ before_change = described_class.query_url_host
16
+ described_class.query_url_host = "http://myhost.com"
17
+ expect(described_class.query_url_host).to eq("http://myhost.com")
18
+ ensure
19
+ described_class.query_url_host = before_change
20
+ end
21
+ end
22
+ end
23
+
24
+ describe ".find_url_host" do
25
+ subject { described_class.find_url_host }
26
+ it { is_expected.to eq "http://www.geonames.org" }
27
+ it "can be overridden" do
28
+ begin
29
+ before_change = described_class.find_url_host
30
+ described_class.find_url_host = "http://myhost.com"
31
+ expect(described_class.find_url_host).to eq("http://myhost.com")
32
+ ensure
33
+ described_class.find_url_host = before_change
34
+ end
35
+ end
36
+ end
37
+
10
38
  describe "#build_query_url" do
11
39
  subject { authority.build_query_url("foo") }
12
40
  it { is_expected.to eq 'http://api.geonames.org/searchJSON?q=foo&username=dummy&maxRows=10' }
@@ -28,9 +56,9 @@ describe Qa::Authorities::Geonames do
28
56
 
29
57
  context "with default label" do
30
58
  it "has id and label keys" do
31
- expect(subject.first).to eq("id" => 'http://sws.geonames.org/2088122/',
59
+ expect(subject.first).to eq("id" => 'https://sws.geonames.org/2088122/',
32
60
  "label" => "Port Moresby, National Capital, Papua New Guinea")
33
- expect(subject.last).to eq("id" => 'http://sws.geonames.org/377039/',
61
+ expect(subject.last).to eq("id" => 'https://sws.geonames.org/377039/',
34
62
  "label" => "Port Sudan, Red Sea, Sudan")
35
63
  expect(subject.size).to eq(10)
36
64
  end
@@ -77,7 +77,7 @@ describe Qa::Authorities::Getty::AAT do
77
77
  subject { authority.request_options }
78
78
  it { is_expected.to eq(accept: "application/sparql-results+json") }
79
79
  end
80
- # rubocop:disable Metrics/LineLength
80
+ # rubocop:disable Layout/LineLength
81
81
  describe "#sparql" do
82
82
  context "using a single subject term" do
83
83
  subject { authority.sparql('search_term') }
@@ -92,5 +92,5 @@ describe Qa::Authorities::Getty::AAT do
92
92
  }
93
93
  end
94
94
  end
95
- # rubocop:enable Metrics/LineLength
95
+ # rubocop:enable Layout/LineLength
96
96
  end
@@ -77,7 +77,7 @@ describe Qa::Authorities::Getty::TGN do
77
77
  subject { authority.request_options }
78
78
  it { is_expected.to eq(accept: "application/sparql-results+json") }
79
79
  end
80
- # rubocop:disable Metrics/LineLength
80
+ # rubocop:disable Layout/LineLength
81
81
  describe "#sparql" do
82
82
  context "using a single subject term" do
83
83
  subject { authority.sparql('search_term') }
@@ -92,5 +92,5 @@ describe Qa::Authorities::Getty::TGN do
92
92
  }
93
93
  end
94
94
  end
95
- # rubocop:enable Metrics/LineLength
95
+ # rubocop:enable Layout/LineLength
96
96
  end
@@ -47,7 +47,7 @@ EOS
47
47
  expect(records[1]).to eq({})
48
48
  end
49
49
 
50
- # rubocop:disable Metrics/LineLength
50
+ # rubocop:disable Layout/LineLength
51
51
  it 'parses a sample mesh file' do
52
52
  mesh = described_class.new(webmock_fixture('mesh.txt'))
53
53
  records = mesh.all_records
@@ -117,5 +117,5 @@ EOS
117
117
  "DX" => ["19840101"],
118
118
  "UI" => ["D000001"])
119
119
  end
120
- # rubocop:enable Metrics/LineLength
120
+ # rubocop:enable Layout/LineLength
121
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.1
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Anderson
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2019-12-17 00:00:00.000000000 Z
19
+ date: 2020-06-11 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: activerecord-import
@@ -142,14 +142,40 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.0.0
145
+ version: 3.0.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.0.0
152
+ version: 3.0.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "!="
158
+ - !ruby/object:Gem::Version
159
+ version: 5.2.0
160
+ - - "!="
161
+ - !ruby/object:Gem::Version
162
+ version: 5.2.1
163
+ - - "!="
164
+ - !ruby/object:Gem::Version
165
+ version: 5.2.2
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "!="
171
+ - !ruby/object:Gem::Version
172
+ version: 5.2.0
173
+ - - "!="
174
+ - !ruby/object:Gem::Version
175
+ version: 5.2.1
176
+ - - "!="
177
+ - !ruby/object:Gem::Version
178
+ version: 5.2.2
153
179
  - !ruby/object:Gem::Dependency
154
180
  name: byebug
155
181
  requirement: !ruby/object:Gem::Requirement
@@ -606,8 +632,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
606
632
  - !ruby/object:Gem::Version
607
633
  version: '0'
608
634
  requirements: []
609
- rubyforge_project:
610
- rubygems_version: 2.6.14
635
+ rubygems_version: 3.1.4
611
636
  signing_key:
612
637
  specification_version: 4
613
638
  summary: You should question your authorities.