cem_acpt 0.2.6-universal-java-17 → 0.2.9-universal-java-17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a59b5c56bf7b9c5bf417fc95eb7afe0557b84635098cd5de92e2649d53b4cdd
4
- data.tar.gz: 2cb8332995cadfd7bcbdc80b728aae8a10d313441e42fbc1cdafdbbe5ca9b697
3
+ metadata.gz: d4181b3fae3e4d3f0029314896873f2f604374cc4583473b0b05e689464d346f
4
+ data.tar.gz: 5e01be5d223962785a18e685f17cc1c3cd393f705cd2b5df174327a8631e1598
5
5
  SHA512:
6
- metadata.gz: 6fb1eef1dae934942b004e5b615d847079afa0c887aabf5d3df084c960b73fe03a847c38a17b2019fe43ed90da608f345f9e46454e400c36d6e604a7f136a41c
7
- data.tar.gz: 2369b28c8d7d3c40692dd4fc6522ad0fbec9e40d4cf33eb1a63c7baada1ec6b28eb87e9a78a79dff8f2474a3767890a02f1c2f5dd848925ac769b9e976ff958e
6
+ metadata.gz: e9dc631cf11d32f85405358a8bc4e8501afc290a15ed68e80688472de838cfdd81cf09e9a10d346f396de6f1c2505188c443c60e0d4b106b346fd77f079c311c
7
+ data.tar.gz: 7866ca7c6272369e15c2fbf3f2dd69ce6d6caf6d059b08ad686e7b2fcaf5d63d5d093dbfac076c4c68f3ac7c07f4bcacc2bcd01107667531e069821c00e90313
data/Gemfile CHANGED
@@ -1,9 +1,8 @@
1
- source "https://rubygems.org"
2
-
3
- ruby '2.6.8', engine: 'jruby', engine_version: '>= 9.3.3.0'
1
+ # frozen_string_literal: true
2
+ source 'https://rubygems.org'
4
3
 
5
4
  # Specify your gem's dependencies in cem_acpt.gemspec
6
5
  gemspec
7
6
 
8
- gem "rake", "~> 12.0"
9
- gem "rspec", "~> 3.0"
7
+ gem 'rake', '>= 12.0'
8
+ gem 'rspec', '>= 3.0'
data/Gemfile.lock CHANGED
@@ -1,14 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cem_acpt (0.2.6-universal-java-17)
5
- concurrent-ruby (~> 1.1.9)
6
- deep_merge (~> 1.2.2)
4
+ cem_acpt (0.2.9-universal-java-17)
5
+ concurrent-ruby (>= 1.1, < 2.0)
6
+ deep_merge (>= 1.2, < 2.0)
7
7
  ed25519 (>= 1.2, < 2.0)
8
- net-ssh (~> 7.0.0.beta1)
9
- puppet-modulebuilder (> 0.0.1)
10
- rake
11
- rspec
8
+ net-ssh (>= 7.0, < 8.0)
9
+ puppet-modulebuilder (>= 0.0.1)
12
10
  serverspec-cem-acpt
13
11
 
14
12
  GEM
@@ -33,7 +31,7 @@ GEM
33
31
  minitar (~> 0.9)
34
32
  pathspec (>= 0.2.1, < 2.0.0)
35
33
  rainbow (3.1.1)
36
- rake (12.3.3)
34
+ rake (13.0.6)
37
35
  regexp_parser (2.5.0)
38
36
  rexml (3.2.5)
39
37
  rspec (3.11.0)
@@ -82,12 +80,9 @@ PLATFORMS
82
80
 
83
81
  DEPENDENCIES
84
82
  cem_acpt!
85
- rake (~> 12.0)
86
- rspec (~> 3.0)
83
+ rake (>= 12.0)
84
+ rspec (>= 3.0)
87
85
  rubocop
88
86
 
89
- RUBY VERSION
90
- ruby 2.6.8p0 (jruby 9.3.3.0)
91
-
92
87
  BUNDLED WITH
93
88
  2.3.15
data/cem_acpt.gemspec CHANGED
@@ -27,13 +27,11 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ['lib']
29
29
  spec.platform = Gem::Platform.local
