metasploit-version 0.1.2-java → 0.1.3-java
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 +4 -4
- data/.rspec +2 -0
- data/.travis.yml +10 -3
- data/CHANGELOG.md +6 -0
- data/CONTRIBUTING.md +10 -44
- data/Gemfile +12 -8
- data/RELEASING.md +86 -0
- data/Rakefile +5 -4
- data/UPGRADING.md +1 -0
- data/app/templates/.rspec.tt +2 -0
- data/app/templates/CHANGELOG.md.tt +18 -0
- data/app/templates/CONTRIBUTING.md.tt +122 -0
- data/app/templates/RELEASING.md.tt +99 -0
- data/app/templates/Rakefile.tt +7 -0
- data/app/templates/UPGRADING.md.tt +1 -0
- data/app/templates/lib/versioned/version.rb.tt +64 -0
- data/app/templates/spec/lib/versioned/version_spec.rb.tt +3 -0
- data/app/templates/spec/lib/versioned_spec.rb.tt +4 -0
- data/app/templates/spec/spec_helper.rb.tt +76 -0
- data/bin/metasploit-version +12 -0
- data/config/cucumber.yml +3 -0
- data/features/metasploit-version/install/add_development_dependency.feature +68 -0
- data/features/metasploit-version/install/bundle_install.feature +24 -0
- data/features/metasploit-version/install/changelog.feature +29 -0
- data/features/metasploit-version/install/conflict.feature +45 -0
- data/features/metasploit-version/install/contributing.feature +139 -0
- data/features/metasploit-version/install/namespace_spec/gem_version_constant.feature +154 -0
- data/features/metasploit-version/install/namespace_spec/namespace.feature +33 -0
- data/features/metasploit-version/install/namespace_spec/version_constant.feature +179 -0
- data/features/metasploit-version/install/rake_spec.feature +27 -0
- data/features/metasploit-version/install/releasing/ruby_versions.feature +50 -0
- data/features/metasploit-version/install/releasing/versioning.feature +138 -0
- data/features/metasploit-version/install/steps/gemspec_steps.rb +19 -0
- data/features/metasploit-version/install/upgrading.feature +19 -0
- data/features/metasploit-version/install/version.feature +11 -0
- data/features/metasploit-version/install/version/namespace.feature +157 -0
- data/features/metasploit-version/install/version/prerelease.feature +154 -0
- data/features/metasploit-version/install/version_spec/namespace.feature +32 -0
- data/features/metasploit-version/install/version_spec/testing/branch_from_master.feature +40 -0
- data/features/metasploit-version/install/version_spec/testing/branching_from_branch.feature +161 -0
- data/features/metasploit-version/install/version_spec/testing/merge_branch_to_master.feature +97 -0
- data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/environment_variable_steps.rb +1 -1
- data/features/{shared/examples/metasploit/version/version_module/prerelease/git/step_definitions → step_definitions}/git_steps.rb +11 -3
- data/features/support/env.rb +15 -11
- data/lib/metasploit/version.rb +1 -0
- data/lib/metasploit/version/cli.rb +321 -0
- data/lib/metasploit/version/version.rb +2 -2
- data/metasploit-version.gemspec +2 -2
- data/spec/lib/metasploit/version/branch_spec.rb +1 -3
- data/spec/lib/metasploit/version/cli_spec.rb +514 -0
- data/spec/lib/metasploit/version/version_spec.rb +2 -4
- data/spec/lib/metasploit/version_spec.rb +2 -4
- data/spec/spec_helper.rb +63 -1
- data/spec/support/shared/examples/metasploit/version/version_module.rb +3 -1
- metadata +81 -7
@@ -3,7 +3,7 @@ module Metasploit
|
|
3
3
|
# Holds components of {VERSION} as defined by {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0}.
|
4
4
|
module Version
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# CONSTANTS
|
7
7
|
#
|
8
8
|
|
9
9
|
# The major version number.
|
@@ -11,7 +11,7 @@ module Metasploit
|
|
11
11
|
# The minor version number, scoped to the {MAJOR} version number.
|
12
12
|
MINOR = 1
|
13
13
|
# The patch number, scoped to the {MINOR} version number.
|
14
|
-
PATCH =
|
14
|
+
PATCH = 3
|
15
15
|
|
16
16
|
#
|
17
17
|
# Module Methods
|
data/metasploit-version.gemspec
CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'metasploit-yard', '~> 1.0'
|
25
25
|
spec.add_development_dependency "rake"
|
26
26
|
|
27
|
-
|
28
27
|
if RUBY_PLATFORM =~ /java/
|
29
28
|
# markdown library for YARD to enable proper parsing of README.md and CONTRIBUTING.md
|
30
29
|
spec.add_development_dependency 'kramdown'
|
@@ -37,5 +36,6 @@ Gem::Specification.new do |spec|
|
|
37
36
|
spec.platform = Gem::Platform::RUBY
|
38
37
|
end
|
39
38
|
|
40
|
-
spec.add_runtime_dependency 'rspec'
|
39
|
+
spec.add_runtime_dependency 'rspec', '~> 3.1'
|
40
|
+
spec.add_runtime_dependency 'thor'
|
41
41
|
end
|
@@ -0,0 +1,514 @@
|
|
1
|
+
RSpec.describe Metasploit::Version::CLI do
|
2
|
+
subject(:cli) {
|
3
|
+
described_class.new
|
4
|
+
}
|
5
|
+
|
6
|
+
context 'CONSTANTS' do
|
7
|
+
context 'GEM_NAME' do
|
8
|
+
subject(:gem_name) {
|
9
|
+
described_class::GEM_NAME
|
10
|
+
}
|
11
|
+
|
12
|
+
it { is_expected.to eq('metasploit-version') }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'DEVELOPMENT_DEPENDENCY_REGEXP' do
|
16
|
+
subject(:development_dependency_regexp) {
|
17
|
+
described_class::DEVELOPMENT_DEPENDENCY_REGEXP
|
18
|
+
}
|
19
|
+
|
20
|
+
it { is_expected.to match(%q{spec.add_development_dependency 'metasploit-version'}) }
|
21
|
+
it { is_expected.to match(%q{spec.add_development_dependency "metasploit-version"}) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'commands' do
|
26
|
+
context '#install' do
|
27
|
+
subject(:install) {
|
28
|
+
cli.install
|
29
|
+
}
|
30
|
+
|
31
|
+
before(:each) do
|
32
|
+
allow(cli).to receive(:ensure_development_dependency)
|
33
|
+
allow(cli).to receive(:template)
|
34
|
+
allow(cli).to receive(:install_bundle)
|
35
|
+
allow(cli).to receive(:setup_rspec)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'calls #ensure_development_dependency' do
|
39
|
+
expect(cli).to receive(:ensure_development_dependency)
|
40
|
+
|
41
|
+
install
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'generates version.rb from a template' do
|
45
|
+
expect(cli).to receive(:template).with('lib/versioned/version.rb.tt', 'lib/metasploit/version/version.rb')
|
46
|
+
|
47
|
+
install
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'installs bundle' do
|
51
|
+
expect(cli).to receive(:install_bundle)
|
52
|
+
|
53
|
+
install
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'generates CHANGELOG.md from a template' do
|
57
|
+
expect(cli).to receive(:template).with('CHANGELOG.md.tt', 'CHANGELOG.md')
|
58
|
+
|
59
|
+
install
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'generates CONTRIBUTING.md from a template' do
|
63
|
+
expect(cli).to receive(:template).with('CONTRIBUTING.md.tt', 'CONTRIBUTING.md')
|
64
|
+
|
65
|
+
install
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'generates RELEASING.md from a template' do
|
69
|
+
expect(cli).to receive(:template).with('RELEASING.md.tt', 'RELEASING.md')
|
70
|
+
|
71
|
+
install
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'generates UPGRADING.md from a template' do
|
75
|
+
expect(cli).to receive(:template).with('UPGRADING.md.tt', 'UPGRADING.md')
|
76
|
+
|
77
|
+
install
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'setups up rspec' do
|
81
|
+
expect(cli).to receive(:setup_rspec)
|
82
|
+
|
83
|
+
install
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context '#capitalize' do
|
89
|
+
subject(:capitalize) {
|
90
|
+
cli.send(:capitalize, word)
|
91
|
+
}
|
92
|
+
|
93
|
+
context 'with single character' do
|
94
|
+
let(:word) {
|
95
|
+
'a'
|
96
|
+
}
|
97
|
+
|
98
|
+
it 'capitalizes letter' do
|
99
|
+
expect(capitalize).to eq('A')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
context 'with multiple characters' do
|
104
|
+
context 'with multiple capitals' do
|
105
|
+
let(:word) {
|
106
|
+
'hTML'
|
107
|
+
}
|
108
|
+
|
109
|
+
it 'does not change capitalization of other characters' do
|
110
|
+
expect(capitalize).to eq('HTML')
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'with underscored' do
|
115
|
+
let(:word) {
|
116
|
+
'underscored_words'
|
117
|
+
}
|
118
|
+
|
119
|
+
it 'uppercases first letter of first word' do
|
120
|
+
expect(capitalize).to eq('Underscored_words')
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
context 'with hyphenated' do
|
125
|
+
let(:word) {
|
126
|
+
'hyphenated-words'
|
127
|
+
}
|
128
|
+
|
129
|
+
it 'uppercases first letter of the first word' do
|
130
|
+
expect(capitalize).to eq('Hyphenated-words')
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
context '#development_dependency_line' do
|
137
|
+
subject(:development_dependency_line) {
|
138
|
+
cli.send(:development_dependency_line)
|
139
|
+
}
|
140
|
+
|
141
|
+
it 'calls #version_requirement' do
|
142
|
+
expect(cli).to receive(:version_requirement)
|
143
|
+
|
144
|
+
development_dependency_line
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
context '#ensure_development_dependency' do
|
149
|
+
subject(:ensure_development_dependency) {
|
150
|
+
cli.send(:ensure_development_dependency)
|
151
|
+
}
|
152
|
+
|
153
|
+
#
|
154
|
+
# lets
|
155
|
+
#
|
156
|
+
|
157
|
+
let(:gemspec) {
|
158
|
+
Tempfile.new(['gem', '.gemspec']).tap { |tempfile|
|
159
|
+
tempfile.write(
|
160
|
+
<<EOS
|
161
|
+
Gem::Specification.new do |spec|
|
162
|
+
#{line}
|
163
|
+
end
|
164
|
+
EOS
|
165
|
+
)
|
166
|
+
tempfile.flush
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
#
|
171
|
+
# Callbacks
|
172
|
+
#
|
173
|
+
|
174
|
+
before(:each) do
|
175
|
+
expect(cli).to receive(:gemspec_path).and_return(gemspec.path)
|
176
|
+
end
|
177
|
+
|
178
|
+
context "with `spec.add_development_dependency 'metasploit-version'`" do
|
179
|
+
let(:line) {
|
180
|
+
" spec.add_development_dependency 'metasploit-version'"
|
181
|
+
}
|
182
|
+
|
183
|
+
it 'adds semantic version requirement' do
|
184
|
+
ensure_development_dependency
|
185
|
+
|
186
|
+
gemspec_after = File.read(gemspec.path)
|
187
|
+
|
188
|
+
expect(gemspec_after.scan('metasploit-version').length).to eq(1)
|
189
|
+
expect(gemspec_after).to match(/spec\.add_development_dependency 'metasploit-version', '#{cli.send(:version_requirement)}'/)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
context "with `spec.add_development_dependency 'metasploit-version', <requirements>`" do
|
194
|
+
let(:line) {
|
195
|
+
" spec.add_development_dependency 'metasploit-version', '~> 0.0.0'"
|
196
|
+
}
|
197
|
+
|
198
|
+
it 'changes semantic version requirement' do
|
199
|
+
ensure_development_dependency
|
200
|
+
|
201
|
+
gemspec_after = File.read(gemspec.path)
|
202
|
+
|
203
|
+
expect(gemspec_after.scan('metasploit-version').length).to eq(1)
|
204
|
+
expect(gemspec_after).to match(/spec\.add_development_dependency 'metasploit-version', '#{cli.send(:version_requirement)}'/)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
context "without `spec.add_development_dependency 'metasploit-version'`" do
|
209
|
+
let(:line) {
|
210
|
+
''
|
211
|
+
}
|
212
|
+
|
213
|
+
it 'adds metaspoit-version as a development dependency' do
|
214
|
+
ensure_development_dependency
|
215
|
+
|
216
|
+
gemspec_after = File.read(gemspec.path)
|
217
|
+
|
218
|
+
expect(gemspec_after.scan('metasploit-version').length).to eq(1)
|
219
|
+
expect(gemspec_after).to match(/spec\.add_development_dependency 'metasploit-version', '#{cli.send(:version_requirement)}'/)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
context '#gemspec_path' do
|
225
|
+
subject(:gemspec_path) {
|
226
|
+
cli.send(:gemspec_path)
|
227
|
+
}
|
228
|
+
|
229
|
+
#
|
230
|
+
# lets
|
231
|
+
#
|
232
|
+
|
233
|
+
let(:name) {
|
234
|
+
'newgem'
|
235
|
+
}
|
236
|
+
|
237
|
+
#
|
238
|
+
# Callbacks
|
239
|
+
#
|
240
|
+
|
241
|
+
around(:each) do |example|
|
242
|
+
Dir.mktmpdir do |directory|
|
243
|
+
Dir.chdir(directory) do
|
244
|
+
Dir.mkdir(name)
|
245
|
+
|
246
|
+
Dir.chdir(name) do
|
247
|
+
example.run
|
248
|
+
end
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
context 'with 0 gemspecs' do
|
254
|
+
it 'print that no gemspecs were found' do
|
255
|
+
expect(cli.shell).to receive(:say).with('No gemspec found')
|
256
|
+
|
257
|
+
expect {
|
258
|
+
gemspec_path
|
259
|
+
}.to raise_error(SystemExit)
|
260
|
+
end
|
261
|
+
|
262
|
+
it 'exits with non-zero status' do
|
263
|
+
expect {
|
264
|
+
gemspec_path
|
265
|
+
}.to raise_error(SystemExit) { |error|
|
266
|
+
expect(error.status).not_to eq(0)
|
267
|
+
}
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
context 'with 1 gemspec' do
|
272
|
+
#
|
273
|
+
# lets
|
274
|
+
#
|
275
|
+
|
276
|
+
let(:expected_path) {
|
277
|
+
"#{name}.gemspec"
|
278
|
+
}
|
279
|
+
|
280
|
+
#
|
281
|
+
# Callbacks
|
282
|
+
#
|
283
|
+
|
284
|
+
before(:each) do
|
285
|
+
File.write(expected_path, '')
|
286
|
+
end
|
287
|
+
|
288
|
+
it 'is relative path to gemspec' do
|
289
|
+
expect(gemspec_path).to eq(expected_path)
|
290
|
+
end
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
context '#name' do
|
295
|
+
subject(:name) do
|
296
|
+
cli.send(:name)
|
297
|
+
end
|
298
|
+
|
299
|
+
#
|
300
|
+
# lets
|
301
|
+
#
|
302
|
+
|
303
|
+
let(:expected_name) {
|
304
|
+
'expected-name'
|
305
|
+
}
|
306
|
+
|
307
|
+
#
|
308
|
+
# Callbacks
|
309
|
+
#
|
310
|
+
|
311
|
+
around(:each) do |example|
|
312
|
+
Dir.mktmpdir do |directory|
|
313
|
+
Dir.chdir(directory) do
|
314
|
+
Dir.mkdir(expected_name)
|
315
|
+
|
316
|
+
Dir.chdir(expected_name) {
|
317
|
+
example.run
|
318
|
+
}
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
it 'is the basename of the pwd' do
|
324
|
+
expect(name).to eq(expected_name)
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
context 'namespace_name' do
|
329
|
+
subject(:namespace_name) {
|
330
|
+
cli.send(:namespace_name)
|
331
|
+
}
|
332
|
+
|
333
|
+
#
|
334
|
+
# lets
|
335
|
+
#
|
336
|
+
|
337
|
+
let(:namespaces) {
|
338
|
+
%w{First Second Third}
|
339
|
+
}
|
340
|
+
|
341
|
+
#
|
342
|
+
# Callbacks
|
343
|
+
#
|
344
|
+
|
345
|
+
before(:each) do
|
346
|
+
expect(cli).to receive(:namespaces).and_return([namespaces])
|
347
|
+
end
|
348
|
+
|
349
|
+
it 'joins namespaces together with Module separator' do
|
350
|
+
expect(namespace_name).to eq('First::Second::Third')
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
context '#namespaces' do
|
355
|
+
subject(:namespaces) {
|
356
|
+
cli.send(:namespaces)
|
357
|
+
}
|
358
|
+
|
359
|
+
#
|
360
|
+
# Callbacks
|
361
|
+
#
|
362
|
+
|
363
|
+
before(:each) do
|
364
|
+
expect(cli).to receive(:name).and_return(name)
|
365
|
+
end
|
366
|
+
|
367
|
+
context 'with single word' do
|
368
|
+
let(:name) {
|
369
|
+
'yard'
|
370
|
+
}
|
371
|
+
|
372
|
+
it 'is array with capitalized word' do
|
373
|
+
expect(namespaces).to eq(%w{Yard})
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
context 'with multiple words' do
|
378
|
+
context 'separated by dashes' do
|
379
|
+
let(:name) {
|
380
|
+
'metasploit-version'
|
381
|
+
}
|
382
|
+
|
383
|
+
it 'is array with each word capitalized' do
|
384
|
+
expect(namespaces).to eq(%w{Metasploit Version})
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
context 'separated by underscores' do
|
389
|
+
let(:name) {
|
390
|
+
'metasploit_data_models'
|
391
|
+
}
|
392
|
+
|
393
|
+
it 'is array with single word camelized' do
|
394
|
+
expect(namespaces).to eq(%w{MetasploitDataModels})
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
context 'separated by dashes and underscores' do
|
399
|
+
let(:name) {
|
400
|
+
'debugger-ruby_core_source'
|
401
|
+
}
|
402
|
+
|
403
|
+
it 'is array with underscored words camelized and a separate word for each pair of hyphenated separated words' do
|
404
|
+
expect(namespaces).to eq(%w{Debugger RubyCoreSource})
|
405
|
+
end
|
406
|
+
end
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
context '#namespaced_path' do
|
411
|
+
subject(:namespaced_path) {
|
412
|
+
cli.send(:namespaced_path)
|
413
|
+
}
|
414
|
+
|
415
|
+
#
|
416
|
+
# lets
|
417
|
+
#
|
418
|
+
|
419
|
+
let(:name) {
|
420
|
+
'debugger-ruby_core_source'
|
421
|
+
}
|
422
|
+
|
423
|
+
#
|
424
|
+
# Callbacks
|
425
|
+
#
|
426
|
+
|
427
|
+
before(:each) do
|
428
|
+
expect(cli).to receive(:name).and_return(name)
|
429
|
+
end
|
430
|
+
|
431
|
+
it "converts '-' to '/" do
|
432
|
+
expect(namespaced_path).not_to include('-')
|
433
|
+
expect(namespaced_path).to include('_')
|
434
|
+
expect(namespaced_path).to eq('debugger/ruby_core_source')
|
435
|
+
end
|
436
|
+
end
|
437
|
+
|
438
|
+
context '#version_requirement' do
|
439
|
+
subject(:version_requirement) {
|
440
|
+
cli.send(:version_requirement)
|
441
|
+
}
|
442
|
+
|
443
|
+
#
|
444
|
+
# lets
|
445
|
+
#
|
446
|
+
|
447
|
+
let(:major) {
|
448
|
+
1
|
449
|
+
}
|
450
|
+
|
451
|
+
let(:minor) {
|
452
|
+
2
|
453
|
+
}
|
454
|
+
|
455
|
+
let(:patch) {
|
456
|
+
3
|
457
|
+
}
|
458
|
+
|
459
|
+
#
|
460
|
+
# Callbacks
|
461
|
+
#
|
462
|
+
|
463
|
+
before(:each) do
|
464
|
+
stub_const('Metasploit::Version::Version::MAJOR', major)
|
465
|
+
stub_const('Metasploit::Version::Version::MINOR', minor)
|
466
|
+
stub_const('Metasploit::Version::Version::PATCH', patch)
|
467
|
+
|
468
|
+
if prerelease.nil?
|
469
|
+
hide_const('Metasploit::Version::Version::PRERELEASE')
|
470
|
+
else
|
471
|
+
stub_const('Metasploit::Version::Version::PRERELEASE', prerelease)
|
472
|
+
end
|
473
|
+
|
474
|
+
# Regenerate GEM_VERSION to use stub_const and remove_const values
|
475
|
+
stub_const('Metasploit::Version::GEM_VERSION', Metasploit::Version::Version.gem)
|
476
|
+
end
|
477
|
+
|
478
|
+
context 'with Metasploit::Version::Version::PRERELEASE' do
|
479
|
+
let(:prerelease) {
|
480
|
+
'super-cool'
|
481
|
+
}
|
482
|
+
|
483
|
+
it "is '= <GEM_VERSION>'" do
|
484
|
+
expect(version_requirement).to eq('= 1.2.3.pre.super.pre.cool')
|
485
|
+
end
|
486
|
+
end
|
487
|
+
|
488
|
+
context 'without Metasploit::Version::Version::PRERELEASE' do
|
489
|
+
let(:prerelease) {
|
490
|
+
nil
|
491
|
+
}
|
492
|
+
|
493
|
+
context 'with Metasploit::Version::Version::MAJOR < 1' do
|
494
|
+
let(:major) {
|
495
|
+
0
|
496
|
+
}
|
497
|
+
|
498
|
+
it "is '~> <MAJOR>.<MINOR>.<PATCH>'" do
|
499
|
+
expect(version_requirement).to eq('~> 0.2.3')
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
503
|
+
context 'with Metasploit::Version::Version::MAJOR >= 1' do
|
504
|
+
let(:major) {
|
505
|
+
1
|
506
|
+
}
|
507
|
+
|
508
|
+
it "is '~> <MAJOR>.<MINOR>'" do
|
509
|
+
expect(version_requirement).to eq('~> 1.2')
|
510
|
+
end
|
511
|
+
end
|
512
|
+
end
|
513
|
+
end
|
514
|
+
end
|