beaker-rspec 7.1.0 → 8.0.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: 33c490e0e39f5a1263d21542547d9c9d0e80defea9b501c52592452944ba3482
4
- data.tar.gz: 791e80f9306912dc43317015c1a3298bf604fe26df17c2cb815f6fe9264f5df0
3
+ metadata.gz: f9a5990ade11a161760e1eb40ad4486a1c8d97cb3c063d954bc29d010d7d8e3a
4
+ data.tar.gz: bdf8a2f24a26fca7a345b0e77a602fa8c9eccacefffb13a7e125221688996659
5
5
  SHA512:
6
- metadata.gz: b810b5bcf3313d1c4f554a98e4b09f6ac3c9312dba23766a064c4154159e469d761997e78b66a1bc1f2754a37a87d15a335d6c7067095d0b4f46d49a3f0f6722
7
- data.tar.gz: ceec62d51cf7e9ca136a0836f2981e5e4ac43d116ffa04d10e31d56b849f75a3f5396b537c7e362a425a855a31176b91aee12cf0c3f513f9fd62a07ca0c65387
6
+ metadata.gz: 01f162c8d641d603d49eb5bb7263da970e07686ae44eda947609c328cf2840c68168e3e1ebc6d788c65fba7c70d84ab21ec2cd61da7fd8a1a0752fb475ad0f11
7
+ data.tar.gz: 6cd69c2865258e9c44948324fb1cb4aed09cc49b425f36bb4665cd7e2ebbececeaad7937478ce1473ee349fe64f337f1e64d45d2baacc8d7fffa30c9d4f3ed2e
@@ -1,8 +1,17 @@
1
1
  version: 2
2
2
  updates:
3
+ # raise PRs for gem updates
3
4
  - package-ecosystem: bundler
4
5
  directory: "/"
5
6
  schedule:
6
7
  interval: daily
7
8
  time: "13:00"
8
9
  open-pull-requests-limit: 10
10
+
11
+ # Maintain dependencies for GitHub Actions
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: daily
16
+ time: "13:00"
17
+ open-pull-requests-limit: 10
@@ -10,11 +10,11 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
  if: github.repository_owner == 'voxpupuli'
12
12
  steps:
13
- - uses: actions/checkout@v2
14
- - name: Install Ruby 3.0
13
+ - uses: actions/checkout@v3
14
+ - name: Install Ruby 3.2
15
15
  uses: ruby/setup-ruby@v1
16
16
  with:
17
- ruby-version: '3.0'
17
+ ruby-version: '3.2'
18
18
  bundler: 'none'
19
19
  - name: Build gem
20
20
  run: gem build *.gemspec
@@ -1,34 +1,55 @@
1
1
  name: Test
2
2
 
3
3
  on:
4
- - pull_request
4
+ pull_request: {}
5
+ push:
6
+ branches:
7
+ - master
5
8
 
6
9
  env:
10
+ BUNDLE_WITHOUT: release
7
11
  BEAKER_HYPERVISOR: docker
8
12
 
9
13
  jobs:
14
+ rubocop:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ - name: Install Ruby ${{ matrix.ruby }}
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: "3.2"
22
+ bundler-cache: true
23
+ - name: Run Rubocop
24
+ run: bundle exec rake rubocop
10
25
  build:
11
26
  runs-on: ubuntu-latest
12
27
  strategy:
13
28
  fail-fast: false
14
29
  matrix:
15
30
  ruby:
16
- - "2.4"
17
- - "2.5"
18
- - "2.6"
19
31
  - "2.7"
20
32
  - "3.0"
21
- env:
22
- BUNDLE_WITHOUT: release
33
+ - "3.1"
34
+ - "3.2"
23
35
  name: Ruby ${{ matrix.ruby }}
24
36
  steps:
25
- - uses: actions/checkout@v2
37
+ - uses: actions/checkout@v3
26
38
  - name: Install Ruby ${{ matrix.ruby }}
27
39
  uses: ruby/setup-ruby@v1
28
40
  with:
29
41
  ruby-version: ${{ matrix.ruby }}
30
42
  bundler-cache: true
31
43
  - name: Verify gem builds
32
- run: bundle exec gem build beaker-rspec.gemspec
44
+ run: gem build beaker-rspec.gemspec
33
45
  - name: Run acceptance tests
34
46
  run: bundle exec rake beaker