30
- spec.add_runtime_dependency 'concurrent-ruby', '~> 1.1.9'
31
- spec.add_runtime_dependency 'deep_merge', '~> 1.2.2'
32
- spec.add_runtime_dependency 'net-ssh', '~> 7.0.0.beta1'
30
+ spec.add_runtime_dependency 'concurrent-ruby', '>= 1.1', '< 2.0'
31
+ spec.add_runtime_dependency 'deep_merge', '>= 1.2', '< 2.0'
33
32
  spec.add_runtime_dependency 'ed25519', '>= 1.2', '< 2.0'
34
- spec.add_runtime_dependency 'puppet-modulebuilder', '> 0.0.1'
35
- spec.add_runtime_dependency 'rake'
36
- spec.add_runtime_dependency 'rspec'
33
+ spec.add_runtime_dependency 'net-ssh', '>= 7.0', '< 8.0'
34
+ spec.add_runtime_dependency 'puppet-modulebuilder', '>= 0.0.1'
37
35
  spec.add_runtime_dependency 'serverspec-cem-acpt'
38
36
  spec.add_development_dependency 'rubocop'
39
37
  end
@@ -12,13 +12,17 @@ module CemAcpt
12
12
  class BundlerNotFoundError < StandardError; end
13
13
  class RSpecNotFoundError < StandardError; end
14
14
 
15
- # Holds and formats a RSpec command
16
- class Command
17
- include CemAcpt::LoggingAsync
18
- attr_reader :debug, :format, :test_path, :use_bundler, :pty_pid
15
+ # Holds RSpec options used by Command
16
+ class Options
17
+ OPTIONS = %i[test_path bundle rspec use_bundler bundle_install format debug quiet env].freeze
19
18
 
19
+ attr_accessor(*OPTIONS)
20
+
21
+ # @param config [CemAcpt::Config] A config object
20
22
  # @param opts [Hash] options hash for the RSpec command
21
23
  # @option opts [String] :test_path The path (or glob path) to the test file(s) to run. If blank, runs all.
24
+ # @option opts [String] :bundle The path to the `bundle` binary.
25
+ # @option opts [String] :rspec The path to the `rspec` binary.
22
26
  # @option opts [Hash] :format Format options for rspec where the key is the format (documentation, json, etc)
23
27
  # and the value is the out-file path. If you do not want to save the results of a format to a file, the
24
28
  # value should be `nil`.
@@ -30,56 +34,97 @@ module CemAcpt
30
34
  # Default is `true`.
31
35
  # @option opts [Boolean] :bundle_install Whether or not to run `bundle install` before the RSpec command
32
36
  # if `use_bundler` is `true`.
33
- # @option opts [Boolean] :use_shell Whether or not to add `$SHELL` as a prefix to the command
34
37
  # @option opts [Hash] :env Environment variables to prepend to the command
35
- def initialize(opts = {})
36
- @test_path = opts[:test_path]&.shellescape
37
- @format = opts.fetch(:format, {})
38
- @debug = opts.fetch(:debug, false)
39
- @quiet = @debug ? false : opts.fetch(:quiet, false)
40
- @use_bundler = opts.fetch(:use_bundler, false)
41
- @bundle_install = opts.fetch(:bundle_install, false)
42
- @env = opts.fetch(:env, {})
43
- @pty_pid = nil
44
- validate_and_set_bin_paths(opts)
38
+ def initialize(config, **opts)
39
+ @config = config
40
+ @opts = opts
41
+ define_option_instance_vars
42
+ end
43
+
44
+ # Finds and sets the paths to the `bundle` and `rspec` binaries. The paths can
45
+ # be either passed in as options in the `opts` Hash or interrogated from the
46
+ # system.
47
+ # @raise [CemAcpt::RSpecUtils::BundlerNotFoundError] if `@use_bundler` is true and
48
+ # `bundle` binary is not found.
49
+ # @raise [CemAcpt::RSpecUtils::RSpecNotFoundError] if `rspec` binary is not found.
50
+ def resolve_bin_paths
51
+ %i[bundle rspec].each do |bin|
52
+ bin_path = instance_variable_get("@#{bin}") || `#{ENV['SHELL']} -c 'command -v #{bin}'`.strip
53
+ bin_not_found(bin, bin_path) unless bin_path && File.exist?(bin_path)
54
+ instance_variable_set("@#{bin}", bin_path)
55
+ end
56
+ end
57
+
58
+ # Detects if the current Ruby context is JRuby
59
+ def jruby?
60
+ Object.const_defined?('JRUBY_VERSION')
45
61
  end
