beaker-rspec 7.1.0 → 8.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +3 -3
- data/.github/workflows/test.yml +29 -8
- data/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +137 -0
- data/CHANGELOG.md +24 -0
- data/Gemfile +7 -7
- data/README.md +5 -5
- data/Rakefile +13 -0
- data/beaker-rspec.gemspec +20 -15
- data/lib/beaker-rspec/beaker_shim.rb +1 -2
- data/lib/beaker-rspec/helpers/serverspec.rb +53 -74
- data/lib/beaker-rspec/rake_task.rb +1 -1
- data/lib/beaker-rspec/spec_helper.rb +24 -24
- data/lib/beaker-rspec/version.rb +1 -1
- data/lib/beaker-rspec.rb +0 -1
- data/spec/acceptance/example_spec.rb +21 -22
- data/spec/spec_helper.rb +1 -1
- metadata +100 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9a5990ade11a161760e1eb40ad4486a1c8d97cb3c063d954bc29d010d7d8e3a
|
4
|
+
data.tar.gz: bdf8a2f24a26fca7a345b0e77a602fa8c9eccacefffb13a7e125221688996659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01f162c8d641d603d49eb5bb7263da970e07686ae44eda947609c328cf2840c68168e3e1ebc6d788c65fba7c70d84ab21ec2cd61da7fd8a1a0752fb475ad0f11
|
7
|
+
data.tar.gz: 6cd69c2865258e9c44948324fb1cb4aed09cc49b425f36bb4665cd7e2ebbececeaad7937478ce1473ee349fe64f337f1e64d45d2baacc8d7fffa30c9d4f3ed2e
|
data/.github/dependabot.yml
CHANGED
@@ -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@
|
14
|
-
- name: Install Ruby 3.
|
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.
|
17
|
+
ruby-version: '3.2'
|
18
18
|
bundler: 'none'
|
19
19
|
- name: Build gem
|
20
20
|
run: gem build *.gemspec
|
data/.github/workflows/test.yml
CHANGED
@@ -1,34 +1,55 @@
|
|
1
1
|
name: Test
|
2
2
|
|
3
3
|
on:
|
4
|
-
|
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
|
-
|
22
|
-
|
33
|
+
- "3.1"
|
34
|
+
- "3.2"
|
23
35
|
name: Ruby ${{ matrix.ruby }}
|
24
36
|
steps:
|
25
|
-
- uses: actions/checkout@
|
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:
|
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
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'] ||
|
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, { :
|
6
|
-
elsif place =~
|
7
|
-
['>= 0', { :
|
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, { :
|
9
|
+
[place, { require: false }]
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
if (beaker_version = ENV
|
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
|
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
|
-
|
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 =
|
5
|
+
s.name = 'beaker-rspec'
|
7
6
|
s.version = BeakerRSpec::Version::STRING
|
8
|
-
s.authors = [
|
9
|
-
s.email = [
|
10
|
-
s.homepage =
|
11
|
-
s.summary =
|
12
|
-
s.description =
|
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.
|
14
|
+
s.required_ruby_version = '>= 2.7.0', '<4.0.0'
|
16
15
|
|
17
16
|
s.files = `git ls-files`.split("\n")
|
18
|
-
s.
|
19
|
-
s.
|
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', '
|
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'
|
@@ -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
|
-
|
17
|
+
example.metadata[:node]
|
19
18
|
else
|
20
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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
|
-
|
70
|
-
|
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']
|
84
|
-
|
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(
|
107
|
-
os_class = common_class.const_get(
|
108
|
-
version_class = os_class.const_get(
|
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
|
-
|
113
|
-
|
114
|
-
|
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']
|
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
|
-
|
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
|
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
|
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
|
-
|
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, { :
|
173
|
+
r = on node, command, { acceptable_exit_codes: (0..127) }
|
189
174
|
{
|
190
|
-
:
|
191
|
-
:
|
192
|
-
:
|
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']
|
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,
|
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 =
|
242
|
-
redirection =
|
224
|
+
delete_command = 'rm -rf'
|
225
|
+
redirection = '< /dev/null'
|
243
226
|
else
|
244
|
-
delete_command =
|
245
|
-
redirection =
|
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,
|
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 'beaker-rspec/beaker_shim'
|
2
|
-
require
|
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, :
|
10
|
+
c.add_setting :hosts, default: []
|
11
11
|
# Define persistant options setting
|
12
|
-
c.add_setting :options, :
|
12
|
+
c.add_setting :options, default: {}
|
13
13
|
# Define persistant metadata object
|
14
|
-
c.add_setting :metadata, :
|
14
|
+
c.add_setting :metadata, default: {}
|
15
15
|
# Define persistant logger object
|
16
|
-
c.add_setting :logger, :
|
16
|
+
c.add_setting :logger, default: nil
|
17
17
|
# Define persistant default node
|
18
|
-
c.add_setting :default_node, :
|
18
|
+
c.add_setting :default_node, default: nil
|
19
19
|
|
20
|
-
#default option values
|
20
|
+
# default option values
|
21
21
|
defaults = {
|
22
|
-
:
|
22
|
+
nodeset: 'default',
|
23
23
|
}
|
24
|
-
#read env vars
|
24
|
+
# read env vars
|
25
25
|
env_vars = {
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
51
|
+
trap 'SIGINT' do
|
52
52
|
c.cleanup
|
53
53
|
exit!(1)
|
54
54
|
end
|
data/lib/beaker-rspec/version.rb
CHANGED
data/lib/beaker-rspec.rb
CHANGED
@@ -1,35 +1,34 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
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
|
10
|
+
example 'use self.host' do
|
12
11
|
self.hosts = hosts
|
13
12
|
end
|
14
13
|
|
15
|
-
example
|
14
|
+
example 'use DSL method' do
|
16
15
|
echo_on hosts, 'Hello World!'
|
17
16
|
end
|
18
17
|
|
19
|
-
example
|
20
|
-
|
21
|
-
|
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
|
23
|
+
example 'access the options' do
|
25
24
|
expect(options).to be_kind_of(Hash)
|
26
25
|
end
|
27
26
|
|
28
|
-
example
|
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
|
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), :
|
41
|
-
it {
|
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), :
|
51
|
-
|
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
|
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
|
-
|
63
|
+
it { is_expected.to exist }
|
65
64
|
end
|
66
65
|
end
|
67
66
|
|
68
|
-
context
|
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,
|
71
|
-
describe file(
|
72
|
-
it {
|
73
|
-
it {
|
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
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:
|
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:
|
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:
|
48
|
+
name: rake
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
|
-
- - "
|
51
|
+
- - "~>"
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
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: '
|
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
|
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: '
|
88
|
+
version: '0'
|
47
89
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
90
|
+
name: rubocop-performance
|
49
91
|
requirement: !ruby/object:Gem::Requirement
|
50
92
|
requirements:
|
51
|
-
- - "
|
93
|
+
- - ">="
|
52
94
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
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: '
|
102
|
+
version: '0'
|
61
103
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
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: '
|
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: '
|
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.
|
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.
|
271
|
+
rubygems_version: 3.4.6
|
194
272
|
signing_key:
|
195
273
|
specification_version: 4
|
196
274
|
summary: RSpec bindings for beaker
|