47
+
48
+ tests:
49
+ needs:
50
+ - rubocop
51
+ - build
52
+ runs-on: ubuntu-latest
53
+ name: Test suite
54
+ steps:
55
+ - run: echo Test suite completed
data/.rubocop.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ inherit_from: .rubocop_todo.yml
3
+ inherit_gem:
4
+ beaker: rubocop.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,137 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2023-03-27 16:58:25 UTC using RuboCop version 1.48.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 3
10
+ Lint/UselessAssignment:
11
+ Exclude:
12
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
13
+
14
+ # Offense count: 1
15
+ Naming/AccessorMethodName:
16
+ Exclude:
17
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
18
+
19
+ # Offense count: 1
20
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
21
+ # CheckDefinitionPathHierarchyRoots: lib, spec, test, src
22
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
23
+ Naming/FileName:
24
+ Exclude:
25
+ - 'lib/beaker-rspec.rb'
26
+
27
+ # Offense count: 1
28
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
29
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
30
+ Naming/MethodParameterName:
31
+ Exclude:
32
+ - 'lib/beaker-rspec/beaker_shim.rb'
33
+
34
+ # Offense count: 1
35
+ # This cop supports safe autocorrection (--autocorrect).
36
+ # Configuration parameters: EnforcedStyle.
37
+ # SupportedStyles: be_a, be_kind_of
38
+ RSpec/ClassCheck:
39
+ Exclude:
40
+ - 'spec/acceptance/example_spec.rb'
41
+
42
+ # Offense count: 3
43
+ # Configuration parameters: Prefixes, AllowedPatterns.
44
+ # Prefixes: when, with, without
45
+ RSpec/ContextWording:
46
+ Exclude:
47
+ - 'spec/acceptance/example_spec.rb'
48
+
49
+ # Offense count: 1
50
+ # Configuration parameters: IgnoredMetadata.
51
+ RSpec/DescribeClass:
52
+ Exclude:
53
+ - '**/spec/features/**/*'
54
+ - '**/spec/requests/**/*'
55
+ - '**/spec/routing/**/*'
56
+ - '**/spec/system/**/*'
57
+ - '**/spec/views/**/*'
58
+ - 'spec/acceptance/example_spec.rb'
59
+
60
+ # Offense count: 5
61
+ # Configuration parameters: AllowedPatterns.
62
+ # AllowedPatterns: ^expect_, ^assert_
63
+ RSpec/NoExpectationExample:
64
+ Exclude:
65
+ - 'spec/acceptance/example_spec.rb'
66
+
67
+ # Offense count: 1
68
+ # This cop supports unsafe autocorrection (--autocorrect-all).
69
+ # Configuration parameters: EnforcedStyle.
70
+ # SupportedStyles: always, conditionals
71
+ Style/AndOr:
72
+ Exclude:
73
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
74
+
75
+ # Offense count: 7
76
+ # This cop supports unsafe autocorrection (--autocorrect-all).
77
+ # Configuration parameters: EnforcedStyle.
78
+ # SupportedStyles: nested, compact
79
+ Style/ClassAndModuleChildren:
80
+ Exclude:
81
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
82
+
83
+ # Offense count: 1
84
+ Style/ClassVars:
85
+ Exclude:
86
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
87
+
88
+ # Offense count: 10
89
+ # Configuration parameters: AllowedConstants.
90
+ Style/Documentation:
91
+ Exclude:
92
+ - 'spec/**/*'
93
+ - 'test/**/*'
94
+ - 'lib/beaker-rspec.rb'
95
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
96
+
97
+ # Offense count: 10
98
+ # This cop supports unsafe autocorrection (--autocorrect-all).
99
+ # Configuration parameters: EnforcedStyle.
100
+ # SupportedStyles: always, always_true, never
101
+ Style/FrozenStringLiteralComment:
102
+ Exclude:
103
+ - 'Gemfile'
104
+ - 'beaker-rspec.gemspec'
105
+ - 'lib/beaker-rspec.rb'
106
+ - 'lib/beaker-rspec/beaker_shim.rb'
107
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
108
+ - 'lib/beaker-rspec/rake_task.rb'
109
+ - 'lib/beaker-rspec/spec_helper.rb'
110
+ - 'lib/beaker-rspec/version.rb'
111
+ - 'spec/acceptance/example_spec.rb'
112
+ - 'spec/spec_helper.rb'
113
+
114
+ # Offense count: 1
115
+ Style/MissingRespondToMissing:
116
+ Exclude:
117
+ - 'lib/beaker-rspec/helpers/serverspec.rb'
118
+
119
+ # Offense count: 1
120
+ Style/MixinUsage:
121
+ Exclude:
122
+ - 'lib/beaker-rspec/spec_helper.rb'
123
+
124
+ # Offense count: 1
125
+ # This cop supports unsafe autocorrection (--autocorrect-all).
126
+ # Configuration parameters: EnforcedStyle.
127
+ # SupportedStyles: literals, strict
128
+ Style/MutableConstant:
129
+ Exclude:
130
+ - 'lib/beaker-rspec/version.rb'
131
+
132
+ # Offense count: 1
133
+ # This cop supports unsafe autocorrection (--autocorrect-all).
134
+ # Configuration parameters: RequireEnglish.
135
+ # SupportedStyles: use_perl_names, use_english_names, use_builtin_english_names
136
+ Style/SpecialGlobalVars:
137
+ EnforcedStyle: use_perl_names
data/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [8.0.0](https://github.com/voxpupuli/beaker-rspec/tree/8.0.0) (2023-03-27)
6
+
7
+ [Full Changelog](https://github.com/voxpupuli/beaker-rspec/compare/7.1.0...8.0.0)
8
+
9
+ **Breaking changes:**
10
+
11
+ - Drop Ruby 2.4/2.5/2.6 [\#121](https://github.com/voxpupuli/beaker-rspec/pull/121) ([bastelfreak](https://github.com/bastelfreak))
12
+
13
+ **Implemented enhancements:**
14
+
15
+ - Add Ruby 3.2 support [\#120](https://github.com/voxpupuli/beaker-rspec/pull/120) ([bastelfreak](https://github.com/bastelfreak))
16
+ - Introduce rubocop [\#118](https://github.com/voxpupuli/beaker-rspec/pull/118) ([bastelfreak](https://github.com/bastelfreak))
17
+ - Support uppercase configuration environment variables [\#117](https://github.com/voxpupuli/beaker-rspec/pull/117) ([ekohl](https://github.com/ekohl))
18
+ - Allow to disable debug output [\#116](https://github.com/voxpupuli/beaker-rspec/pull/116) ([jay7x](https://github.com/jay7x))
19
+
20
+ **Merged pull requests:**
21
+
22
+ - Use rubocop config from beaker [\#125](https://github.com/voxpupuli/beaker-rspec/pull/125) ([bastelfreak](https://github.com/bastelfreak))
23
+ - Require beaker 4.x [\#124](https://github.com/voxpupuli/beaker-rspec/pull/124) ([bastelfreak](https://github.com/bastelfreak))
24
+ - Rubocop: Fix Layout cops [\#123](https://github.com/voxpupuli/beaker-rspec/pull/123) ([bastelfreak](https://github.com/bastelfreak))
25
+ - Rubocop: Fix Style cops [\#122](https://github.com/voxpupuli/beaker-rspec/pull/122) ([bastelfreak](https://github.com/bastelfreak))
26
+ - Fix multiple rubocop violations [\#119](https://github.com/voxpupuli/beaker-rspec/pull/119) ([bastelfreak](https://github.com/bastelfreak))
27
+ - Add Ruby 3.1 to CI matrix [\#113](https://github.com/voxpupuli/beaker-rspec/pull/113) ([bastelfreak](https://github.com/bastelfreak))
28
+
5
29
  ## [7.1.0](https://github.com/voxpupuli/beaker-rspec/tree/7.1.0) (2022-01-14)
6
30
 
7
31
  [Full Changelog](https://github.com/voxpupuli/beaker-rspec/compare/7.0.0...7.1.0)
data/Gemfile CHANGED
@@ -1,20 +1,20 @@
1
- source ENV['GEM_SOURCE'] || "https://rubygems.org"
1
+ source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
2
 
3
3
  def location_for(place, fake_version = nil)
4
4
  if place =~ /^(git:[^#]*)#(.*)/
5
- [fake_version, { :git => $1, :branch => $2, :require => false }].compact
6
- elsif place =~ /^file:\/\/(.*)/
7
- ['>= 0', { :path => File.expand_path($1), :require => false }]
5
+ [fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact
6
+ elsif place =~ %r{^file://(.*)}
7
+ ['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }]
8
8
  else
9
- [place, { :require => false }]
9
+ [place, { require: false }]
10
10
  end
11
11
  end
12
12
 
13
- if (beaker_version = ENV['BEAKER_VERSION'])
13
+ if (beaker_version = ENV.fetch('BEAKER_VERSION', nil))
14
14
  gem 'beaker', *location_for(beaker_version)
15
15
  end
16
16
 
17
- case ENV['BEAKER_HYPERVISOR']
17
+ case ENV.fetch('BEAKER_HYPERVISOR', nil)
18
18
  when 'docker'
19
19
  gem 'beaker-docker'
20
20
  when 'vagrant', 'vagrant_libvirt'
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # beaker-rspec
2
2
 
3
- [![License](https://img.shields.io/github/license/voxpupuli/beaker.svg)](https://github.com/voxpupuli/beaker/blob/master/LICENSE)
4
- [![Test](https://github.com/voxpupuli/beaker/actions/workflows/test.yml/badge.svg)](https://github.com/voxpupuli/beaker/actions/workflows/test.yml)
5
- [![Release](https://github.com/voxpupuli/beaker/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/beaker/actions/workflows/release.yml)
6
- [![RubyGem Version](https://img.shields.io/gem/v/beaker.svg)](https://rubygems.org/gems/beaker)
7
- [![RubyGem Downloads](https://img.shields.io/gem/dt/beaker.svg)](https://rubygems.org/gems/beaker)
3
+ [![License](https://img.shields.io/github/license/voxpupuli/beaker-rspec.svg)](https://github.com/voxpupuli/beaker-rspec/blob/master/LICENSE)
4
+ [![Test](https://github.com/voxpupuli/beaker-rspec/actions/workflows/test.yml/badge.svg)](https://github.com/voxpupuli/beaker-rspec/actions/workflows/test.yml)
5
+ [![Release](https://github.com/voxpupuli/beaker-rspec/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/beaker-rspec/actions/workflows/release.yml)
6
+ [![RubyGem Version](https://img.shields.io/gem/v/beaker-rspec.svg)](https://rubygems.org/gems/beaker-rspec)
7
+ [![RubyGem Downloads](https://img.shields.io/gem/dt/beaker-rspec.svg)](https://rubygems.org/gems/beaker-rspec)
8
8
  [![Donated by Puppet Inc](https://img.shields.io/badge/donated%20by-Puppet%20Inc-fb7047.svg)](#transfer-notice)
9
9
 
10
10
  beaker-rspec is a bridge between the puppet acceptance test harness ([beaker](https://github.com/voxpupuli/beaker)) and [rspec](https://github.com/rspec/rspec). It also integrates [serverspec](http://serverspec.org/).
data/Rakefile CHANGED
@@ -18,3 +18,16 @@ else
18
18
  config.future_release = Gem::Specification.load("#{config.project}.gemspec").version
19
19
  end
20
20
  end
21
+
22
+ begin
23
+ require 'rubocop/rake_task'
24
+ rescue LoadError
25
+ # RuboCop is an optional group
26
+ else
27
+ RuboCop::RakeTask.new(:rubocop) do |task|
28
+ # These make the rubocop experience maybe slightly less terrible
29
+ task.options = ['--display-cop-names', '--display-style-guide', '--extra-details']
30
+ # Use Rubocop's Github Actions formatter if possible
31
+ task.formatters << 'github' if ENV['GITHUB_ACTIONS'] == 'true'
32
+ end
33
+ end
data/beaker-rspec.gemspec CHANGED
@@ -1,35 +1,40 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
1
+ $:.push File.expand_path('lib', __dir__)
3
2
  require 'beaker-rspec/version'
4
3
 
5
4
  Gem::Specification.new do |s|
6
- s.name = "beaker-rspec"
5
+ s.name = 'beaker-rspec'
7
6
  s.version = BeakerRSpec::Version::STRING
8
- s.authors = ["Vox Pupuli"]
9
- s.email = ["voxpupuli@groups.io"]
10
- s.homepage = "https://github.com/voxpupuli/beaker-rspec"
11
- s.summary = %q{RSpec bindings for beaker}
12
- s.description = %q{RSpec bindings for beaker, see https://github.com/voxpupuli/beaker}
7
+ s.authors = ['Vox Pupuli']
8
+ s.email = ['voxpupuli@groups.io']
9
+ s.homepage = 'https://github.com/voxpupuli/beaker-rspec'
10
+ s.summary = 'RSpec bindings for beaker'
11
+ s.description = 'RSpec bindings for beaker, see https://github.com/voxpupuli/beaker'
13
12
  s.license = 'Apache-2.0'
14
13
 
15
- s.required_ruby_version = '>= 2.4.0', '<4.0.0'
14
+ s.required_ruby_version = '>= 2.7.0', '<4.0.0'
16
15
 
17
16
  s.files = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
- s.require_paths = ["lib"]
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_paths = ['lib']
21
19
 
22
20
  # Testing dependencies
23
- s.add_development_dependency 'minitest', '~> 5.4'
24
21
  s.add_development_dependency 'fakefs', '>= 0.6', '< 2'
22
+ s.add_development_dependency 'minitest', '~> 5.4'
25
23
  s.add_development_dependency 'rake', '~> 13.0'
26
24
 
25
+ # rubocop
26
+ s.add_development_dependency 'rubocop', '~> 1.48.1'
27
+ s.add_development_dependency 'rubocop-minitest'
28
+ s.add_development_dependency 'rubocop-performance'
29
+ s.add_development_dependency 'rubocop-rake'
30
+ s.add_development_dependency 'rubocop-rspec'
31
+
27
32
  # Documentation dependencies
28
- s.add_development_dependency 'yard'
29
33
  s.add_development_dependency 'thin'
34
+ s.add_development_dependency 'yard'
30
35
 
31
36
  # Run time dependencies
32
- s.add_runtime_dependency 'beaker', '> 3.0'
37
+ s.add_runtime_dependency 'beaker', '>= 4.0', '< 6'
33
38
  s.add_runtime_dependency 'rspec', '~> 3.0'
34
39
  s.add_runtime_dependency 'serverspec', '~> 2'
35
40
  s.add_runtime_dependency 'specinfra', '~> 2'
@@ -70,7 +70,7 @@ module BeakerRSpec
70
70
  end
71
71
 
72
72
  # Setter for hosts object
73
- def hosts= v
73
+ def hosts=(v)
74
74
  RSpec.configuration.hosts = v
75
75
  end
76
76
 
@@ -84,6 +84,5 @@ module BeakerRSpec
84
84
  def cleanup
85
85
  @network_manager.cleanup
86
86
  end
87
-
88
87
  end
89
88
  end
@@ -6,7 +6,6 @@ require 'specinfra/backend/powershell/script_helper'
6
6
  set :backend, 'BeakerDispatch'
7
7
 
8
8
  module Specinfra
9
-
10
9
  # Accessor for current example
11
10
  def cur_example
12
11
  Specinfra.backend.example
@@ -15,11 +14,10 @@ module Specinfra
15
14
  def get_working_node
16
15
  example = cur_example
17
16
  if example and example.metadata[:node]
18
- node = example.metadata[:node]
17
+ example.metadata[:node]
19
18
  else
20
- node = default_node
19
+ default_node
21
20
  end
22
- node
23
21
  end
24
22
 
25
23
  # The cygwin backend
@@ -31,44 +29,39 @@ module Specinfra
31
29
  def exec_backend
32
30
  @exec_backend ||= Specinfra::Backend::BeakerExec.instance
33
31
  end
34
-
35
32
  end
36
33
 
37
-
38
34
  # Override existing specinfra configuration to avoid conflicts
39
35
  # with beaker's shell, stdout, stderr defines
40
36
  module Specinfra
41
37
  module Configuration
42
38
  class << self
43
- VALID_OPTIONS_KEYS = [
44
- :backend,
45
- :env,
46
- :path,
47
- :pre_command,
48
- :sudo_path,
49
- :disable_sudo,
50
- :sudo_options,
51
- :docker_image,
52
- :docker_url,
53
- :lxc,
54
- :request_pty,
55
- :ssh_options,
56
- :dockerfile_finalizer,
39
+ VALID_OPTIONS_KEYS = %i[
40
+ backend
41
+ env
42
+ path
43
+ pre_command
44
+ sudo_path
45
+ disable_sudo
46
+ sudo_options
47
+ docker_image
48
+ docker_url
49
+ lxc
50
+ request_pty
51
+ ssh_options
52
+ dockerfile_finalizer
57
53
  ].freeze
58
54
  end
59
-
60
55
  end
61
56
  end
62
57
 
63
58
  module Specinfra::Helper::Os
64
-
65
59
  @@known_nodes = {}
66
60
 
67
61
  def os
68
62
  working_node_name = get_working_node.to_s
69
- if !@@known_nodes[working_node_name] # haven't seen this yet, better detect the os
70
- @@known_nodes[working_node_name] = property[:os] = detect_os
71
- end
63
+ # haven't seen this yet, better detect the os
64
+ @@known_nodes[working_node_name] = property[:os] = detect_os unless @@known_nodes[working_node_name]
72
65
  @@known_nodes[working_node_name]
73
66
  end
74
67
 
@@ -78,11 +71,11 @@ module Specinfra::Helper::Os
78
71
  # when we know that we have a windows node
79
72
  def detect_os
80
73
  return Specinfra.configuration.os if Specinfra.configuration.os
74
+
81
75
  backend = Specinfra.backend
82
76
  node = get_working_node
83
- if node['platform'] =~ /windows/
84
- return {:family => 'windows'}
85
- end
77
+ return { family: 'windows' } if node['platform'].include?('windows')
78
+
86
79
  Specinfra::Helper::DetectOs.subclasses.each do |c|
87
80
  res = c.detect
88
81
  if res
@@ -97,36 +90,34 @@ class Specinfra::CommandFactory
97
90
  class << self
98
91
  # Force creation of a windows command
99
92
  def get_windows_cmd(meth, *args)
100
-
101
93
  action, resource_type, subaction = breakdown(meth)
102
94
  method = action
103
95
  method += "_#{subaction}" if subaction
104
96
 
105
97
  common_class = Specinfra::Command
106
- base_class = common_class.const_get('Base')
107
- os_class = common_class.const_get('Windows')
108
- version_class = os_class.const_get('Base')
98
+ base_class = common_class.const_get(:Base)
99
+ os_class = common_class.const_get(:Windows)
100
+ version_class = os_class.const_get(:Base)
109
101
  command_class = version_class.const_get(resource_type.to_camel_case)
110
102
 
111
103
  command_class = command_class.create
112
- if command_class.respond_to?(method)
113
- command_class.send(method, *args)
114
- else
115
- raise NotImplementedError.new("#{method} is not implemented in #{command_class}")
104
+ unless command_class.respond_to?(method)
105
+ raise NotImplementedError,
106
+ "#{method} is not implemented in #{command_class}"
116
107
  end
117
- end
118
108
 
109
+ command_class.send(method, *args)
110
+ end
119
111
  end
120
112
  end
121
113
 
122
114
  module Specinfra
123
115
  # Rewrite the runner to use the appropriate backend based upon platform information
124
116
  class Runner
125
-
126
117
  def self.method_missing(meth, *args)
127
118
  backend = Specinfra.backend
128
119
  node = get_working_node
129
- if node['platform'] !~ /windows/
120
+ if !node['platform'].include?('windows')
130
121
  processor = Specinfra::Processor
131
122
  if processor.respond_to?(meth)
132
123
  processor.send(meth, *args)
@@ -135,23 +126,19 @@ module Specinfra
135
126
  else
136
127
  run(meth, *args)
137
128
  end
129
+ elsif backend.respond_to?(meth)
130
+ backend.send(meth, *args)
138
131
  else
139
- if backend.respond_to?(meth)
140
- backend.send(meth, *args)
141
- else
142
- run(meth, *args)
143
- end
132
+ run(meth, *args)
144
133
  end
145
134
  end
146
135
 
147
- private
148
-
149
136
  def self.run(meth, *args)
150
137
  backend = Specinfra.backend
151
138
  cmd = Specinfra.command.get(meth, *args)
152
139
  backend = Specinfra.backend
153
140
  ret = backend.run_command(cmd)
154
- if meth.to_s =~ /^check/
141
+ if meth.to_s.start_with?('check')
155
142
  ret.success?
156
143
  else
157
144
  ret
@@ -168,7 +155,7 @@ module Specinfra::Backend::PowerShell
168
155
  when Regexp
169
156
  target.source
170
157
  else
171
- Regexp.escape(target.to_s.gsub '/', '\/').gsub('\n', '(\r\n|\n)')
158
+ Regexp.escape(target.to_s.gsub('/', '\/')).gsub('\n', '(\r\n|\n)')
172
159
  end
173
160
  end
174
161
  end
@@ -177,38 +164,34 @@ end
177
164
  module Specinfra::Backend
178
165
  class BeakerBase < Specinfra::Backend::Base
179
166
  # Example accessor
180
- def example
181
- @example
182
- end
167
+ attr_reader :example
183
168
 
184
169
  # Execute the provided ssh command
185
170
  # @param [String] command The command to be executed
186
171
  # @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
187
172
  def ssh_exec!(node, command)
188
- r = on node, command, { :acceptable_exit_codes => (0..127) }
173
+ r = on node, command, { acceptable_exit_codes: (0..127) }
189
174
  {
190
- :exit_status => r.exit_code,
191
- :stdout => r.stdout,
192
- :stderr => r.stderr
175
+ exit_status: r.exit_code,
176
+ stdout: r.stdout,
177
+ stderr: r.stderr,
193
178
  }
194
179
  end
195
-
196
180
  end
197
181
  end
198
182
 
199
183
  # Used as a container for the two backends, dispatches as windows/nix depending on node platform
200
184
  module Specinfra::Backend
201
185
  class BeakerDispatch < BeakerBase
202
-
203
186
  def dispatch_method(meth, *args)
204
- if get_working_node['platform'] =~ /windows/
187
+ if get_working_node['platform'].include?('windows')
205
188
  cygwin_backend.send(meth, *args)
206
189
  else
207
190
  exec_backend.send(meth, *args)
208
191
  end
209
192
  end
210
193
 
211
- def run_command(cmd, opts={})
194
+ def run_command(cmd, opts = {})
212
195
  dispatch_method('run_command', cmd, opts)
213
196
  end
214
197
 
@@ -232,22 +215,22 @@ module Specinfra::Backend
232
215
  # @param [String] cmd The serverspec command to executed
233
216
  # @param [Hash] opt No currently supported options
234
217
  # @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
235
- def run_command(cmd, opt = {})
218
+ def run_command(cmd, _opt = {})
236
219
  node = get_working_node
237
220
  script = create_script(cmd)
238
- #when node is not cygwin rm -rf will fail so lets use native del instead
239
- #There should be a better way to do this, but for now , this works
221
+ # when node is not cygwin rm -rf will fail so lets use native del instead
222
+ # There should be a better way to do this, but for now , this works
240
223
  if node.is_cygwin?
241
- delete_command = "rm -rf"
242
- redirection = "< /dev/null"
224
+ delete_command = 'rm -rf'
225
+ redirection = '< /dev/null'
243
226
  else
244
- delete_command = "del"
245
- redirection = "< NUL"
227
+ delete_command = 'del'
228
+ redirection = '< NUL'
246
229
  end
247
230
  on node, "#{delete_command} script.ps1"
248
231
  create_remote_file(node, 'script.ps1', script)
249
- #When using cmd on a pswindows node redirection should be set to < NUl
250
- #when using a cygwing one, /dev/null should be fine
232
+ # When using cmd on a pswindows node redirection should be set to < NUl
233
+ # when using a cygwing one, /dev/null should be fine
251
234
  ret = ssh_exec!(node, "powershell.exe -File script.ps1 #{redirection}")
252
235
 
253
236
  if @example
@@ -263,13 +246,12 @@ end
263
246
  # Backend for running serverspec commands on non-windows test nodes
264
247
  module Specinfra::Backend
265
248
  class BeakerExec < BeakerBase
266
-
267
249
  # Run a unix style command using serverspec. Defaults to running on the 'default_node'
268
250
  # test node, otherwise uses the node specified in @example.metadata[:node]
269
251
  # @param [String] cmd The serverspec command to executed
270
252
  # @param [Hash] opt No currently supported options
271
253
  # @return [Hash] Returns a hash containing :exit_status, :stdout and :stderr
272
- def run_command(cmd, opt = {})
254
+ def run_command(cmd, _opt = {})
273
255
  node = get_working_node
274
256
  cmd = build_command(cmd)
275
257
  cmd = add_pre_command(cmd)
@@ -289,9 +271,7 @@ module Specinfra::Backend
289
271
  cmd = "#{String(useshell).shellescape} -c #{String(cmd).shellescape}"
290
272
 
291
273
  path = Specinfra.configuration.path
292
- if path
293
- cmd = %Q{env PATH="#{path}" #{cmd}}
294
- end
274
+ cmd = %(env PATH="#{path}" #{cmd}) if path
295
275
 
296
276
  cmd
297
277
  end
@@ -304,6 +284,5 @@ module Specinfra::Backend
304
284
  cmd
305
285
  end
306
286
  end
307
-
308
287
  end
309
288
  end
@@ -1,5 +1,5 @@
1
1
  require 'rspec/core/rake_task'
2
2
 
3
3
  RSpec::Core::RakeTask.new(:beaker) do |c|
4
- c.pattern = "spec/acceptance/**/*_spec.rb"
4
+ c.pattern = 'spec/acceptance/**/*_spec.rb'
5
5
  end
@@ -1,5 +1,5 @@
1
1
  require 'beaker-rspec/beaker_shim'
2
- require "beaker-rspec/helpers/serverspec"
2
+ require 'beaker-rspec/helpers/serverspec'
3
3
  include BeakerRSpec::BeakerShim
4
4
 
5
5
  RSpec.configure do |c|
@@ -7,48 +7,48 @@ RSpec.configure do |c|
7
7
  c.tty = true
8
8
 
9
9
  # Define persistant hosts setting
10
- c.add_setting :hosts, :default => []
10
+ c.add_setting :hosts, default: []
11
11
  # Define persistant options setting
12
- c.add_setting :options, :default => {}
12
+ c.add_setting :options, default: {}
13
13
  # Define persistant metadata object
14
- c.add_setting :metadata, :default => {}
14
+ c.add_setting :metadata, default: {}
15
15
  # Define persistant logger object
16
- c.add_setting :logger, :default => nil
16
+ c.add_setting :logger, default: nil
17
17
  # Define persistant default node
18
- c.add_setting :default_node, :default => nil
18
+ c.add_setting :default_node, default: nil
19
19
 
20
- #default option values
20
+ # default option values
21
21
  defaults = {
22
- :nodeset => 'default',
22
+ nodeset: 'default',
23
23
  }
24
- #read env vars
24
+ # read env vars
25
25
  env_vars = {
26
- :color => ENV['BEAKER_color'] || ENV['RS_COLOR'],
27
- :nodeset => ENV['BEAKER_set'] || ENV['RS_SET'],
28
- :nodesetdir => ENV['BEAKER_setdir'] || ENV['RS_SETDIR'],
29
- :nodesetfile => ENV['BEAKER_setfile'] || ENV['RS_SETFILE'],
30
- :provision => ENV['BEAKER_provision'] || ENV['RS_PROVISION'],
31
- :keyfile => ENV['BEAKER_keyfile'] || ENV['RS_KEYFILE'],
32
- :debug => ENV['BEAKER_debug'] || ENV['RS_DEBUG'],
33
- :destroy => ENV['BEAKER_destroy'] || ENV['RS_DESTROY'],
34
- :optionsfile => ENV['BEAKER_options_file'] || ENV['RS_OPTIONS_FILE'],
35
- }.delete_if {|key, value| value.nil?}
36
- #combine defaults and env_vars to determine overall options
37
- options = defaults.merge(env_vars)
26
+ color: ENV['BEAKER_COLOR'] || ENV['BEAKER_color'] || ENV.fetch('RS_COLOR', nil),
27
+ nodeset: ENV['BEAKER_SET'] || ENV['BEAKER_set'] || ENV.fetch('RS_SET', nil),
28
+ nodesetdir: ENV['BEAKER_SETDIR'] || ENV['BEAKER_setdir'] || ENV.fetch('RS_SETDIR', nil),
29
+ nodesetfile: ENV['BEAKER_SETFILE'] || ENV['BEAKER_setfile'] || ENV.fetch('RS_SETFILE', nil),
30
+ provision: ENV['BEAKER_PROVISION'] || ENV['BEAKER_provision'] || ENV.fetch('RS_PROVISION', nil),
31
+ keyfile: ENV['BEAKER_KEYFILE'] || ENV['BEAKER_keyfile'] || ENV.fetch('RS_KEYFILE', nil),
32
+ debug: ENV['BEAKER_DEBUG'] || ENV['BEAKER_debug'] || ENV.fetch('RS_DEBUG', nil),
33
+ destroy: ENV['BEAKER_DESTROY'] || ENV['BEAKER_destroy'] || ENV.fetch('RS_DESTROY', nil),
34
+ optionsfile: ENV['BEAKER_OPTIONS_FILE'] || ENV['BEAKER_options_file'] || ENV.fetch('RS_OPTIONS_FILE', nil),
35
+ }.delete_if { |_key, value| value.nil? }
36
+ # combine defaults and env_vars to determine overall options
37
+ options = defaults.merge(env_vars)
38
38
 
39
39
  # process options to construct beaker command string
40
40
  nodesetdir = options[:nodesetdir] || File.join('spec', 'acceptance', 'nodesets')
41
41
  nodesetfile = options[:nodesetfile] || File.join(nodesetdir, "#{options[:nodeset]}.yml")
42
42
  fresh_nodes = options[:provision] == 'no' ? '--no-provision' : nil
43
43
  keyfile = options[:keyfile] ? ['--keyfile', options[:keyfile]] : nil
44
- debug = options[:debug] ? ['--log-level', 'debug'] : nil
44
+ debug = options[:debug] && options[:debug] != 'no' ? ['--log-level', 'debug'] : nil
45
45
  color = options[:color] == 'no' ? ['--no-color'] : nil
46
- options_file = options[:optionsfile] ? ['--options-file',options[:optionsfile]] : nil
46
+ options_file = options[:optionsfile] ? ['--options-file', options[:optionsfile]] : nil
47
47
 
48
48
  # Configure all nodes in nodeset
49
49
  c.setup([fresh_nodes, '--hosts', nodesetfile, keyfile, debug, color, options_file].flatten.compact)
50
50
 
51
- trap "SIGINT" do
51
+ trap 'SIGINT' do
52
52
  c.cleanup
53
53
  exit!(1)
54
54
  end
@@ -1,5 +1,5 @@
1
1
  module BeakerRSpec
2
2
  module Version
3
- STRING = '7.1.0'
3
+ STRING = '8.0.0'
4
4
  end
5
5
  end
data/lib/beaker-rspec.rb CHANGED
@@ -4,5 +4,4 @@ module BeakerRSpec
4
4
  require 'beaker-rspec/beaker_shim'
5
5
  require 'beaker-rspec/spec_helper'
6
6
  require 'beaker-rspec/version'
7
-
8
7
  end
@@ -1,35 +1,34 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "ignore" do
4
-
5
- example "ignore" do
3
+ describe 'ignore' do
4
+ example 'ignore' do
6
5
  hosts.each do |host|
7
6
  on host, 'echo hello'
8
7
  end
9
8
  end
10
9
 
11
- example "use self.host" do
10
+ example 'use self.host' do
12
11
  self.hosts = hosts
13
12
  end
14
13
 
15
- example "use DSL method" do
14
+ example 'use DSL method' do
16
15
  echo_on hosts, 'Hello World!'
17
16
  end
18
17
 
19
- example "access the logger" do
20
- logger.debug("hi, i'm a debug message")
21
- logger.notify("hi, I'm a notify message")
18
+ example 'access the logger' do
19
+ logger.debug("hi, i'm a debug message")
20
+ logger.notify("hi, I'm a notify message")
22
21
  end
23
22
 
24
- example "access the options" do
23
+ example 'access the options' do
25
24
  expect(options).to be_kind_of(Hash)
26
25
  end
27
26
 
28
- example "create a beaker dsl::step" do
27
+ example 'create a beaker dsl::step' do
29
28
  step('testing that a step can be used')
30
29
  end
31
30
 
32
- context "has serverspec support" do
31
+ context 'has serverspec support' do
33
32
  hosts.each do |node|
34
33
  sshd = case node['platform']
35
34
  when /windows|el-|redhat|centos/
@@ -37,8 +36,8 @@ describe "ignore" do
37
36
  else
38
37
  'ssh'
39
38
  end
40
- describe service(sshd), :node => node do
41
- it { should be_running }
39
+ describe service(sshd), node: node do
40
+ it { is_expected.to be_running }
42
41
  end
43
42
 
44
43
  usr = case node['platform']
@@ -47,13 +46,13 @@ describe "ignore" do
47
46
  else
48
47
  'root'
49
48
  end
50
- describe user(usr), :node => node do
51
- it { should exist }
49
+ describe user(usr), node: node do
50
+ it { is_expected.to exist }
52
51
  end
53
52
  end
54
53
  end
55
54
 
56
- context "serverspec: can access default node" do
55
+ context 'serverspec: can access default node' do
57
56
  usr = case default['platform']
58
57
  when /windows/
59
58
  'Administrator'
@@ -61,16 +60,16 @@ describe "ignore" do
61
60
  'root'
62
61
  end
63
62
  describe user(usr) do
64
- it { should exist }
63
+ it { is_expected.to exist }
65
64
  end
66
65
  end
67
66
 
68
- context "serverspec: can match multiline file to multiline contents" do
67
+ context 'serverspec: can match multiline file to multiline contents' do
69
68
  contents = "four = five\n[one]\ntwo = three"
70
- create_remote_file(default, "file_with_contents.txt", contents)
71
- describe file("file_with_contents.txt") do
72
- it { should be_file }
73
- it { should contain(contents) }
69
+ create_remote_file(default, 'file_with_contents.txt', contents)
70
+ describe file('file_with_contents.txt') do
71
+ it { is_expected.to be_file }
72
+ it { is_expected.to contain(contents) }
74
73
  end
75
74
  end
76
75
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  ENV['RS_SETFILE'] ||= 'centos8-64'
2
2
 
3
- require "beaker-rspec"
3
+ require 'beaker-rspec'
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.0
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2023-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fakefs
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0.6'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0.6'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: minitest
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -25,41 +45,77 @@ dependencies:
25
45
  - !ruby/object:Gem::Version
26
46
  version: '5.4'
27
47
  - !ruby/object:Gem::Dependency
28
- name: fakefs
48
+ name: rake
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
- - - ">="
51
+ - - "~>"
32
52
  - !ruby/object:Gem::Version
33
- version: '0.6'
34
- - - "<"
53
+ version: '13.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
35
59
  - !ruby/object:Gem::Version
36
- version: '2'
60
+ version: '13.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rubocop
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.48.1
37
68
  type: :development
38
69
  prerelease: false
39
70
  version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 1.48.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop-minitest
77
+ requirement: !ruby/object:Gem::Requirement
40
78
  requirements:
41
79
  - - ">="
42
80
  - !ruby/object:Gem::Version
43
- version: '0.6'
44
- - - "<"
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
45
87
  - !ruby/object:Gem::Version
46
- version: '2'
88
+ version: '0'
47
89
  - !ruby/object:Gem::Dependency
48
- name: rake
90
+ name: rubocop-performance
49
91
  requirement: !ruby/object:Gem::Requirement
50
92
  requirements:
51
- - - "~>"
93
+ - - ">="
52
94
  - !ruby/object:Gem::Version
53
- version: '13.0'
95
+ version: '0'
54
96
  type: :development
55
97
  prerelease: false
56
98
  version_requirements: !ruby/object:Gem::Requirement
57
99
  requirements:
58
- - - "~>"
100
+ - - ">="
59
101
  - !ruby/object:Gem::Version
60
- version: '13.0'
102
+ version: '0'
61
103
  - !ruby/object:Gem::Dependency
62
- name: yard
104
+ name: rubocop-rake
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop-rspec
63
119
  requirement: !ruby/object:Gem::Requirement
64
120
  requirements:
65
121
  - - ">="
@@ -86,20 +142,40 @@ dependencies:
86
142
  - - ">="
87
143
  - !ruby/object:Gem::Version
88
144
  version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: yard
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
89
159
  - !ruby/object:Gem::Dependency
90
160
  name: beaker
91
161
  requirement: !ruby/object:Gem::Requirement
92
162
  requirements:
93
- - - ">"
163
+ - - ">="
94
164
  - !ruby/object:Gem::Version
95
- version: '3.0'
165
+ version: '4.0'
166
+ - - "<"
167
+ - !ruby/object:Gem::Version
168
+ version: '6'
96
169
  type: :runtime
97
170
  prerelease: false
98
171
  version_requirements: !ruby/object:Gem::Requirement
99
172
  requirements:
100
- - - ">"
173
+ - - ">="
101
174
  - !ruby/object:Gem::Version
102
- version: '3.0'
175
+ version: '4.0'
176
+ - - "<"
177
+ - !ruby/object:Gem::Version
178
+ version: '6'
103
179
  - !ruby/object:Gem::Dependency
104
180
  name: rspec
105
181
  requirement: !ruby/object:Gem::Requirement
@@ -153,6 +229,8 @@ files:
153
229
  - ".github/workflows/release.yml"
154
230
  - ".github/workflows/test.yml"
155
231
  - ".gitignore"
232
+ - ".rubocop.yml"
233
+ - ".rubocop_todo.yml"
156
234
  - CHANGELOG.md
157
235
  - Gemfile
158
236
  - HISTORY.md
@@ -180,7 +258,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
258
  requirements:
181
259
  - - ">="
182
260
  - !ruby/object:Gem::Version
183
- version: 2.4.0
261
+ version: 2.7.0
184
262
  - - "<"
185
263
  - !ruby/object:Gem::Version
186
264
  version: 4.0.0
@@ -190,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
268
  - !ruby/object:Gem::Version
191
269
  version: '0'
192
270
  requirements: []
193
- rubygems_version: 3.2.32
271
+ rubygems_version: 3.4.6
194
272
  signing_key:
195
273
  specification_version: 4
196
274
  summary: RSpec bindings for beaker