46
62
 
47
- # Sets debug mode to `true`
48
- def set_debug
49
- @debug = true
50
- if @quiet
51
- async_debug('Setting :quiet to false because :debug is now true.')
52
- @quiet = false
63
+ private
64
+
65
+ def defaults
66
+ @defaults ||= { use_bundler: false,
67
+ bundle_install: false,
68
+ format: { documentation: nil },
69
+ debug: false,
70
+ quiet: false,
71
+ env: {} }
72
+ end
73
+
74
+ def define_option_instance_vars
75
+ OPTIONS.each do |o|
76
+ val = @config.get("rspec.#{o}") || @opts[o] || defaults[o] || nil
77
+ instance_variable_set("@#{o}", val)
53
78
  end
54
79
  end
55
80
 
56
- # Sets debug mode to `false`
57
- def unset_debug
58
- @debug = false
81
+ # Handles binary paths which are not found
82
+ # @param bin [Symbol] The binary that was not found, either :bundle or :rspec.
83
+ # @param bin_path [String] The path to the binary that was checked.
84
+ # @raise [CemAcpt::RSpecUtils::BundlerNotFoundError] if `@use_bundler` is true and
85
+ # `bundle` binary is not found.
86
+ # @raise [CemAcpt::RSpecUtils::RSpecNotFoundError] if `rspec` binary is not found.
87
+ # @raise [RuntimeError] if `bin` is not :bundle or :rspec.
88
+ def bin_not_found(bin, bin_path)
89
+ msg_base = "#{bin} not found."
90
+ msg = bin_path.nil? ? "#{msg_base} Path is nil." : "#{msg_base} Path: #{bin_path}"
91
+ case bin
92
+ when :bundle
93
+ raise BundlerNotFoundError, msg if opts.use_bundler
94
+ when :rspec
95
+ raise RSpecNotFoundError, msg
96
+ else
97
+ raise "bin #{bin} not recognized!"
98
+ end
59
99
  end
100
+ end
101
+
102
+ # Holds and formats a RSpec command
103
+ class Command
104
+ include CemAcpt::LoggingAsync
105
+ attr_reader :opts, :pty_pid
106
+
107
+ def initialize(opts = Options.new)
108
+ raise 'opts must be instance of CemAcpt::RSpecUtils::Options' unless opts.is_a?(CemAcpt::RSpecUtils::Options)
60
109
 
61
- def quiet
62
- @quiet && !debug
110
+ @opts = opts
111
+ @opts.resolve_bin_paths
112
+ @opts.env = @opts.env.merge({ 'RSPEC_DEBUG' => 'true' }) if @opts.debug
113
+ @pty_pid = nil
63
114
  end
64
115
 
65
116
  # Adds a new format to the RSpec command
66
117
  # @param fmt [String] The name of the format (i.e. "documentation", "json", etc.)
67
118
  # @param out [String] If specified, saves the specified format to a file at this path
68
119
  def with_format(fmt, out: nil)
69
- @format[fmt.to_sym] = out
70
- end
71
-
72
- # Environment variables that will be used for the RSpec command
73
- # @return [Hash] A Hash of environment variables with each key pair being: <var name> => <var value>
74
- def env
75
- @debug ? @env.merge({ 'RSPEC_DEBUG' => 'true' }) : @env
120
+ opts.format[fmt.to_sym] = out
76
121
  end
77
122
 
78
123
  # Returns an array representation of the RSpec command
79
124
  def to_a
80
125
  cmd = cmd_base.dup
81
- cmd << test_path if test_path
82
- format.each do |fmt, out|
126
+ cmd << opts.test_path if opts.test_path
127
+ opts.format.each do |fmt, out|
83
128
  cmd += ['--format', fmt.to_s.shellescape]
84
129
  cmd += ['--out', out.to_s.shellescape] if out
85
130
  end
