simp-rake-helpers 5.4.3 → 5.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +31 -4
- data/lib/simp/rake/build/constants.rb +7 -3
- data/lib/simp/rake/build/deps.rb +2 -0
- data/lib/simp/rake/helpers/version.rb +1 -1
- data/lib/simp/rake/pupmod/helpers.rb +204 -0
- data/spec/lib/simp/rpm_spec.rb +10 -5
- metadata +2 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 834fc98fb63f04a0f5e9bb98c275ffd42738123c
|
4
|
+
data.tar.gz: c0d3fc5372f4e3c99893e33d3e345886d41c069c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efee59c86535eaa39046ea0c06133a57e8b4a1bf4a3f4419983741a516493aaf17f590764630b44c3d2bbaeb0a0f0d6d55d4b758595e341a616b9d39f75f61b0
|
7
|
+
data.tar.gz: 3f70e19f9587f9aa5124255f3bb9305d976c107879a0f348c8cb44aff119504e98d010c7755d0a046e4156777a05956100505cfc12bb9321dfc65cb51cae6b22
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 5.5.0 / 2018-06-22
|
2
|
+
* Pin fog-openstack to 0.1.25 if Ruby is prior to 2.2.0 due to a deprecation
|
3
|
+
* Fix regression that broke env var `SIMP_BUILD_distro`
|
4
|
+
* Add support for setting SIMP_RSPEC_PUPPETFILE and/or SIMP_RSPEC_MODULEPATH to
|
5
|
+
create a custom fixtures.yml based on a Puppetfile, the modules in a
|
6
|
+
directory, or the combination of both.
|
7
|
+
|
1
8
|
### 5.4.3 / 2018-03-29
|
2
9
|
* Fix RPM release processing when generating 'Obsoletes' metadata
|
3
10
|
|
data/README.md
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
* [Gemfile](#gemfile)
|
17
17
|
* [Usage](#usage)
|
18
18
|
* [In a Puppet module](#in-a-puppet-module)
|
19
|
+
* [Environment Variables](#environment-variables)
|
19
20
|
* [In a Ruby Gem](#in-a-ruby-gem)
|
20
21
|
* [Generating RPMs](#generating-rpms)
|
21
22
|
* [RPM Changelog](#rpm-changelog)
|
@@ -99,6 +100,32 @@ require 'simp/rake/pupmod/helpers'
|
|
99
100
|
Simp::Rake::Pupmod::Helpers.new(File.dirname(__FILE__))
|
100
101
|
```
|
101
102
|
|
103
|
+
### Environment Variables
|
104
|
+
|
105
|
+
Some environment variables have been added to help you work with different
|
106
|
+
types of testing scenarios and are documented below.
|
107
|
+
|
108
|
+
By default, only the modules found in the local `.fixtures.yml` file will be
|
109
|
+
included.
|
110
|
+
|
111
|
+
* `SIMP_RSPEC_PUPPETFILE`
|
112
|
+
* Ignore the local `.fixtures.yml` and use the modules listed in the specified Puppetfile
|
113
|
+
* Downloaded items that are not Puppet modules will be removed from the
|
114
|
+
downloaded fixtures prior to testing
|
115
|
+
* Set this to a valid URL to download a remote Puppetfile for use
|
116
|
+
|
117
|
+
* `SIMP_RSPEC_MODULEPATH`
|
118
|
+
* Will ignore the local `.fixtures.yml` file and create one entirely of
|
119
|
+
symlinks that point to the modules present at the specified path.
|
120
|
+
* If specified with `SIMP_RSPEC_PUPPETFILE` then will use the
|
121
|
+
matching modules from the target directory instead of downloading them.
|
122
|
+
Modules not present in the target directory will still be downloaded.
|
123
|
+
|
124
|
+
* `SIMP_RSPEC_FIXTURES_OVERRIDE`
|
125
|
+
* Set to `yes` to ignore the local `.fixtures.yml` file
|
126
|
+
* This will cause the generated file to include **all** modules from the
|
127
|
+
Puppetfile or Module Path
|
128
|
+
|
102
129
|
### In a Ruby Gem
|
103
130
|
|
104
131
|
Within the project's Rakefile:
|
@@ -108,7 +135,7 @@ require 'simp/rake/rubygem'
|
|
108
135
|
|
109
136
|
# e.g., "simp-rake-helpers"
|
110
137
|
package = 'name-of-rubygem'
|
111
|
-
Simp::Rake::Rubygem.new(package, File.
|
138
|
+
Simp::Rake::Rubygem.new(package, File.dirname(__FILE__)
|
112
139
|
|
113
140
|
```
|
114
141
|
|
@@ -136,7 +163,7 @@ directory . The full list of files considered are:
|
|
136
163
|
├── metadata.json # REQUIRED keys: name, version, license, summary, source
|
137
164
|
├── CHANGELOG # OPTIONAL written in RPM's CHANGELOG format
|
138
165
|
└── build/ # OPTIONAL
|
139
|
-
|
166
|
+
└── rpm_metadata/ # OPTIONAL
|
140
167
|
├── release # OPTIONAL defines the RPM's "-0" release number
|
141
168
|
├── requires # OPTIONAL supplementary 'Requires','Provides','Obsoletes'
|
142
169
|
└── custom/ # OPTIONAL
|
@@ -204,8 +231,8 @@ Build the tar package for the current SIMP project
|
|
204
231
|
|
205
232
|
This is a limitation of Bundler, not the gem.
|
206
233
|
|
207
|
-
If you are running on a FIPS-enabled system, you will need to use
|
208
|
-
|
234
|
+
If you are running on a FIPS-enabled system, you will need to use
|
235
|
+
`bundler '~> 1.14.0'` or `bundler '~> 1.16'`
|
209
236
|
|
210
237
|
If you are using RVM, the appropriate steps are as follows:
|
211
238
|
|
@@ -11,9 +11,13 @@ module Simp::Rake::Build::Constants
|
|
11
11
|
$simp6 = true
|
12
12
|
$simp6_clean_dirs = []
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
if ENV['SIMP_BUILD_distro']
|
15
|
+
distro, version, arch = ENV['SIMP_BUILD_distro'].split(/,|\//)
|
16
|
+
end
|
17
|
+
|
18
|
+
@build_distro = distro || Facter.fact('operatingsystem').value
|
19
|
+
@build_version = version || Facter.fact('operatingsystemmajrelease').value
|
20
|
+
@build_arch = arch || Facter.fact('architecture').value
|
17
21
|
|
18
22
|
@run_dir = Dir.pwd
|
19
23
|
@base_dir = base_dir
|
data/lib/simp/rake/build/deps.rb
CHANGED
@@ -85,6 +85,8 @@ class R10KHelper
|
|
85
85
|
mod = {
|
86
86
|
:name => mod.name,
|
87
87
|
:path => mod.path.to_s,
|
88
|
+
:remote => mod.repo.instance_variable_get('@remote'),
|
89
|
+
:desired_ref => mod.desired_ref,
|
88
90
|
:git_source => mod.repo.repo.origin,
|
89
91
|
:git_ref => mod.repo.head,
|
90
92
|
:module_dir => mod.basedir,
|
@@ -17,6 +17,19 @@ module Simp; end
|
|
17
17
|
module Simp::Rake; end
|
18
18
|
module Simp::Rake::Pupmod; end
|
19
19
|
|
20
|
+
# From http://dan.doezema.com/2012/04/recursively-sort-ruby-hash-by-key/
|
21
|
+
class Hash
|
22
|
+
def sort_by_key(recursive = false, &block)
|
23
|
+
self.keys.sort(&block).reduce({}) do |seed, key|
|
24
|
+
seed[key] = self[key]
|
25
|
+
if recursive && seed[key].is_a?(Hash)
|
26
|
+
seed[key] = seed[key].sort_by_key(true, &block)
|
27
|
+
end
|
28
|
+
seed
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
20
33
|
# Rake tasks for SIMP Puppet modules
|
21
34
|
class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
|
22
35
|
# See https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Changelogs
|
@@ -24,11 +37,16 @@ class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
|
|
24
37
|
|
25
38
|
def initialize( base_dir = Dir.pwd )
|
26
39
|
@base_dir = base_dir
|
40
|
+
@temp_fixtures_path = File.join(base_dir,'spec','fixtures','simp_rspec')
|
41
|
+
|
42
|
+
FileUtils.mkdir_p(@temp_fixtures_path)
|
43
|
+
|
27
44
|
Dir[ File.join(File.dirname(__FILE__),'*.rb') ].each do |rake_file|
|
28
45
|
next if rake_file == __FILE__
|
29
46
|
require rake_file
|
30
47
|
end
|
31
48
|
define_tasks
|
49
|
+
|
32
50
|
end
|
33
51
|
|
34
52
|
def define_tasks
|
@@ -63,6 +81,7 @@ class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
|
|
63
81
|
|
64
82
|
Simp::Rake::Pkg.new( @base_dir ) do | t |
|
65
83
|
t.clean_list << "#{t.base_dir}/spec/fixtures/hieradata/hiera.yaml"
|
84
|
+
t.clean_list << @temp_fixtures_path
|
66
85
|
end
|
67
86
|
|
68
87
|
Simp::Rake::Beaker.new( @base_dir )
|
@@ -133,6 +152,115 @@ class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
|
|
133
152
|
result += changelogs[module_version].join
|
134
153
|
end
|
135
154
|
|
155
|
+
def custom_fixtures_hook(opts = {
|
156
|
+
:short_name => nil,
|
157
|
+
:puppetfile => nil,
|
158
|
+
:modulepath => nil,
|
159
|
+
:local_fixtures_mods => nil,
|
160
|
+
})
|
161
|
+
short_name = opts[:short_name]
|
162
|
+
puppetfile = opts[:puppetfile]
|
163
|
+
modulepath = opts[:modulepath]
|
164
|
+
local_fixtures_mods = opts[:local_fixtures_mods] || []
|
165
|
+
|
166
|
+
fail('You must pass a short module name') unless short_name
|
167
|
+
|
168
|
+
fixtures_hash = {
|
169
|
+
'fixtures' => {
|
170
|
+
'symlinks' => {
|
171
|
+
short_name => '#{source_dir}'
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
local_modules = {}
|
177
|
+
|
178
|
+
if modulepath
|
179
|
+
unless File.directory?(modulepath)
|
180
|
+
fail("Could not find a module directory at #{modulepath}")
|
181
|
+
end
|
182
|
+
|
183
|
+
# Grab all of the local modules and convert them into something
|
184
|
+
# that can be turned into a Hash easily
|
185
|
+
local_modules = Hash[Dir.glob(File.join(modulepath, '*', 'metadata.json')).map do |m|
|
186
|
+
[File.basename(File.dirname(m)), File.absolute_path(File.dirname(m))]
|
187
|
+
end]
|
188
|
+
|
189
|
+
local_modules.delete(short_name)
|
190
|
+
end
|
191
|
+
|
192
|
+
if puppetfile
|
193
|
+
fail("Could not find Puppetfile at #{puppetfile}") unless File.exist?(puppetfile)
|
194
|
+
|
195
|
+
require 'simp/rake/build/deps'
|
196
|
+
|
197
|
+
puppetfile = R10KHelper.new(puppetfile)
|
198
|
+
|
199
|
+
puppetfile.modules.each do |pupmod|
|
200
|
+
next unless pupmod[:name]
|
201
|
+
next if pupmod[:status] == :unknown
|
202
|
+
|
203
|
+
if local_modules[pupmod[:name]]
|
204
|
+
unless local_fixtures_mods.empty?
|
205
|
+
local_fixtures_mod = local_fixtures_mods.delete(pupmod[:name])
|
206
|
+
next unless local_fixtures_mod
|
207
|
+
end
|
208
|
+
|
209
|
+
fixtures_hash['fixtures']['symlinks'][pupmod[:name]] = local_modules[pupmod[:name]]
|
210
|
+
else
|
211
|
+
fixtures_hash['fixtures']['repositories'] ||= {}
|
212
|
+
|
213
|
+
unless local_fixtures_mods.empty?
|
214
|
+
local_fixtures_mod = local_fixtures_mods.delete(pupmod[:name])
|
215
|
+
next unless local_fixtures_mod
|
216
|
+
end
|
217
|
+
|
218
|
+
next unless pupmod[:remote] && pupmod[:desired_ref]
|
219
|
+
next if pupmod[:name] == short_name
|
220
|
+
|
221
|
+
fixtures_hash['fixtures']['repositories'][pupmod[:name]] = {
|
222
|
+
'repo' => pupmod[:remote],
|
223
|
+
'ref' => pupmod[:desired_ref]
|
224
|
+
}
|
225
|
+
end
|
226
|
+
end
|
227
|
+
elsif modulepath
|
228
|
+
local_modules.each_pair do |pupmod, path|
|
229
|
+
unless local_fixtures_mods.empty?
|
230
|
+
local_fixtures_mod = local_fixtures_mods.delete(pupmod)
|
231
|
+
next unless local_fixtures_mod
|
232
|
+
end
|
233
|
+
|
234
|
+
fixtures_hash['fixtures']['symlinks'][pupmod] = path
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
if local_fixtures_mods.empty?
|
239
|
+
custom_fixtures_path = File.join(@temp_fixtures_path, 'fixtures.yml')
|
240
|
+
else
|
241
|
+
custom_fixtures_path = File.join(@temp_fixtures_path, 'fixtures_tmp.yml')
|
242
|
+
end
|
243
|
+
|
244
|
+
if puppetfile || modulepath
|
245
|
+
File.open(custom_fixtures_path, 'w') do |fh|
|
246
|
+
fh.puts(fixtures_hash.sort_by_key(true).to_yaml)
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
250
|
+
unless local_fixtures_mods.empty?
|
251
|
+
errmsg = [
|
252
|
+
'===',
|
253
|
+
'The following modules in .fixtures.yml were not found in the Puppetfile:',
|
254
|
+
%{ * #{local_fixtures_mods.join("\n * ")}},
|
255
|
+
%{A temporary fixtures file has been written to #{custom_fixtures_path}},
|
256
|
+
'==='
|
257
|
+
]
|
258
|
+
|
259
|
+
fail(errmsg.join("\n"))
|
260
|
+
end
|
261
|
+
|
262
|
+
return custom_fixtures_path
|
263
|
+
end
|
136
264
|
|
137
265
|
desc <<-EOM
|
138
266
|
Generate an appropriate annotated tag entry from a CHANGELOG.
|
@@ -287,5 +415,81 @@ class Simp::Rake::Pupmod::Helpers < ::Rake::TaskLib
|
|
287
415
|
Rake::Task[:spec_clean].invoke
|
288
416
|
end
|
289
417
|
end
|
418
|
+
|
419
|
+
# This hidden task provides a way to create and use a fixtures.yml file
|
420
|
+
# based on an externally specified Puppetfile
|
421
|
+
#
|
422
|
+
# The resulting fixtures.yml will contain only those modules that are
|
423
|
+
# in the local fixtures.yml but with the version specified in the
|
424
|
+
# Puppetfile.
|
425
|
+
#
|
426
|
+
# Downloaded repos that do not contain a metadata.json will be removed
|
427
|
+
#
|
428
|
+
# Set the environment variable SIMP_RSPEC_PUPPETFILE to point to a remote Puppetfile
|
429
|
+
#
|
430
|
+
# Set the environment variable SIMP_RSPEC_FIXTURES_OVERRIDE to 'yes' to
|
431
|
+
# ignore the local fixtures.yml file.
|
432
|
+
#
|
433
|
+
# Set the environment variable SIMP_RSPEC_MODULEPATH to symlink named
|
434
|
+
# modules from the designated directory instead of downloading them.
|
435
|
+
#
|
436
|
+
# If both SIMP_RSPEC_PUPPETFILE and SIMP_RSPEC_MODULEPATH are specified,
|
437
|
+
# the Puppetfile will win.
|
438
|
+
task :custom_fixtures_hook do
|
439
|
+
# Don't do anything if the user has already set a path to their fixtures
|
440
|
+
unless ENV['FIXTURES_YML']
|
441
|
+
@custom_fixtures_hook_override_fixtures = (ENV.fetch('SIMP_RSPEC_FIXTURES_OVERRIDE', 'no') == 'yes')
|
442
|
+
|
443
|
+
opts = { :short_name => metadata['name'].split('-').last }
|
444
|
+
|
445
|
+
if ENV['SIMP_RSPEC_PUPPETFILE']
|
446
|
+
puppetfile = ENV['SIMP_RSPEC_PUPPETFILE']
|
447
|
+
|
448
|
+
puppetfile_tgt = File.join(@temp_fixtures_path, 'Puppetfile')
|
449
|
+
|
450
|
+
if puppetfile =~ %r{://}
|
451
|
+
%x{curl -k -s -o #{puppetfile_tgt} #{puppetfile}}
|
452
|
+
else
|
453
|
+
FileUtils.cp(File.absolute_path(puppetfile), puppetfile_tgt)
|
454
|
+
end
|
455
|
+
|
456
|
+
opts[:puppetfile] = puppetfile_tgt
|
457
|
+
end
|
458
|
+
|
459
|
+
if ENV['SIMP_RSPEC_MODULEPATH']
|
460
|
+
opts[:modulepath] = File.absolute_path(ENV['SIMP_RSPEC_MODULEPATH'])
|
461
|
+
end
|
462
|
+
|
463
|
+
if opts[:puppetfile] || opts[:modulepath]
|
464
|
+
unless @custom_fixtures_hook_override_fixtures
|
465
|
+
fail("Could not find '.fixtures.yml' at #{Dir.pwd}") unless File.exist?('.fixtures.yml')
|
466
|
+
|
467
|
+
opts[:local_fixtures_mods] = []
|
468
|
+
|
469
|
+
require 'yaml'
|
470
|
+
_fixtures = YAML.load_file('.fixtures.yml')['fixtures']
|
471
|
+
_fixtures.keys.each do |subset|
|
472
|
+
_fixtures[subset].each_pair do |_mod, _extra|
|
473
|
+
opts[:local_fixtures_mods] << _mod
|
474
|
+
end
|
475
|
+
end
|
476
|
+
end
|
477
|
+
|
478
|
+
fixtures_yml_path = custom_fixtures_hook(opts)
|
479
|
+
|
480
|
+
if fixtures_yml_path
|
481
|
+
ENV['FIXTURES_YML'] = fixtures_yml_path
|
482
|
+
end
|
483
|
+
end
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
487
|
+
Rake::Task['spec_prep'].enhance [:custom_fixtures_hook] do
|
488
|
+
Dir.glob(File.join('spec','fixtures','modules','*')).each do |dir|
|
489
|
+
if @custom_fixtures_hook_override_fixtures
|
490
|
+
FileUtils.remove_entry_secure(dir) unless File.exist?(File.join(dir, 'metadata.json'))
|
491
|
+
end
|
492
|
+
end
|
493
|
+
end
|
290
494
|
end
|
291
495
|
end
|
data/spec/lib/simp/rpm_spec.rb
CHANGED
@@ -3,7 +3,6 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
describe Simp::RPM do
|
5
5
|
before :all do
|
6
|
-
Simp::RPM.stubs(:system_dist).returns('.testdist')
|
7
6
|
|
8
7
|
dir = File.expand_path( 'files', File.dirname( __FILE__ ) )
|
9
8
|
@spec_file = File.join( dir, 'testpackage.spec' )
|
@@ -225,10 +224,16 @@ describe Simp::RPM do
|
|
225
224
|
|
226
225
|
context '#dist' do
|
227
226
|
it 'returns dist' do
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
227
|
+
Simp::RPM.stubs(:system_dist).returns('.testdist')
|
228
|
+
rpm_obj = Simp::RPM.new( @rpm_file )
|
229
|
+
d_rpm_obj = Simp::RPM.new( @d_rpm_file )
|
230
|
+
spec_obj = Simp::RPM.new( @spec_file )
|
231
|
+
d_spec_obj = Simp::RPM.new( @d_spec_file )
|
232
|
+
|
233
|
+
expect( rpm_obj.dist ).to eq '.testdist'
|
234
|
+
expect( d_rpm_obj.dist ).to eq '.el7'
|
235
|
+
expect( spec_obj.dist ).to eq '.testdist'
|
236
|
+
expect( d_spec_obj.dist ).to eq '.testdist'
|
232
237
|
end
|
233
238
|
|
234
239
|
it 'fails when invalid package specified' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-rake-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tessmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -267,20 +267,6 @@ dependencies:
|
|
267
267
|
- - "~>"
|
268
268
|
- !ruby/object:Gem::Version
|
269
269
|
version: '3.0'
|
270
|
-
- !ruby/object:Gem::Dependency
|
271
|
-
name: listen
|
272
|
-
requirement: !ruby/object:Gem::Requirement
|
273
|
-
requirements:
|
274
|
-
- - "~>"
|
275
|
-
- !ruby/object:Gem::Version
|
276
|
-
version: 3.0.6
|
277
|
-
type: :runtime
|
278
|
-
prerelease: false
|
279
|
-
version_requirements: !ruby/object:Gem::Requirement
|
280
|
-
requirements:
|
281
|
-
- - "~>"
|
282
|
-
- !ruby/object:Gem::Version
|
283
|
-
version: 3.0.6
|
284
270
|
- !ruby/object:Gem::Dependency
|
285
271
|
name: pry
|
286
272
|
requirement: !ruby/object:Gem::Requirement
|
@@ -329,48 +315,6 @@ dependencies:
|
|
329
315
|
- - ">"
|
330
316
|
- !ruby/object:Gem::Version
|
331
317
|
version: 1.6.1
|
332
|
-
- !ruby/object:Gem::Dependency
|
333
|
-
name: guard
|
334
|
-
requirement: !ruby/object:Gem::Requirement
|
335
|
-
requirements:
|
336
|
-
- - "~>"
|
337
|
-
- !ruby/object:Gem::Version
|
338
|
-
version: '2.0'
|
339
|
-
type: :development
|
340
|
-
prerelease: false
|
341
|
-
version_requirements: !ruby/object:Gem::Requirement
|
342
|
-
requirements:
|
343
|
-
- - "~>"
|
344
|
-
- !ruby/object:Gem::Version
|
345
|
-
version: '2.0'
|
346
|
-
- !ruby/object:Gem::Dependency
|
347
|
-
name: guard-shell
|
348
|
-
requirement: !ruby/object:Gem::Requirement
|
349
|
-
requirements:
|
350
|
-
- - "~>"
|
351
|
-
- !ruby/object:Gem::Version
|
352
|
-
version: '0.0'
|
353
|
-
type: :development
|
354
|
-
prerelease: false
|
355
|
-
version_requirements: !ruby/object:Gem::Requirement
|
356
|
-
requirements:
|
357
|
-
- - "~>"
|
358
|
-
- !ruby/object:Gem::Version
|
359
|
-
version: '0.0'
|
360
|
-
- !ruby/object:Gem::Dependency
|
361
|
-
name: guard-rspec
|
362
|
-
requirement: !ruby/object:Gem::Requirement
|
363
|
-
requirements:
|
364
|
-
- - "~>"
|
365
|
-
- !ruby/object:Gem::Version
|
366
|
-
version: '4.0'
|
367
|
-
type: :development
|
368
|
-
prerelease: false
|
369
|
-
version_requirements: !ruby/object:Gem::Requirement
|
370
|
-
requirements:
|
371
|
-
- - "~>"
|
372
|
-
- !ruby/object:Gem::Version
|
373
|
-
version: '4.0'
|
374
318
|
description: ' "simp-rake-helpers provides common methods for SIMP Rake Tasks"
|
375
319
|
|
376
320
|
'
|