cem_win_spec 0.1.13 → 0.1.14

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: 61c0c6e1dea6ba72b1315165ea58651ba883556db615c6f85b68990d7160b70f
4
- data.tar.gz: 4ea46fdcd7fc1af33e94be2e785488fa5ced3a67d42d871c71a54e54dbe26c5a
3
+ metadata.gz: 7d4530fab1780a403202924db23059ee908aee18579749d5309aeda74f73e1ad
4
+ data.tar.gz: a5b9e26782c793d8ccafa9cd95cec199acd2fddc04bb7d8366c637140f020d05
5
5
  SHA512:
6
- metadata.gz: 3784cc9ca46641afc1bc178365b59f9a7a77c9d9c77a39040b44d39fce4f92a4835c5b030e1a2cef14267d76a710319553dff9ab178fc801a60e1699b58a375c
7
- data.tar.gz: c3e9d6452f54cf1ceec1e824cac24814813185ff85fba0044ad643be4ab0f83fe7f12e866c533ac8a564351386e46a5e3b99f5ab3ef6867630e773b6903bf0a5
6
+ metadata.gz: 768194d5fea142be421c43082de2820c79a8d406bee1ce97b4e59a80182078de8fbeb2648a33271f40970d98d14156cc9a9854c6e5ee6b06c066be13f90070df
7
+ data.tar.gz: 40aed8c14cd610c59438f6b97f869f99563fbb38ce7a48cdda33b10041c2d72dafd143253a84ccf94acd6a98af7ddf4f6d6ec521f624462171c7dec9aaa0efa1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cem_win_spec (0.1.13)
4
+ cem_win_spec (0.1.14)
5
5
  parallel_tests (~> 3.4)
6
6
  puppet_forge (~> 6.1)
7
7
  winrm (~> 2.3)
@@ -66,6 +66,27 @@ module CemWinSpec
66
66
  end
67
67
  end
68
68
 
69
+ def install_ruby(**opts)
70
+ new_command('Install ruby', **opts) do
71
+ tool_dir = remote_ruby_tool_dir
72
+ choco_ver = remote_choco_ruby_version
73
+ ruby_ver = remote_ruby_version
74
+ next unless tool_dir && choco_ver && ruby_ver
75
+
76
+ remote_run(
77
+ [
78
+ "$rubyBin = '#{tool_dir}\\bin'",
79
+ "$uList = (uru ls 2>&1 | Out-String)",
80
+ "if (-not (Test-Path $rubyBin)) { choco install ruby --version=#{choco_ver} -y --no-progress }",
81
+ "if ($uList -notmatch '#{ruby_ver}') { uru admin add $rubyBin }",
82
+ ],
83
+ ruby_cmd: false,
84
+ add_envs: false,
85
+ chdir: false,
86
+ )
87
+ end
88
+ end
89
+
69
90
  def setup_ruby(**opts)
70
91
  @setup_ruby ||= new_command('Set up ruby', **opts) do
71
92
  remote_run(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CemWinSpec
4
- VERSION = "0.1.13"
4
+ VERSION = "0.1.14"
5
5
  end
@@ -14,9 +14,14 @@ module CemWinSpec
14
14
  '9' => '405',
15
15
  }.freeze
16
16
  TOOL_DIR_BY_RUBY_VER = {
17
- '278' => 'C:/tools/ruby/2.7.8',
18
- '322' => 'C:/tools/ruby/3.2.2',
19
- '405' => 'C:/tools/ruby/4.0.5',
17
+ '278' => 'C:\tools\ruby\2.7.8',
18
+ '322' => 'C:\tools\ruby\3.2.2',
19
+ '405' => 'C:\tools\ruby\4.0.5',
20
+ }.freeze
21
+ CHOCO_VERSION_BY_RUBY_VER = {
22
+ '278' => '2.7.8',
23
+ '322' => '3.2.2',
24
+ '405' => '4.0.5',
20
25
  }.freeze
21
26
 
22
27
  attr_accessor :working_dir, :env_vars, :puppet_version
@@ -75,6 +80,18 @@ module CemWinSpec
75
80
  PUPPET_VER_TO_RUBY_VER[puppet_version.split('.')[0]]
76
81
  end
77
82
 
83
+ def ruby_tool_dir
84
+ return nil unless ruby_version
85
+
86
+ TOOL_DIR_BY_RUBY_VER[ruby_version]
87
+ end
88
+
89
+ def choco_ruby_version
90
+ return nil unless ruby_version
91
+
92
+ CHOCO_VERSION_BY_RUBY_VER[ruby_version]
93
+ end
94
+
78
95
  # Formats the command to be run
79
96
  # @param cmd [String, Array[String]] the command to be run
80
97
  # @param ruby_cmd [Boolean] Whether the command is a ruby command and should be ran
data/lib/cem_win_spec.rb CHANGED
@@ -51,6 +51,7 @@ module CemWinSpec
51
51
  sre_out = setup_remote_environment(runner)
52
52
  working_dir = sre_out.stdout.chomp
53
53
  logger.debug "Working dir: #{working_dir}"
54
+ install_ruby(runner, **options)
54
55
  upload_out = upload_module(runner, working_dir)
55
56
  module_dir = upload_out.stdout.chomp
56
57
  logger.debug "Module dir: #{module_dir}"
@@ -128,6 +129,12 @@ module CemWinSpec
128
129
  end
129
130
  end
130
131
 
132
+ def self.install_ruby(runner, **opts)
133
+ validate_output(no_output_strat: :debug) do
134
+ runner.install_ruby(**opts).run
135
+ end
136
+ end
137
+
131
138
  def self.setup_remote_ruby(runner, module_dir, **opts)
132
139
  validate_output do
133
140
  runner.setup_ruby(operation_timeout: 300,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cem_win_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heston Snodgrass
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-08-28 00:00:00.000000000 Z
11
+ date: 2026-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: winrm