@@ -112,12 +157,12 @@ module CemAcpt
112
157
  # @return [Integer] The exit code of the RSpec command
113
158
  def execute_pty(log_prefix: 'RSPEC')
114
159
  async_debug("Executing RSpec command '#{self}' in PTY...", log_prefix)
115
- PTY.spawn(env, ENV['SHELL']) do |r, w, pid|
160
+ PTY.spawn(opts.env, ENV['SHELL']) do |r, w, pid|
116
161
  @pty_pid = pid
117
162
  async_debug("Spawned RSpec PTY with PID #{@pty_pid}", log_prefix)
118
163
  export_envs(w)
119
164
  w.puts "#{self}; exit $?"
120
- quiet ? wait_io(r) : read_io(r, log_prefix: log_prefix)
165
+ handle_io(r, log_prefix: log_prefix)
121
166
  end
122
167
  $CHILD_STATUS
123
168
  end
@@ -130,9 +175,9 @@ module CemAcpt
130
175
  def execute_no_pty(log_prefix: 'RSPEC')
131
176
  async_info("Executing RSpec command '#{self}' with Open3.popen2e()...", log_prefix)
132
177
  exit_status = nil
133
- Open3.popen2e(env, to_s) do |stdin, std_out_err, wait_thr|
178
+ Open3.popen2e(opts.env, to_s) do |stdin, std_out_err, wait_thr|
134
179
  stdin.close
135
- quiet ? wait_io(std_out_err) : read_io(std_out_err, log_prefix: log_prefix)
180
+ handle_io(std_out_err, log_prefix: log_prefix)
136
181
  exit_status = wait_thr.value
137
182
  end
138
183
  exit_status
@@ -147,26 +192,21 @@ module CemAcpt
147
192
 
148
193
  private
149
194
 
150
- # Detects if the current Ruby context is JRuby
151
- def jruby?
152
- File.basename(RbConfig.ruby) == 'jruby'
153
- end
154
-
155
195
  # The base RSpec command
156
196
  def cmd_base
157
- use_bundler ? cmd_base_bundler : cmd_base_rspec
197
+ opts.use_bundler ? cmd_base_bundler : cmd_base_rspec
158
198
  end
159
199
 
160
200
  # The base RSpec command if `:use_bundler` is `true`.
161
201
  def cmd_base_bundler
162
- base = [@bundle, 'exec', 'rspec']
163
- base.unshift("#{@bundle} install;") if @bundle_install
202
+ base = [opts.bundle, 'exec', 'rspec']
203
+ base.unshift("#{opts.bundle} install;") if opts.bundle_install
164
204
  base
165
205
  end
166
206
 
167
207
  # The base RSpec command if `:use_bundler` is `false`
168
208
  def cmd_base_rspec
169
- [@rspec]
209
+ [opts.rspec]
170
210
  end
171
211
 
172
212
  # Puts export statements for each key-value pair in `env` to the given writer.
@@ -174,46 +214,14 @@ module CemAcpt
174
214
  # pass the statements to a shell.
175
215
  # @param writer [IO] An IO object that supprts `puts` and can send statements to a shell
176
216
  def export_envs(writer)
177
- env.each do |key, val|
217
+ @opts.env.each do |key, val|
178
218
  writer.puts "export #{key}=#{val}"
179
219
  end
180
220
  end
181
221
 
182
- # Finds and sets the paths to the `bundle` and `rspec` binaries. The paths can
183
- # be either passed in as options in the `opts` Hash or interrogated from the
184
- # system.
185
- # @param opts [Hash] The options hash
186
- # @option opts [String] :bundle An absolute path on the system to the `bundle` binary.
187
- # @option opts [String] :rspec An absolute path on the system to the `rspec` binary.
188
- # @raise [CemAcpt::RSpecUtils::BundlerNotFoundError] if `@use_bundler` is true and
189
- # `bundle` binary is not found.
190
- # @raise [CemAcpt::RSpecUtils::RSpecNotFoundError] if `rspec` binary is not found.
191
- def validate_and_set_bin_paths(opts = {})
192
- %i[bundle rspec].each do |bin|
193
- bin_path = opts[bin] || `command -v #{bin}`.strip
194
- bin_not_found(bin, bin_path) unless bin_path && File.exist?(bin_path)
195
- instance_variable_set("@#{bin}", bin_path)
196
- end
197
- end
198
-
199
- # Handles binary paths which are not found
200
- # @param bin [Symbol] The binary that was not found, either :bundle or :rspec.
201
- # @param bin_path [String] The path to the binary that was checked.
202
- # @raise [CemAcpt::RSpecUtils::BundlerNotFoundError] if `@use_bundler` is true and
203
- # `bundle` binary is not found.
204
- # @raise [CemAcpt::RSpecUtils::RSpecNotFoundError] if `rspec` binary is not found.
205
- # @raise [RuntimeError] if `bin` is not :bundle or :rspec.
206
- def bin_not_found(bin, bin_path)
207
- msg_base = "#{bin} not found."
208
- msg = bin_path.nil? ? "#{msg_base} Path is nil." : "#{msg_base} Path: #{bin_path}"
209
- case bin
210
- when :bundle
211
- raise BundlerNotFoundError, msg if @use_bundler
212
- when :rspec
213
- raise RSpecNotFoundError, msg
214
- else
215
- raise "bin #{bin} not recognized!"
216
- end
222
+ # Handles IO output
223
+ def handle_io(io_stream, **kwargs)
224
+ opts.quiet ? wait_io(io_stream) : read_io(io_stream, log_prefix: kwargs[:log_prefix])
217
225
  end
218
226
 
219
227
  # Blocking wait on an IO stream. Wait stops once the IO stream has reached
@@ -9,6 +9,7 @@ require_relative 'runner_result'
9
9
  module CemAcpt
10
10
  module TestRunner
11
11
  class RunnerError < StandardError; end
12
+
12
13
  # Error used to wrap fatal errors raised in Runner steps
13
14
  class RunnerStepError < StandardError
14
15
  attr_reader :step
@@ -19,6 +20,7 @@ module CemAcpt
19
20
  set_backtrace err.backtrace if err.respond_to?(:backtrace)
20
21
  end
21
22
  end
23
+
22
24
  class RunnerProvisionError < RunnerStepError; end
23
25
 
24
26
  # Runner is a class that runs a single acceptance test suite on a single node.
@@ -143,12 +145,12 @@ module CemAcpt
143
145
  async_info("Running test #{@node.test_data[:test_name]} on node #{@node.node_name}...", log_prefix('RSPEC'))
144
146
  @node.run_tests do |cmd_env|
145
147
  cmd_opts = rspec_opts
146
- cmd_opts[:env].merge!(cmd_env) if cmd_env
148
+ cmd_opts.env = cmd_opts.env.merge(cmd_env) if cmd_env
147
149
  # Documentation format gets logged in real time, JSON file is read after the fact
148
150
  begin
149
151
  @rspec_cmd = CemAcpt::RSpecUtils::Command.new(cmd_opts)
150
- @rspec_cmd.execute(log_prefix: log_prefix('RSPEC'))
151
- @run_result.from_json_file(cmd_opts[:format][:json])
152
+ @rspec_cmd.execute(pty: false, log_prefix: log_prefix('RSPEC'))
153
+ @run_result.from_json_file(cmd_opts.format[:json])
152
154
  rescue Errno::EIO => e
153
155
  async_error("failed to run rspec: #{@node.test_data[:test_name]}: #{$ERROR_INFO}", log_prefix('RSPEC'))
154
156
  @run_result.from_error(e)
@@ -189,21 +191,21 @@ module CemAcpt
189
191
 
190
192
  # Options used with RSpec
191
193
  def rspec_opts
