wazuh-ruby-client 0.2.4 → 0.2.5

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: 7ee6623bb491081899d0769df71e12fca755e9dc68bf86b6dfb1a36fc8e0a3ad
4
- data.tar.gz: c9536ba23160a14a47c8f41ba6846edde3b49dbf1c6d008d66be3c177dec1655
3
+ metadata.gz: 57ef8d1a92fc16dc1b46148569a6b6b4f3c9fe4ca1729ad705205efc5952f15c
4
+ data.tar.gz: 5303f74c914950dcf658b69922dfae54940456dee9f60c30441f1971a9b9e849
5
5
  SHA512:
6
- metadata.gz: 623e3f6a34bfc98fed98cf08f0c4ec2adfcf20d28bcab4b5d0b3a68d36219d75271ba44212428246b629fff74d284221e0322a49213cf52121f12f8733a2bd42
7
- data.tar.gz: 7527db0567ed152561ee7d372e95fec140998fab2e21c814c447e53f3bad0740b24193aaef950107189bb89420d11516e6fd2f76fc0a9bafea4708d0a122887b
6
+ metadata.gz: 7d81defd979d50b0d95d3654e95a61085a866018a513e0281e15036eb97bb8a1b30d42969db9d8f496329b6f7002aa21f3e6931b5c805adb8c4f7924113fcfa3
7
+ data.tar.gz: dafe1028ee3baf8ab58621abdbef71bd8793bd1fadc866021c0b6f729be5349e93d07b52f0b395e8f498bdf2e72a3310573376435a42cc658bb8da5950ae1c97
@@ -8,10 +8,10 @@ jobs:
8
8
  steps:
9
9
  - uses: actions/checkout@v1
10
10
 
11
- - name: Set up Ruby 2.6.5
11
+ - name: Set up Ruby 2.6
12
12
  uses: actions/setup-ruby@v1
13
13
  with:
14
- ruby-version: 2.6.5
14
+ ruby-version: 2.6
15
15
 
16
16
  - name: Install bundler2
17
17
  run: gem install bundler
data/.gitignore CHANGED
@@ -15,6 +15,8 @@ Gemfile.lock
15
15
  *.crt
16
16
  *.key
17
17
  *.ca
18
+ *.bak
18
19
  .env
19
20
  .bundle
20
21
  .DS_Store
22
+ log
data/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.5]
11
+
12
+ - Get all items with `offset_request`
13
+ - So far only 500 items(Wazuh API default) have been retrieved that contain a `totalItems` field such as `#all_agents` .
14
+ - For such an endpoint, implemented `offset_request` to fetch all items.
15
+ - This change does not change the type of the return value. However, it may take some time because it sends repeated requests to get all the items.
16
+
10
17
  ## [0.2.4] - 2020-03-31
11
18
 
12
19
  - `agents_by_group` also returns the `item` field.
@@ -1,3 +1,3 @@
1
1
  module WazuhRubyClient
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -23,8 +23,7 @@ module Wazuh
23
23
  # @return [Array] Returns Array containing agents
24
24
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-agents
25
25
  def all_agents(options = {})
26
- data = get '/agents', options
27
- data.items
26
+ offset_request('get', '/agents', options)
28
27
  end
29
28
 
30
29
  # Returns various information from an agent.
@@ -290,8 +289,7 @@ module Wazuh
290
289
  # @option options [String] q
291
290
  # @see https://documentation.wazuh.com/3.11/user-manual/api/reference.html#get-agents-in-a-group
292
291
  def agents_by_group(group_id, options = {})
293
- data = get "/agents/groups/#{group_id}", options
294
- data.items
292
+ offset_request('get', "/agents/groups/#{group_id}", options)
295
293
  end
296
294
 
297
295
  # Get agents without group
@@ -35,8 +35,7 @@ module Wazuh
35
35
  # Filters by final score.
36
36
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-cis-cat-results-from-an-agent
37
37
  def ciscat_result(agent_id, options = {})
38
- data = get "/ciscat/#{agent_id}/results", options
39
- data.items
38
+ offset_request("get", "/ciscat/#{agent_id}/results", options)
40
39
  end
41
40
  end
42
41
  end
@@ -116,8 +116,7 @@ module Wazuh
116
116
  # @option options [category] :category
117
117
  # Filters by category of log
118
118
  def cluster_logs_by_node(node_id, options)
119
- data = get "/cluster/#{node_id}/logs", options
120
- data.items
119
+ offset_request("get", "/cluster/#{node_id}/logs", options)
121
120
  end
122
121
 
123
122
  # Get summary of ossec.log from a specific node in cluster
@@ -142,8 +141,7 @@ module Wazuh
142
141
  # Get nodes info
143
142
  #
144
143
  def nodes(options = {})
145
- data = get '/cluster/nodes', options
146
- data.items
144
+ offset_request('get', '/cluster/nodes', options)
147
145
  end
148
146
 
149
147
  # Restart a specific node in cluster
@@ -23,8 +23,7 @@ module Wazuh
23
23
  # Allowed values: enabled, disabled, all
24
24
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-decoders
25
25
  def all_decoders(options = {})
26
- data = get '/decoders', options
27
- data.items
26
+ offset_request("get", "/decoders", options)
28
27
  end
29
28
 
30
29
  # Get all decoders files
@@ -50,8 +49,7 @@ module Wazuh
50
49
  # Name of the decoder file to download.
51
50
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-decoders-files
52
51
  def all_decoders_files(options = {})
53
- data = get '/decoders/files', options
54
- data.items
52
+ offset_request('get', '/decoders/files', options)
55
53
  end
56
54
 
57
55
  # Get all parent decoders
@@ -67,8 +65,7 @@ module Wazuh
67
65
  # Looks for elements with the specified string.
68
66
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-parent-decoders
69
67
  def all_parent_decoders(options = {})
70
- data = get '/decoders/parents', options
71
- data.items
68
+ offset_request('get', '/decoders/parents', options)
72
69
  end
73
70
 
74
71
  # Get decoders by name
@@ -86,8 +83,7 @@ module Wazuh
86
83
  # Looks for elements with the specified string.
87
84
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-decoders-by-name
88
85
  def decoders_by_name(decoder_name, options = {})
89
- data = get "/decoders/#{decoder_name}", options
90
- data.items
86
+ offset_request("get", "/decoders/#{decoder_name}", options)
91
87
  end
92
88
  end
93
89
  end
@@ -42,8 +42,7 @@ module Wazuh
42
42
  # Filters by board_serial.
43
43
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-hardware-info-of-all-agents
44
44
  def experimental_hardware(options = {})
45
- data = get '/experimental/syscollector/hardware', options
46
- data.items
45
+ offset_request('get', '/experimental/syscollector/hardware', options)
47
46
  end
48
47
 
49
48
  # Get network address info of all agents
@@ -72,8 +71,7 @@ module Wazuh
72
71
  # Filters by netmask.
73
72
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-address-info-of-all-agents
74
73
  def experimental_netaddr(options = {})
75
- data = get '/experimental/syscollector/netaddr', options
76
- data.items
74
+ offset_request('get', '/experimental/syscollector/netaddr', options)
77
75
  end
78
76
 
79
77
  # Get network interface info of all agents
@@ -109,8 +107,7 @@ module Wazuh
109
107
  # @option options [rx_dropped] :rx_dropped
110
108
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-interface-info-of-all-agents
111
109
  def experimental_netiface(options = {})
112
- data = get '/experimental/syscollector/netiface', options
113
- data.items
110
+ offset_request('get', '/experimental/syscollector/netiface', options)
114
111
  end
115
112
 
116
113
  # Get network protocol info of all agents
@@ -137,8 +134,7 @@ module Wazuh
137
134
  # Filters by dhcp.
138
135
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-protocol-info-of-all-agents
139
136
  def experimental_netproto(options = {})
140
- data = get '/experimental/syscollector/netproto', options
141
- data.items
137
+ offset_request('get', '/experimental/syscollector/netproto', options)
142
138
  end
143
139
 
144
140
  # Get os info of all agents
@@ -168,8 +164,7 @@ module Wazuh
168
164
  # Filters by release.
169
165
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-os-info-of-all-agents
170
166
  def experimental_os(options = {})
171
- data = get '/experimentalsyscollector/os', options
172
- data.items
167
+ offset_request('get', '/experimentalsyscollector/os', options)
173
168
  end
174
169
 
175
170
  # Get packages info of all agents
@@ -198,8 +193,7 @@ module Wazuh
198
193
  # Filters by format.
199
194
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-packages-info-of-all-agents
200
195
  def experimental_packages(options = {})
201
- data = get '/experimental/syscollector/packages', options
202
- data.items
196
+ offset_request('get', '/experimental/syscollector/packages', options)
203
197
  end
204
198
 
205
199
  # Get ports info of all agents
@@ -232,8 +226,7 @@ module Wazuh
232
226
  # Filters by state.
233
227
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-ports-info-of-all-agents
234
228
  def experimental_ports(options = {})
235
- data = get '/experimental/syscollector/ports', options
236
- data.items
229
+ offset_request('get', '/experimental/syscollector/ports', options)
237
230
  end
238
231
 
239
232
  # Get processes info of all agents
@@ -280,8 +273,7 @@ module Wazuh
280
273
  # Filters by process suser.
281
274
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-processes-info-of-all-agents
282
275
  def experimental_processes(options = {})
283
- data = get '/experimental/syscollector/processes', options
284
- data.items
276
+ offset_request('get', '/experimental/syscollector/processes', options)
285
277
  end
286
278
 
287
279
  # Get CIS-CAT results
@@ -309,8 +301,7 @@ module Wazuh
309
301
  # @option options [score] :score
310
302
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-cis-cat-results
311
303
  def experimental_ciscat_results(options = {})
312
- data = get '/experimental/ciscat/results', options
313
- data.items
304
+ offset_request('get', '/experimental/ciscat/results', options)
314
305
  end
315
306
  end
316
307
  end
@@ -18,8 +18,7 @@ module Wazuh
18
18
  # Filters by path.
19
19
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-lists
20
20
  def cdb_lists(options = {})
21
- data = get '/lists', options
22
- data.items
21
+ offset_request('get', '/lists', options)
23
22
  end
24
23
 
25
24
  # Get paths from all lists
@@ -35,8 +34,7 @@ module Wazuh
35
34
  # Looks for elements with the specified string.
36
35
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-paths-from-all-lists
37
36
  def cdb_files_path(options = {})
38
- data = get '/lists/files', options
39
- data.items
37
+ offset_request('get', '/lists/files', options)
40
38
  end
41
39
  end
42
40
  end
@@ -90,8 +90,7 @@ module Wazuh
90
90
  #
91
91
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-ossec-log
92
92
  def manager_log
93
- data = get '/manager/logs'
94
- data.items
93
+ offset_request('get', '/manager/logs')
95
94
  end
96
95
 
97
96
  # Get summary of ossec.log
@@ -39,8 +39,7 @@ module Wazuh
39
39
  # @option options [search] :search
40
40
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rootcheck-cis-requirements
41
41
  def rootcheck_cis_requirements(agent_id, options = {})
42
- data = get "/rootcheck/#{agent_id}/cis", options
43
- data.items
42
+ offset_request('get', "/rootcheck/#{agent_id}/cis", options)
44
43
  end
45
44
 
46
45
  # Get rootcheck database
@@ -56,8 +55,7 @@ module Wazuh
56
55
  # @option options [status] :status
57
56
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rootcheck-database
58
57
  def rootcheck_database(agent_id, options = {})
59
- data = get "/rootcheck/#{agent_id}", options
60
- data.items
58
+ offset_request('get', "/rootcheck/#{agent_id}", options)
61
59
  end
62
60
 
63
61
  # Get rootcheck pci requirements
@@ -70,8 +68,7 @@ module Wazuh
70
68
  # @option options [search] :search
71
69
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rootcheck-pci-requirements
72
70
  def rootcheck_pic_requirements(agent_id, options = {})
73
- data = get "/rootcheck/#{agent_id}/pci", options
74
- data.items
71
+ offset_request('get', "/rootcheck/#{agent_id}/pci", options)
75
72
  end
76
73
 
77
74
  # Run rootcheck scan in all agents
@@ -7,64 +7,56 @@ module Wazuh
7
7
  #
8
8
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-all-rules
9
9
  def all_rules(options = {})
10
- data = get '/rules', options
11
- data.items
10
+ offset_request('get', '/rules', options)
12
11
  end
13
12
 
14
13
  # Returns the files of all rules.
15
14
  #
16
15
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-files-of-rules
17
16
  def rule_files(options = {})
18
- data = get '/rules/files', options
19
- data.items
17
+ offset_request('get', '/rules/files', options)
20
18
  end
21
19
 
22
20
  # Returns the GDPR requirements of all rules.
23
21
  #
24
22
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-gdpr-requirements
25
23
  def gdpr_rules(options = {})
26
- data = get '/rules/gdpr', options
27
- data.items
24
+ offset_request('get', '/rules/gdpr', options)
28
25
  end
29
26
 
30
27
  # Returns the GPG13 requirements of all rules.
31
28
  #
32
29
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-gpg13-requirements
33
30
  def gpg13_rules(options = {})
34
- data = get '/rules/gpg13', options
35
- data.items
31
+ offset_request('get', '/rules/gpg13', options)
36
32
  end
37
33
 
38
34
  # Returns the groups of all rules.
39
35
  #
40
36
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-groups
41
37
  def rules_groups(options = {})
42
- data = get '/rules/groups', options
43
- data.items
38
+ offset_request('get', '/rules/groups', options)
44
39
  end
45
40
 
46
41
  # Returns the HIPAA requirements of all rules.
47
42
  #
48
43
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-hipaa-requirements
49
44
  def hipaa_rules(options = {})
50
- data = get '/rules/hipaa', options
51
- data.items
45
+ offset_request('get', '/rules/hipaa', options)
52
46
  end
53
47
 
54
48
  # Returns the NIST-800-53 requirements of all rules.
55
49
  #
56
50
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-nist-800-53-requirements
57
51
  def nist_800_53_rules(options = {})
58
- data = get '/rules/nist-800-53', options
59
- data.items
52
+ offset_request('get', '/rules/nist-800-53', options)
60
53
  end
61
54
 
62
55
  # Returns the PCI requirements of all rules
63
56
  #
64
57
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rule-pci-requirements
65
58
  def pic_rules(options = {})
66
- data = get '/rules/pci', options
67
- data.items
59
+ offset_request('get', '/rules/pci', options)
68
60
  end
69
61
 
70
62
  # Returns the rules with the specified id.
@@ -80,8 +72,7 @@ module Wazuh
80
72
  # Looks for elements with the specified string.
81
73
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-rules-by-id
82
74
  def rule_by_id(rule_id, options = {})
83
- data = get "/rules/#{rule_id}", options
84
- data.items
75
+ offset_request('get', "/rules/#{rule_id}", options)
85
76
  end
86
77
  end
87
78
  end
@@ -39,8 +39,7 @@ module Wazuh
39
39
  # Looks for elements with the specified string.
40
40
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-security-configuration-assessment-sca-checks-database
41
41
  def checks_sca_database(agent_id, policy_id, options = {})
42
- data = get "/sca/#{agent_id}/checks/#{policy_id}", options
43
- data.items
42
+ offset_request('get', "/sca/#{agent_id}/checks/#{policy_id}", options)
44
43
  end
45
44
 
46
45
  # Get security configuration assessment (SCA) database
@@ -66,8 +65,7 @@ module Wazuh
66
65
  # Query to filter results by. This is specially useful to filter by total checks passed, failed or total score (fields pass, fail, score).
67
66
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-security-configuration-assessment-sca-database
68
67
  def sca_database(agent_id, options = {})
69
- data = get "/sca/#{agent_id}", options
70
- data.items
68
+ offset_request('get', "/sca/#{agent_id}", options)
71
69
  end
72
70
  end
73
71
  end
@@ -33,8 +33,7 @@ module Wazuh
33
33
  # Returns the files with the specified hash (md5, sha1 or sha256).
34
34
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-syscheck-files
35
35
  def syscheck_files(agent_id, options = {})
36
- data = get "/syscheck/#{agent_id}", options
37
- data.items
36
+ offset_request('get', "/syscheck/#{agent_id}", options)
38
37
  end
39
38
 
40
39
  # Clears the syscheck database for the specified agent.
@@ -38,8 +38,7 @@ module Wazuh
38
38
  # Filters by netmask.
39
39
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-address-info-of-an-agent
40
40
  def netaddr(agent_id, options = {})
41
- data = get "/syscollector/#{agent_id}/netaddr", options
42
- data.items
41
+ offset_request('get', "/syscollector/#{agent_id}/netaddr", options)
43
42
  end
44
43
 
45
44
  # Returns the agent’s network interface info
@@ -75,8 +74,7 @@ module Wazuh
75
74
  # @option options [rx_dropped] :rx_dropped
76
75
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-interface-info-of-an-agent
77
76
  def netiface(agent_id, options = {})
78
- data = get "/syscollector/#{agent_id}/netiface", options
79
- data.items
77
+ offset_request('get', "/syscollector/#{agent_id}/netiface", options)
80
78
  end
81
79
 
82
80
  # Returns the agent’s network protocol info.
@@ -102,8 +100,7 @@ module Wazuh
102
100
  # Filters by dhcp.
103
101
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-network-protocol-info-of-an-agent
104
102
  def netproto(agent_id, options = {})
105
- data = get "/syscollector/#{agent_id}/netproto", options
106
- data.items
103
+ offset_request('get', "/syscollector/#{agent_id}/netproto", options)
107
104
  end
108
105
 
109
106
  # Returns the agent’s OS info.
@@ -141,8 +138,7 @@ module Wazuh
141
138
  # Filters by format.
142
139
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-packages-info
143
140
  def packages(agent_id, options = {})
144
- data = get "/syscollector/#{agent_id}/packages", options
145
- data.items
141
+ offset_request('get', "/syscollector/#{agent_id}/packages", options)
146
142
  end
147
143
 
148
144
  # Get ports info of an agent
@@ -175,8 +171,7 @@ module Wazuh
175
171
  # Filters by state.
176
172
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-ports-info-of-an-agent
177
173
  def ports(agent_id, options = {})
178
- data = get "/syscollector/#{agent_id}/ports", options
179
- data.items
174
+ offset_request('get', "/syscollector/#{agent_id}/ports", options)
180
175
  end
181
176
 
182
177
  # Get processes info
@@ -224,8 +219,7 @@ module Wazuh
224
219
  #
225
220
  # @see https://documentation.wazuh.com/3.10/user-manual/api/reference.html#get-processes-info
226
221
  def processes(agent_id, options = {})
227
- data = get "/syscollector/#{agent_id}/processes", options
228
- data.items
222
+ offset_request('get', "/syscollector/#{agent_id}/processes", options)
229
223
  end
230
224
  end
231
225
  end
@@ -18,6 +18,18 @@ module Wazuh
18
18
  request(:delete, path, options)
19
19
  end
20
20
 
21
+ def offset_request(method, path, options = {})
22
+ items = []
23
+ data = send(method, path, options)
24
+ 0.step(data.totalItems, 500) { |offset|
25
+ options[:offset] = offset
26
+ d = send(method, path, options)
27
+ items.concat(d.items)
28
+ }
29
+
30
+ items
31
+ end
32
+
21
33
  private
22
34
 
23
35
  def request(method, path, options)
data/lib/wazuh/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Wazuh
3
- VERSION = '0.2.4'
3
+ VERSION = '0.2.5'
4
4
  end
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.require_paths = ["lib"]
36
36
 
37
37
  spec.add_development_dependency "bundler", "~> 2.1.4"
38
- spec.add_development_dependency "rake", "~> 10.0"
38
+ spec.add_development_dependency "rake", ">= 12.3.3"
39
39
  spec.add_development_dependency "rspec", "~> 3.0"
40
40
  spec.add_development_dependency "vcr"
41
41
  spec.add_development_dependency "webmock"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wazuh-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - mrtc0
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2020-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement