puppet_forge 2.3.0 → 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-rspec.yml +30 -0
- data/CHANGELOG.md +6 -0
- data/CODEOWNERS +1 -0
- data/lib/puppet_forge/version.rb +1 -1
- data/puppet_forge.gemspec +1 -2
- metadata +13 -28
- data/.travis.yml +0 -22
- data/MAINTAINERS +0 -13
- data/spec/integration/forge/v3/module_spec.rb +0 -119
- data/spec/integration/forge/v3/release_spec.rb +0 -75
- data/spec/integration/forge/v3/user_spec.rb +0 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7979d3eea2d729bf36dd4ee5ad190dda3d9cbecc3064c6a03a2b58353cf5cc61
|
4
|
+
data.tar.gz: 28b03d724725713058b07263ff2ae1f0fade2f5845db7ccf288dcf781a161d6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d5e0f8b06881a161119229b80bc7b105ca856e6267abb504bb3a4882e566c851c123e2eed9ecbc8a51787b2de834450e2dffa8d211a4c26332dc5e30bb1e8dc
|
7
|
+
data.tar.gz: 0b285df0b6a223d35a6a89f4a0dbb41796c6aacb92437a321af0f52cba39c964d1d7a2ae232ec0f6bc285742029e97e22b7f7c3192bb879eb0c7323b41f31855
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: ruby-rspec
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- master
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
name: Test with Ruby ${{ matrix.ruby_version }}
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
strategy:
|
16
|
+
matrix:
|
17
|
+
ruby_version: ['2.6.x', '2.5.x', '2.4.x', '2.3.x']
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v1
|
21
|
+
- name: Set up Ruby ${{ matrix.ruby_version }}
|
22
|
+
uses: actions/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby_version }}
|
25
|
+
|
26
|
+
- name: Build and test with Rspec
|
27
|
+
run: |
|
28
|
+
gem install bundler
|
29
|
+
bundle install --jobs 4 --retry 3
|
30
|
+
bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
Starting with v2.0.0, all notable changes to this project will be documented in this file.
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## v2.3.1 - 2019-11-15
|
7
|
+
|
8
|
+
### Fixed
|
9
|
+
|
10
|
+
* Fixed an issue where proxy configurations were being ignored by expanding the range of acceptable versions of the `faraday` gem dependency and specifically excluding the version that was ignoring proxy configuration options.
|
11
|
+
|
6
12
|
## v2.3.0 - 2019-07-09
|
7
13
|
|
8
14
|
### Changed
|
data/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @puppetlabs/forge-team
|
data/lib/puppet_forge/version.rb
CHANGED
data/puppet_forge.gemspec
CHANGED
@@ -20,13 +20,12 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.required_ruby_version = '>= 1.9.3'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "faraday", [">= 0.9.0", "< 0.
|
23
|
+
spec.add_runtime_dependency "faraday", [">= 0.9.0", "< 0.15.0", "!= 0.13.1"]
|
24
24
|
spec.add_runtime_dependency "faraday_middleware", [">= 0.9.0", "< 0.13.0"]
|
25
25
|
spec.add_dependency 'semantic_puppet', '~> 1.0'
|
26
26
|
spec.add_dependency 'minitar'
|
27
27
|
spec.add_dependency 'gettext-setup', '~> 0.11'
|
28
28
|
|
29
|
-
spec.add_development_dependency "bundler", "~> 1.6"
|
30
29
|
spec.add_development_dependency "rake"
|
31
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
32
31
|
spec.add_development_dependency "simplecov"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_forge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -17,9 +17,12 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.9.0
|
20
|
+
- - "!="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.13.1
|
20
23
|
- - "<"
|
21
24
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
25
|
+
version: 0.15.0
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +30,12 @@ dependencies:
|
|
27
30
|
- - ">="
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: 0.9.0
|
33
|
+
- - "!="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.13.1
|
30
36
|
- - "<"
|
31
37
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
38
|
+
version: 0.15.0
|
33
39
|
- !ruby/object:Gem::Dependency
|
34
40
|
name: faraday_middleware
|
35
41
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,20 +98,6 @@ dependencies:
|
|
92
98
|
- - "~>"
|
93
99
|
- !ruby/object:Gem::Version
|
94
100
|
version: '0.11'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: bundler
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '1.6'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '1.6'
|
109
101
|
- !ruby/object:Gem::Dependency
|
110
102
|
name: rake
|
111
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,12 +204,12 @@ executables: []
|
|
212
204
|
extensions: []
|
213
205
|
extra_rdoc_files: []
|
214
206
|
files:
|
207
|
+
- ".github/workflows/ruby-rspec.yml"
|
215
208
|
- ".gitignore"
|
216
|
-
- ".travis.yml"
|
217
209
|
- CHANGELOG.md
|
210
|
+
- CODEOWNERS
|
218
211
|
- Gemfile
|
219
212
|
- LICENSE.txt
|
220
|
-
- MAINTAINERS
|
221
213
|
- README.md
|
222
214
|
- Rakefile
|
223
215
|
- lib/puppet_forge.rb
|
@@ -271,9 +263,6 @@ files:
|
|
271
263
|
- spec/fixtures/v3/releases__module=puppetlabs-apache.json
|
272
264
|
- spec/fixtures/v3/users/puppetlabs.headers
|
273
265
|
- spec/fixtures/v3/users/puppetlabs.json
|
274
|
-
- spec/integration/forge/v3/module_spec.rb
|
275
|
-
- spec/integration/forge/v3/release_spec.rb
|
276
|
-
- spec/integration/forge/v3/user_spec.rb
|
277
266
|
- spec/spec_helper.rb
|
278
267
|
- spec/tmp/.gitkeep
|
279
268
|
- spec/unit/forge/connection/connection_failure_spec.rb
|
@@ -311,8 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
311
300
|
- !ruby/object:Gem::Version
|
312
301
|
version: '0'
|
313
302
|
requirements: []
|
314
|
-
|
315
|
-
rubygems_version: 2.7.7
|
303
|
+
rubygems_version: 3.0.3
|
316
304
|
signing_key:
|
317
305
|
specification_version: 4
|
318
306
|
summary: Access the Puppet Forge API from Ruby for resource information and to download
|
@@ -348,9 +336,6 @@ test_files:
|
|
348
336
|
- spec/fixtures/v3/releases__module=puppetlabs-apache.json
|
349
337
|
- spec/fixtures/v3/users/puppetlabs.headers
|
350
338
|
- spec/fixtures/v3/users/puppetlabs.json
|
351
|
-
- spec/integration/forge/v3/module_spec.rb
|
352
|
-
- spec/integration/forge/v3/release_spec.rb
|
353
|
-
- spec/integration/forge/v3/user_spec.rb
|
354
339
|
- spec/spec_helper.rb
|
355
340
|
- spec/tmp/.gitkeep
|
356
341
|
- spec/unit/forge/connection/connection_failure_spec.rb
|
data/.travis.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
dist: xenial
|
2
|
-
language: ruby
|
3
|
-
rvm:
|
4
|
-
- 2.6
|
5
|
-
- 2.5
|
6
|
-
- 2.3
|
7
|
-
- 2.1
|
8
|
-
# TODO: enable integration testing
|
9
|
-
script: bundle exec rspec spec/unit
|
10
|
-
jobs:
|
11
|
-
include:
|
12
|
-
- stage: deploy
|
13
|
-
if: tag IS present
|
14
|
-
rvm: 2.6
|
15
|
-
script: echo "Deploying to rubygems.org..."
|
16
|
-
deploy:
|
17
|
-
on:
|
18
|
-
all_branches: true
|
19
|
-
provider: rubygems
|
20
|
-
gem: puppet_forge
|
21
|
-
api_key:
|
22
|
-
secure: 066s1nJoYzCPzujfTAZ1OiDbbHghLIfW2SxZ/xTom7SbtYlb4SVOUkzOr6dLMysUBAWLQRwiFvgNij+iWwHoNEPqNA+JeGZIiL32ShQI0NW+lTcjPzeAe8Ppy/1pxgXFSJAPHLzdpdgiK91eM4vMWHIaOqPeT/4+X2+kmWbg71E=
|
data/MAINTAINERS
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
If you'd like to make a change to this library, you should contact at least one
|
2
|
-
of the maintainers listed below. They will be able to discuss the change with
|
3
|
-
you and decide the next best step. The maintainers will also be notified of pull
|
4
|
-
requests as described in the README. This maintainers file should be kept up to
|
5
|
-
date with the current maintainers of the project.
|
6
|
-
|
7
|
-
If you need to contact the maintainers of this project you should email
|
8
|
-
info@puppetlabs.com.
|
9
|
-
|
10
|
-
Alex Dreyer, Puppet Labs
|
11
|
-
Anderson Mills, Puppet Labs
|
12
|
-
Jesse Scott, Puppet Labs
|
13
|
-
|
@@ -1,119 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe PuppetForge::V3::Module do
|
4
|
-
before do
|
5
|
-
PuppetForge.host = "https://forge-aio01-petest.puppetlabs.com/"
|
6
|
-
PuppetForge::V3::Base.conn = PuppetForge::Connection.make_connection(PuppetForge.host, nil, {:ssl => {:verify => false} })
|
7
|
-
end
|
8
|
-
|
9
|
-
context "::find" do
|
10
|
-
context "gets information on an existing module and" do
|
11
|
-
let (:mod) { PuppetForge::V3::Module.find('puppetforgegemtesting-thorin') }
|
12
|
-
let (:mod_stateless) { PuppetForge::V3::Module.find_stateless('puppetforgegemtesting-thorin') }
|
13
|
-
|
14
|
-
it "returns a PuppetForge::V3::Module." do
|
15
|
-
expect(mod).to be_a(PuppetForge::V3::Module)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "returns a PuppetForge::V3::Module from a stateless call." do
|
19
|
-
expect(mod_stateless).to be_a(PuppetForge::V3::Module)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "exposes the API information." do
|
23
|
-
expect(mod).to respond_to(:uri)
|
24
|
-
expect(mod).to respond_to(:owner)
|
25
|
-
expect(mod).to respond_to(:current_release)
|
26
|
-
expect(mod).to respond_to(:releases)
|
27
|
-
|
28
|
-
expect(mod.uri).to be_a(String)
|
29
|
-
expect(mod.owner).to be_a(PuppetForge::V3::User)
|
30
|
-
expect(mod.current_release).to be_a(PuppetForge::V3::Release)
|
31
|
-
expect(mod.releases.first).to be_a(PuppetForge::V3::Release)
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
context "raises Faraday::ResourceNotFound when" do
|
37
|
-
let (:mod) { PuppetForge::V3::Module.find('puppetforgegemtesting-bilbo') }
|
38
|
-
|
39
|
-
it "the module does not exist" do
|
40
|
-
expect { mod }.to raise_error(Faraday::ResourceNotFound)
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
context "::where" do
|
48
|
-
context "finds matching resources" do
|
49
|
-
|
50
|
-
it "only returns modules that match the query" do
|
51
|
-
modules = PuppetForge::V3::Module.where(:owner => 'puppetforgegemtesting')
|
52
|
-
|
53
|
-
expect(modules).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
54
|
-
modules.each do |mod|
|
55
|
-
expect(mod.owner.username).to eq('puppetforgegemtesting')
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
it "returns a paginated response" do
|
61
|
-
modules = PuppetForge::V3::Module.where(:owner => 'puppetforgegemtesting', :limit => 1)
|
62
|
-
|
63
|
-
expect(modules.limit).to eq(1)
|
64
|
-
expect(modules.total).to eq(2)
|
65
|
-
|
66
|
-
expect(modules.next).not_to be_nil
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
context "does not find matching resources" do
|
72
|
-
it "returns an empty PaginatedCollection" do
|
73
|
-
modules = PuppetForge::V3::Module.where(:owner => 'absentuser')
|
74
|
-
|
75
|
-
expect(modules).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
76
|
-
|
77
|
-
expect(modules.size).to eq(0)
|
78
|
-
expect(modules.empty?).to be(true)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
context "::where_stateless" do
|
84
|
-
context "finds matching resources" do
|
85
|
-
|
86
|
-
it "only returns modules that match the query" do
|
87
|
-
modules = PuppetForge::V3::Module.where_stateless(:owner => 'puppetforgegemtesting')
|
88
|
-
|
89
|
-
expect(modules).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
90
|
-
modules.each do |mod|
|
91
|
-
expect(mod.owner.username).to eq('puppetforgegemtesting')
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
|
96
|
-
it "returns a paginated response" do
|
97
|
-
modules = PuppetForge::V3::Module.where_stateless(:owner => 'puppetforgegemtesting', :limit => 1)
|
98
|
-
|
99
|
-
expect(modules.limit).to eq(1)
|
100
|
-
expect(modules.total).to eq(2)
|
101
|
-
|
102
|
-
expect(modules.next).not_to be_nil
|
103
|
-
end
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
context "does not find matching resources" do
|
108
|
-
it "returns an empty PaginatedCollection" do
|
109
|
-
modules = PuppetForge::V3::Module.where_stateless(:owner => 'absentuser')
|
110
|
-
|
111
|
-
expect(modules).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
112
|
-
|
113
|
-
expect(modules.size).to eq(0)
|
114
|
-
expect(modules.empty?).to be(true)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe PuppetForge::V3::Release do
|
4
|
-
before do
|
5
|
-
PuppetForge.host = "https://forge-aio01-petest.puppetlabs.com/"
|
6
|
-
PuppetForge::V3::Base.conn = PuppetForge::Connection.make_connection(PuppetForge.host, nil, {:ssl => {:verify => false} })
|
7
|
-
end
|
8
|
-
|
9
|
-
context "#find" do
|
10
|
-
context "when the release exists," do
|
11
|
-
|
12
|
-
it "find returns a PuppetForge::V3::Release." do
|
13
|
-
release = PuppetForge::V3::Release.find('puppetforgegemtesting-thorin-0.0.1')
|
14
|
-
|
15
|
-
expect(release).to be_a(PuppetForge::V3::Release)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "it exposes the API information." do
|
19
|
-
release = PuppetForge::V3::Release.find('puppetforgegemtesting-thorin-0.0.1')
|
20
|
-
|
21
|
-
expect(release).to respond_to(:uri)
|
22
|
-
|
23
|
-
expect(release.uri).to be_a(String)
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
context "when the release doesn't exist," do
|
29
|
-
let (:release) { PuppetForge::V3::Release.find('puppetforgegemtesting-bilbo-0.0.1') }
|
30
|
-
|
31
|
-
it "find returns nil." do
|
32
|
-
expect { release }.to raise_error(Faraday::ResourceNotFound)
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
context "::where" do
|
40
|
-
context "finds matching resources" do
|
41
|
-
|
42
|
-
it "only returns releases that match the query" do
|
43
|
-
releases = PuppetForge::V3::Release.where(:module => 'puppetforgegemtesting-thorin')
|
44
|
-
|
45
|
-
expect(releases).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
46
|
-
|
47
|
-
expect(releases.first.version).to eq("0.0.2")
|
48
|
-
expect(releases[1].version).to eq("0.0.1")
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
it "returns a paginated response" do
|
53
|
-
releases = PuppetForge::V3::Release.where(:module => 'puppetforgegemtesting-thorin', :limit => 1)
|
54
|
-
|
55
|
-
expect(releases.limit).to eq(1)
|
56
|
-
expect(releases.total).to eq(2)
|
57
|
-
|
58
|
-
expect(releases.next).not_to be_nil
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
context "does not find matching resources" do
|
64
|
-
it "returns an empty PaginatedCollection" do
|
65
|
-
releases = PuppetForge::V3::Release.where(:module => 'puppetforgegemtesting-notamodule')
|
66
|
-
|
67
|
-
expect(releases).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
68
|
-
|
69
|
-
expect(releases.size).to eq(0)
|
70
|
-
expect(releases.empty?).to be(true)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe PuppetForge::V3::User do
|
4
|
-
before do
|
5
|
-
PuppetForge.host = "https://forge-aio01-petest.puppetlabs.com/"
|
6
|
-
PuppetForge::V3::Base.conn = PuppetForge::Connection.make_connection(PuppetForge.host, nil, {:ssl => {:verify => false} })
|
7
|
-
end
|
8
|
-
|
9
|
-
context "#find" do
|
10
|
-
context "when the user exists," do
|
11
|
-
|
12
|
-
it "find returns a PuppetForge::V3::User." do
|
13
|
-
user = PuppetForge::V3::User.find('puppetforgegemtesting')
|
14
|
-
expect(user).to be_a(PuppetForge::V3::User)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "it exposes the API information." do
|
18
|
-
user = PuppetForge::V3::User.find('puppetforgegemtesting')
|
19
|
-
|
20
|
-
expect(user).to respond_to(:uri)
|
21
|
-
expect(user).to respond_to(:modules)
|
22
|
-
|
23
|
-
expect(user.uri).to be_a(String)
|
24
|
-
expect(user.modules).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
context "when the user doesn't exists," do
|
30
|
-
let (:user) { PuppetForge::V3::User.find('notauser') }
|
31
|
-
|
32
|
-
it "find returns nil." do
|
33
|
-
expect { user }.to raise_error(Faraday::ResourceNotFound)
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context "::where" do
|
40
|
-
context "finds matching resources" do
|
41
|
-
|
42
|
-
it "returns sorted users" do
|
43
|
-
users = PuppetForge::V3::User.where(:sort_by => 'releases')
|
44
|
-
|
45
|
-
expect(users).to be_a(PuppetForge::V3::Base::PaginatedCollection)
|
46
|
-
|
47
|
-
previous_releases = users.first.release_count
|
48
|
-
users.each do |user|
|
49
|
-
expect(user.release_count).to be <= previous_releases
|
50
|
-
previous_releases = user.release_count
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
it "returns a paginated response" do
|
56
|
-
users = PuppetForge::V3::User.where(:limit => 1)
|
57
|
-
|
58
|
-
expect(users.limit).to eq(1)
|
59
|
-
|
60
|
-
2.times do
|
61
|
-
expect(users).not_to be_nil
|
62
|
-
users = users.next
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|