192
- opts = {
193
- test_path: @node.test_data[:test_file],
194
- use_bundler: false,
195
- bundle_install: false,
196
- format: {
197
- json: "results_#{@node.test_data[:test_name]}.json",
198
- },
199
- debug: (@debug_mode && @context.config.get('verbose')),
200
- quiet: @context.config.get('quiet'),
201
- env: {
202
- 'TARGET_HOST' => @node.node_name,
203
- }
204
- }
205
- opts[:format][:documentation] = nil unless @context.config.get('verbose')
206
- opts
194
+ opts_test_path = @node.test_data[:test_file]
195
+ opts_env = { 'TARGET_HOST' => @node.node_name }
196
+ opts_debug = (@debug_mode && @context.config.get('verbose'))
197
+ opts_quiet = @context.config.get('quiet')
198
+ opts_format = if @context.config.get('verbose')
199
+ { json: "results_#{@node.test_data[:test_name]}.json", documentation: nil }
200
+ else
201
+ { json: "results_#{@node.test_data[:test_name]}.json" }
202
+ end
203
+ CemAcpt::RSpecUtils::Options.new(@context.config,
204
+ test_path: opts_test_path,
205
+ env: opts_env,
206
+ debug: opts_debug,
207
+ quiet: opts_quiet,
208
+ format: opts_format)
207
209
  end
208
210
  end
209
211
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CemAcpt
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.9'
5
5
  end
metadata CHANGED
@@ -1,57 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cem_acpt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.9
5
5
  platform: universal-java-17
6
6
  authors:
7
7
  - puppetlabs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-27 00:00:00.000000000 Z
11
+ date: 2022-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.1'
19
+ - - "<"
17
20
  - !ruby/object:Gem::Version
18
- version: 1.1.9
21
+ version: '2.0'
19
22
  name: concurrent-ruby
20
23
  prerelease: false
21
24
  type: :runtime
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 1.1.9
32
+ version: '2.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  requirement: !ruby/object:Gem::Requirement
29
35
  requirements:
30
- - - "~>"
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.2'
39
+ - - "<"
31
40
  - !ruby/object:Gem::Version
32
- version: 1.2.2
41
+ version: '2.0'
33
42
  name: deep_merge
34
43
  prerelease: false
35
44
  type: :runtime
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.2.2
41
- - !ruby/object:Gem::Dependency
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
47
+ - - ">="
45
48
  - !ruby/object:Gem::Version
46
- version: 7.0.0.beta1
47
- name: net-ssh
48
- prerelease: false
49
- type: :runtime
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
49
+ version: '1.2'
50
+ - - "<"
53
51
  - !ruby/object:Gem::Version
54
- version: 7.0.0.beta1
52
+ version: '2.0'
55
53
  - !ruby/object:Gem::Dependency
56
54
  requirement: !ruby/object:Gem::Requirement
57
55
  requirements:
@@ -72,48 +70,40 @@ dependencies:
72
70
  - - "<"
73
71
  - !ruby/object:Gem::Version
74
72
  version: '2.0'
75
- - !ruby/object:Gem::Dependency
76
- requirement: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - ">"
79
- - !ruby/object:Gem::Version
80
- version: 0.0.1
81
- name: puppet-modulebuilder
82
- prerelease: false
83
- type: :runtime
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">"
87
- - !ruby/object:Gem::Version
88
- version: 0.0.1
89
73
  - !ruby/object:Gem::Dependency
90
74
  requirement: !ruby/object:Gem::Requirement
91
75
  requirements:
92
76
  - - ">="
93
77
  - !ruby/object:Gem::Version
94
- version: '0'
95
- name: rake
78
+ version: '7.0'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '8.0'
82
+ name: net-ssh
96
83
  prerelease: false
97
84
  type: :runtime
98
85
  version_requirements: !ruby/object:Gem::Requirement
99
86
  requirements:
100
87
  - - ">="
101
88
  - !ruby/object:Gem::Version
102
- version: '0'
89
+ version: '7.0'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '8.0'
103
93
  - !ruby/object:Gem::Dependency
104
94
  requirement: !ruby/object:Gem::Requirement
105
95
  requirements:
106
96
  - - ">="
107
97
  - !ruby/object:Gem::Version
108
- version: '0'
109
- name: rspec
98
+ version: 0.0.1
99
+ name: puppet-modulebuilder
110
100
  prerelease: false
111
101
  type: :runtime
112
102
  version_requirements: !ruby/object:Gem::Requirement
113
103
  requirements:
114
104
  - - ">="
115
105
  - !ruby/object:Gem::Version
116
- version: '0'
106
+ version: 0.0.1
117
107
  - !ruby/object:Gem::Dependency
118
108
  requirement: !ruby/object:Gem::Requirement
119
109
  requirements: