rake-compiler 1.0.3 → 1.0.4

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
  SHA1:
3
- metadata.gz: 4f72eedd0e2aa8b6e09dff6eaf2a4b5d64b3b47d
4
- data.tar.gz: ccdcaf324ce4011c959c278cd04a3552d4ca2156
3
+ metadata.gz: cd44b9624dc0fb5e6f727017cb9a1c9ac9865672
4
+ data.tar.gz: 35d69b334abd18af368c1d2f4f0c4c33a8aaf54f
5
5
  SHA512:
6
- metadata.gz: c2c14d6ef462ae69a1b80b7239da013fe9d3c7e80af0582df6bb09f1f1d0327acda0edbccab15881a158cc17a8b3c3baf8ca9988f56e5c370f85279ecda482de
7
- data.tar.gz: 7a72083b3c95e41af61f5552ce39fbca484db1383e171b45d87577a72084be67999911b550747a59d04f5211ba9f3bdac4c06deb357a7800dfcc6ebb66ddc6ef
6
+ metadata.gz: 6ff91d807ddec5ce9815c07c228d26f0a7cdb83e0a76ed86d0bb66b16e29fee6fec06ab161ac3377d32f512e9e45114557150c4b4adff1104da22beee24c3027
7
+ data.tar.gz: 75047010d54066c4d961cf97aea7931e351d05e2a9a77747a1897e76cf0e812147913b05ca49aed701c1d86cd7d8f286515e413d10de8a3bc2226e1832ac5cd1
data/Gemfile CHANGED
@@ -3,6 +3,6 @@ source "https://rubygems.org"
3
3
  gem "rake"
4
4
 
5
5
  group :development do
6
- gem "rspec", "~> 2.8.0"
7
- gem "cucumber", "~> 1.1.4"
6
+ gem "rspec", "~> 3.0"
7
+ gem "cucumber", "~> 2.0"
8
8
  end
@@ -1,3 +1,14 @@
1
+ === 1.0.4 / 2017-05-27
2
+
3
+ * Enhancements:
4
+ * Migrate to RSpec 3 from RSpec 2.
5
+ * Add more tests.
6
+ #140 [Patch by Lars Kanis]
7
+ * Support C++ source files by default.
8
+ #141 [Patch by Takashi Kokubun]
9
+ * Suppress warnings.
10
+ #142 [Patch by Akira Matsuda]
11
+
1
12
  === 1.0.3 / 2016-12-02
2
13
 
3
14
  * Enhancements:
@@ -19,10 +19,10 @@ module Rake
19
19
  attr_accessor :tmp_dir
20
20
  attr_accessor :ext_dir
21
21
  attr_accessor :lib_dir
22
- attr_accessor :platform
23
22
  attr_accessor :config_options
24
23
  attr_accessor :source_pattern
25
24
  attr_accessor :extra_options
25
+ attr_writer :platform
26
26
 
27
27
  def platform
28
28
  @platform ||= RUBY_PLATFORM
@@ -10,7 +10,7 @@ module Rake
10
10
  class ExtensionTask < BaseExtensionTask
11
11
  attr_accessor :config_script
12
12
  attr_accessor :cross_compile
13
- attr_accessor :cross_platform
13
+ attr_writer :cross_platform
14
14
  attr_writer :cross_config_options
15
15
  attr_accessor :no_native
16
16
  attr_accessor :config_includes
@@ -18,14 +18,14 @@ module Rake
18
18
  def init(name = nil, gem_spec = nil)
19
19
  super
20
20
  @config_script = 'extconf.rb'
21
- @source_pattern = "*.c"
21
+ @source_pattern = "*.{c,cc,cpp}"
22
22
  @compiled_pattern = "*.{o,obj,so,bundle,dSYM}"
23
23
  @cross_compile = false
24
24
  @cross_config_options = []
25
25
  @cross_compiling = nil
26
26
  @no_native = false
27
27
  @config_includes = []
28
- @ruby_versions_per_platform = Hash.new([])
28
+ @ruby_versions_per_platform = {}
29
29
  end
30
30
 
31
31
  def cross_platform
@@ -237,7 +237,6 @@ Java extension should be preferred.
237
237
  platf = for_platform || platform
238
238
 
239
239
  # tmp_path
240
- tmp_path = "#{@tmp_dir}/#{platf}/#{@name}/#{ruby_ver}"
241
240
  stage_path = "#{@tmp_dir}/#{platf}/stage"
242
241
 
243
242
  # lib_path
@@ -255,10 +254,13 @@ Java extension should be preferred.
255
254
  spec.platform = Gem::Platform.new(platf)
256
255
 
257
256
  # set ruby version constraints
258
- cross_rubies = @ruby_versions_per_platform[platf]
257
+ ruby_versions = @ruby_versions_per_platform[platf] || []
258
+ sorted_ruby_versions = ruby_versions.sort_by do |ruby_version|
259
+ ruby_version.split(".").collect(&:to_i)
260
+ end
259
261
  spec.required_ruby_version = [
260
- ">= #{version_ary2str( cross_rubies.min[0,2] )}",
261
- "< #{version_ary2str( cross_rubies.max[0,2].succ )}"
262
+ ">= #{ruby_api_version(sorted_ruby_versions.first)}",
263
+ "< #{ruby_api_version(sorted_ruby_versions.last).succ}"
262
264
  ]
263
265
 
264
266
  # clear the extensions defined in the specs
@@ -280,12 +282,12 @@ Java extension should be preferred.
280
282
  callback.call(spec) if callback
281
283
 
282
284
  # Generate a package for this gem
283
- pkg = Gem::PackageTask.new(spec) do |pkg|
284
- pkg.need_zip = false
285
- pkg.need_tar = false
285
+ pkg = Gem::PackageTask.new(spec) do |p|
286
+ p.need_zip = false
287
+ p.need_tar = false
286
288
  # Do not copy any files per PackageTask, because
287
289
  # we need the files from the staging directory
288
- pkg.package_files.clear
290
+ p.package_files.clear
289
291
  end
290
292
 
291
293
  # copy other gem files to staging directory if added by the callback
@@ -355,7 +357,8 @@ Java extension should be preferred.
355
357
  end
356
358
 
357
359
  # Update cross compiled platform/version combinations
358
- @ruby_versions_per_platform[for_platform] << version_str2ary(version)
360
+ ruby_versions = (@ruby_versions_per_platform[for_platform] ||= [])
361
+ ruby_versions << version
359
362
 
360
363
  define_cross_platform_tasks_with_version(for_platform, version)
361
364
 
@@ -508,12 +511,8 @@ Java extension should be preferred.
508
511
  [*@cross_platform].map { |p| "native:#{p}" }
509
512
  end
510
513
 
511
- def version_str2ary(version_string)
512
- version_string[/\A[^-]+/].split(".").map(&:to_i).pack("C*")
513
- end
514
-
515
- def version_ary2str(version_ary)
516
- version_ary.unpack("C*").join(".")
514
+ def ruby_api_version(ruby_version)
515
+ ruby_version.split(".")[0, 2].join(".")
517
516
  end
518
517
 
519
518
  def fake_rb(platform, version)
@@ -77,8 +77,8 @@ describe Rake::ExtensionTask do
77
77
  @ext.lib_dir.should == 'lib'
78
78
  end
79
79
 
80
- it 'should look for C files pattern (.c)' do
81
- @ext.source_pattern.should == "*.c"
80
+ it 'should look for C/C++ files pattern (.c,.cc,.cpp)' do
81
+ @ext.source_pattern.should == "*.{c,cc,cpp}"
82
82
  end
83
83
 
84
84
  it 'should have no configuration options preset to delegate' do
@@ -94,7 +94,7 @@ describe Rake::ExtensionTask do
94
94
  end
95
95
 
96
96
  it 'should default to no cross compilation' do
97
- @ext.cross_compile.should be_false
97
+ @ext.cross_compile.should == false
98
98
  end
99
99
 
100
100
  it 'should have no configuration options for cross compilation' do
@@ -115,7 +115,7 @@ describe Rake::ExtensionTask do
115
115
 
116
116
  context '(one extension)' do
117
117
  before :each do
118
- Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.c"], [])
118
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/extension_one/source.c"], [])
119
119
  @ext = Rake::ExtensionTask.new('extension_one')
120
120
  @ext_bin = ext_bin('extension_one')
121
121
  @platform = RUBY_PLATFORM
@@ -124,7 +124,7 @@ describe Rake::ExtensionTask do
124
124
 
125
125
  context 'compile' do
126
126
  it 'should define as task' do
127
- Rake::Task.task_defined?('compile').should be_true
127
+ Rake::Task.task_defined?('compile').should == true
128
128
  end
129
129
 
130
130
  it "should depend on 'compile:{platform}'" do
@@ -134,7 +134,7 @@ describe Rake::ExtensionTask do
134
134
 
135
135
  context 'compile:extension_one' do
136
136
  it 'should define as task' do
137
- Rake::Task.task_defined?('compile:extension_one').should be_true
137
+ Rake::Task.task_defined?('compile:extension_one').should == true
138
138
  end
139
139
 
140
140
  it "should depend on 'compile:extension_one:{platform}'" do
@@ -144,7 +144,7 @@ describe Rake::ExtensionTask do
144
144
 
145
145
  context 'lib/extension_one.{so,bundle}' do
146
146
  it 'should define as task' do
147
- Rake::Task.task_defined?("lib/#{@ext_bin}").should be_true
147
+ Rake::Task.task_defined?("lib/#{@ext_bin}").should == true
148
148
  end
149
149
 
150
150
  it "should depend on 'copy:extension_one:{platform}:{ruby_ver}'" do
@@ -154,7 +154,7 @@ describe Rake::ExtensionTask do
154
154
 
155
155
  context 'tmp/{platform}/extension_one/{ruby_ver}/extension_one.{so,bundle}' do
156
156
  it 'should define as task' do
157
- Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ruby_ver}/#{@ext_bin}").should be_true
157
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ruby_ver}/#{@ext_bin}").should == true
158
158
  end
159
159
 
160
160
  it "should depend on 'tmp/{platform}/extension_one/{ruby_ver}/Makefile'" do
@@ -172,7 +172,7 @@ describe Rake::ExtensionTask do
172
172
 
173
173
  context 'tmp/{platform}/extension_one/{ruby_ver}/Makefile' do
174
174
  it 'should define as task' do
175
- Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ruby_ver}/Makefile").should be_true
175
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ruby_ver}/Makefile").should == true
176
176
  end
177
177
 
178
178
  it "should depend on 'tmp/{platform}/extension_one/{ruby_ver}'" do
@@ -201,7 +201,7 @@ describe Rake::ExtensionTask do
201
201
  end
202
202
 
203
203
  it "should warn when pre-compiled files exist in extension directory" do
204
- Rake::FileList.stub!(:[]).
204
+ allow(Rake::FileList).to receive(:[]).
205
205
  and_return(["ext/extension_one/source.c"],
206
206
  ["ext/extension_one/source.o"])
207
207
 
@@ -214,7 +214,7 @@ describe Rake::ExtensionTask do
214
214
 
215
215
  context '(extension in custom location)' do
216
216
  before :each do
217
- Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.c"], [])
217
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/extension_one/source.c"], [])
218
218
  @ext = Rake::ExtensionTask.new('extension_one') do |ext|
219
219
  ext.ext_dir = 'custom/ext/foo'
220
220
  end
@@ -232,7 +232,7 @@ describe Rake::ExtensionTask do
232
232
 
233
233
  context '(native tasks)' do
234
234
  before :each do
235
- Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.c"], [])
235
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/extension_one/source.c"], [])
236
236
  @spec = mock_gem_spec
237
237
  @ext_bin = ext_bin('extension_one')
238
238
  @platform = RUBY_PLATFORM
@@ -241,24 +241,24 @@ describe Rake::ExtensionTask do
241
241
 
242
242
  context 'native' do
243
243
  before :each do
244
- @spec.stub!(:platform=).and_return('ruby')
244
+ allow(@spec).to receive(:platform=).and_return('ruby')
245
245
  end
246
246
 
247
247
  it 'should define a task for building the supplied gem' do
248
248
  Rake::ExtensionTask.new('extension_one', @spec)
249
- Rake::Task.task_defined?('native:my_gem').should be_true
249
+ Rake::Task.task_defined?('native:my_gem').should == true
250
250
  end
251
251
 
252
252
  it 'should define as task for pure ruby gems' do
253
- Rake::Task.task_defined?('native').should be_false
253
+ Rake::Task.task_defined?('native').should == false
254
254
  Rake::ExtensionTask.new('extension_one', @spec)
255
- Rake::Task.task_defined?('native').should be_true
255
+ Rake::Task.task_defined?('native').should == true
256
256
  end
257
257
 
258
258
  it 'should not define a task for already native gems' do
259
- @spec.stub!(:platform).and_return('current')
259
+ allow(@spec).to receive(:platform).and_return('current')
260
260
  Rake::ExtensionTask.new('extension_one', @spec)
261
- Rake::Task.task_defined?('native').should be_false
261
+ Rake::Task.task_defined?('native').should == false
262
262
  end
263
263
 
264
264
  it 'should depend on platform specific native tasks' do
@@ -277,7 +277,7 @@ describe Rake::ExtensionTask do
277
277
 
278
278
  context '(one extension whose name with directory prefixes)' do
279
279
  before :each do
280
- Rake::FileList.stub!(:[]).and_return(["ext/prefix1/prefix2/extension_one/source.c"], [])
280
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/prefix1/prefix2/extension_one/source.c"], [])
281
281
  @ext = Rake::ExtensionTask.new('prefix1/prefix2/extension_one')
282
282
  @ext_bin = ext_bin('extension_one')
283
283
  @platform = RUBY_PLATFORM
@@ -286,7 +286,7 @@ describe Rake::ExtensionTask do
286
286
 
287
287
  context 'compile' do
288
288
  it 'should define as task' do
289
- Rake::Task.task_defined?('compile').should be_true
289
+ Rake::Task.task_defined?('compile').should == true
290
290
  end
291
291
 
292
292
  it "should depend on 'compile:{platform}'" do
@@ -296,7 +296,7 @@ describe Rake::ExtensionTask do
296
296
 
297
297
  context 'compile:prefix1/prefix2/extension_one' do
298
298
  it 'should define as task' do
299
- Rake::Task.task_defined?('compile:prefix1/prefix2/extension_one').should be_true
299
+ Rake::Task.task_defined?('compile:prefix1/prefix2/extension_one').should == true
300
300
  end
301
301
 
302
302
  it "should depend on 'compile:prefix1/prefix2/extension_one:{platform}'" do
@@ -306,7 +306,7 @@ describe Rake::ExtensionTask do
306
306
 
307
307
  context 'lib/prefix1/prefix2/extension_one.{so,bundle}' do
308
308
  it 'should define as task' do
309
- Rake::Task.task_defined?("lib/prefix1/prefix2/#{@ext_bin}").should be_true
309
+ Rake::Task.task_defined?("lib/prefix1/prefix2/#{@ext_bin}").should == true
310
310
  end
311
311
 
312
312
  it "should depend on 'copy:prefix1/prefix2/extension_one:{platform}:{ruby_ver}'" do
@@ -316,7 +316,7 @@ describe Rake::ExtensionTask do
316
316
 
317
317
  context 'tmp/{platform}/prefix1/prefix2/extension_one/{ruby_ver}/prefix1/prefix2/extension_one.{so,bundle}' do
318
318
  it 'should define as task' do
319
- Rake::Task.task_defined?("tmp/#{@platform}/prefix1/prefix2/extension_one/#{@ruby_ver}/prefix1/prefix2/#{@ext_bin}").should be_true
319
+ Rake::Task.task_defined?("tmp/#{@platform}/prefix1/prefix2/extension_one/#{@ruby_ver}/prefix1/prefix2/#{@ext_bin}").should == true
320
320
  end
321
321
 
322
322
  it "should depend on 'tmp/{platform}/prefix1/prefix2/extension_one/{ruby_ver}/Makefile'" do
@@ -335,21 +335,21 @@ describe Rake::ExtensionTask do
335
335
 
336
336
  context '(cross platform tasks)' do
337
337
  before :each do
338
- File.stub!(:exist?).and_return(true)
339
- YAML.stub!(:load_file).and_return(mock_config_yml)
340
- Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.c"], [])
338
+ allow(File).to receive(:exist?).and_return(true)
339
+ allow(YAML).to receive(:load_file).and_return(mock_config_yml)
340
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/extension_one/source.c"], [])
341
341
  @spec = mock_gem_spec
342
342
  @config_file = File.expand_path("~/.rake-compiler/config.yml")
343
343
  @ruby_ver = RUBY_VERSION
344
344
  @platform = 'i386-mingw32'
345
345
  @config_path = mock_config_yml["rbconfig-#{@platform}-#{@ruby_ver}"]
346
346
 
347
- File.stub!(:open).and_yield(mock_fake_rb)
347
+ allow(File).to receive(:open).and_yield(mock_fake_rb)
348
348
  end
349
349
 
350
350
  context 'if no rake-compiler configuration exists' do
351
351
  before :each do
352
- File.should_receive(:exist?).with(@config_file).and_return(false)
352
+ expect(File).to receive(:exist?).with(@config_file).and_return(false)
353
353
 
354
354
  _, @err = capture_output do
355
355
  Rake::ExtensionTask.new('extension_one') do |ext|
@@ -373,16 +373,16 @@ describe Rake::ExtensionTask do
373
373
  end
374
374
 
375
375
  it 'should parse the config file using YAML' do
376
- YAML.should_receive(:load_file).with(@config_file).and_return(mock_config_yml)
376
+ expect(YAML).to receive(:load_file).with(@config_file).and_return(mock_config_yml)
377
377
  Rake::ExtensionTask.new('extension_one') do |ext|
378
378
  ext.cross_compile = true
379
379
  end
380
380
  end
381
381
 
382
382
  it 'should warn if no section of config file defines running version of ruby' do
383
- config = mock(Hash)
384
- config.should_receive(:[]).with("rbconfig-#{@platform}-#{@ruby_ver}").and_return(nil)
385
- YAML.stub!(:load_file).and_return(config)
383
+ config = Hash.new
384
+ expect(config).to receive(:[]).with("rbconfig-#{@platform}-#{@ruby_ver}").and_return(nil)
385
+ allow(YAML).to receive(:load_file).and_return(config)
386
386
  out, err = capture_output do
387
387
  Rake::ExtensionTask.new('extension_one') do |ext|
388
388
  ext.cross_compile = true
@@ -402,9 +402,9 @@ describe Rake::ExtensionTask do
402
402
  end
403
403
 
404
404
  it 'should generate additional rake tasks if files are added when cross compiling' do
405
- config = mock(Hash)
406
- config.stub!(:[]).and_return('/rubies/1.9.1/rbconfig.rb')
407
- YAML.stub!(:load_file).and_return(config)
405
+ config = Hash.new
406
+ allow(config).to receive(:[]).and_return('/rubies/1.9.1/rbconfig.rb')
407
+ allow(YAML).to receive(:load_file).and_return(config)
408
408
 
409
409
  # Use a real spec instead of a mock because define_native_tasks dups and
410
410
  # calls methods on Gem::Specification, which is more than mock can do.
@@ -416,7 +416,7 @@ describe Rake::ExtensionTask do
416
416
  # Gem::PackageTask calls Rake::PackageTask which sets Gem.configuration.verbose,
417
417
  # which initializes Gem::ConfigFile,
418
418
  # which gets mad if it cannot find `sysconfdir`/gemrc
419
- Gem.stub_chain(:configuration, :verbose=).and_return(true)
419
+ allow(Gem).to receive_message_chain(:configuration, :verbose=).and_return(true)
420
420
 
421
421
  ENV['RUBY_CC_VERSION'] = '1.9.1'
422
422
  Rake::ExtensionTask.new('extension_one', spec) do |ext|
@@ -432,9 +432,9 @@ describe Rake::ExtensionTask do
432
432
  end
433
433
 
434
434
  it 'should allow usage of RUBY_CC_VERSION to indicate a different version of ruby' do
435
- config = mock(Hash)
436
- config.should_receive(:[]).with("rbconfig-i386-mingw32-1.9.1").and_return('/rubies/1.9.1/rbconfig.rb')
437
- YAML.stub!(:load_file).and_return(config)
435
+ config = Hash.new
436
+ expect(config).to receive(:[]).with("rbconfig-i386-mingw32-1.9.1").and_return('/rubies/1.9.1/rbconfig.rb')
437
+ allow(YAML).to receive(:load_file).and_return(config)
438
438
 
439
439
  ENV['RUBY_CC_VERSION'] = '1.9.1'
440
440
  Rake::ExtensionTask.new('extension_one') do |ext|
@@ -443,10 +443,10 @@ describe Rake::ExtensionTask do
443
443
  end
444
444
 
445
445
  it 'should allow multiple versions be supplied to RUBY_CC_VERSION' do
446
- config = mock(Hash)
447
- config.should_receive(:[]).once.with("rbconfig-i386-mingw32-1.8.6").and_return('/rubies/1.8.6/rbconfig.rb')
448
- config.should_receive(:[]).once.with("rbconfig-i386-mingw32-1.9.1").and_return('/rubies/1.9.1/rbconfig.rb')
449
- YAML.stub!(:load_file).and_return(config)
446
+ config = Hash.new
447
+ expect(config).to receive(:[]).once.with("rbconfig-i386-mingw32-1.8.6").and_return('/rubies/1.8.6/rbconfig.rb')
448
+ expect(config).to receive(:[]).once.with("rbconfig-i386-mingw32-1.9.1").and_return('/rubies/1.9.1/rbconfig.rb')
449
+ allow(YAML).to receive(:load_file).and_return(config)
450
450
 
451
451
  ENV['RUBY_CC_VERSION'] = '1.8.6:1.9.1'
452
452
  Rake::ExtensionTask.new('extension_one') do |ext|
@@ -454,25 +454,27 @@ describe Rake::ExtensionTask do
454
454
  end
455
455
  end
456
456
 
457
- it "should set required_ruby_version from RUBY_CC_VERSION" do
457
+ it "should set required_ruby_version from RUBY_CC_VERSION, set platform, clear extensions but keep metadata" do
458
458
  platforms = ["x86-mingw32", "x64-mingw32"]
459
- ruby_cc_versions = ["2.1.10", "2.2.6", "2.3.3"]
459
+ ruby_cc_versions = ["1.8.6", "2.1.10", "2.2.6", "2.3.3", "2.10.1"]
460
460
  ENV["RUBY_CC_VERSION"] = ruby_cc_versions.join(":")
461
- config = mock(Hash)
461
+ config = Hash.new
462
462
  ruby_cc_versions.each do |ruby_cc_version|
463
463
  platforms.each do |platform|
464
- config.stub!(:[]).
464
+ allow(config).to receive(:[]).
465
465
  with("rbconfig-#{platform}-#{ruby_cc_version}").
466
466
  and_return("/rubies/#{ruby_cc_version}/rbconfig.rb")
467
467
  end
468
468
  end
469
- YAML.stub!(:load_file).and_return(config)
469
+ allow(YAML).to receive(:load_file).and_return(config)
470
470
 
471
- Gem.stub_chain(:configuration, :verbose=).and_return(true)
471
+ allow(Gem).to receive_message_chain(:configuration, :verbose=).and_return(true)
472
472
 
473
473
  spec = Gem::Specification.new do |s|
474
474
  s.name = 'my_gem'
475
475
  s.platform = Gem::Platform::RUBY
476
+ s.extensions = ['ext/somegem/extconf.rb']
477
+ s.metadata['allowed_push_host'] = 'http://test'
476
478
  end
477
479
 
478
480
  cross_specs = []
@@ -488,10 +490,19 @@ describe Rake::ExtensionTask do
488
490
  end
489
491
 
490
492
  expected_required_ruby_versions = [
491
- Gem::Requirement.new([">= 2.1", "< 2.4"]),
492
- Gem::Requirement.new([">= 2.1", "< 2.4"]),
493
+ Gem::Requirement.new([">= 1.8", "< 2.11"]),
494
+ Gem::Requirement.new([">= 1.8", "< 2.11"]),
493
495
  ]
494
496
  cross_specs.collect(&:required_ruby_version).should == expected_required_ruby_versions
497
+ cross_specs.collect(&:extensions).should == [[], []]
498
+ cross_specs.collect(&:platform).collect(&:to_s).should == platforms
499
+ cross_specs.collect{|s| s.metadata['allowed_push_host']}.should == ['http://test', 'http://test']
500
+
501
+ # original gemspec should keep unchanged
502
+ spec.required_ruby_version.should == Gem::Requirement.new([">= 0"])
503
+ spec.platform.should == Gem::Platform::RUBY
504
+ spec.extensions.should == ['ext/somegem/extconf.rb']
505
+ spec.metadata['allowed_push_host'].should == 'http://test'
495
506
  end
496
507
 
497
508
  after :each do
@@ -500,9 +511,9 @@ describe Rake::ExtensionTask do
500
511
 
501
512
  context "(cross compile for multiple versions)" do
502
513
  before :each do
503
- config = mock(Hash)
504
- config.stub!(:[]).and_return('/rubies/1.8.6/rbconfig.rb', '/rubies/1.9.1/rbconfig.rb')
505
- YAML.stub!(:load_file).and_return(config)
514
+ config = Hash.new
515
+ allow(config).to receive(:[]).and_return('/rubies/1.8.6/rbconfig.rb', '/rubies/1.9.1/rbconfig.rb')
516
+ allow(YAML).to receive(:load_file).and_return(config)
506
517
 
507
518
  ENV['RUBY_CC_VERSION'] = '1.8.6:1.9.1'
508
519
  @ext = Rake::ExtensionTask.new('extension_one') do |ext|
@@ -548,7 +559,7 @@ describe Rake::ExtensionTask do
548
559
 
549
560
  context 'compile:universal-unknown' do
550
561
  it "should be defined" do
551
- Rake::Task.task_defined?('compile:universal-unknown').should be_true
562
+ Rake::Task.task_defined?('compile:universal-unknown').should == true
552
563
  end
553
564
 
554
565
  it "should depend on 'compile:extension_one:universal-unknown'" do
@@ -558,7 +569,7 @@ describe Rake::ExtensionTask do
558
569
 
559
570
  context 'native:universal-unknown' do
560
571
  it "should be defined" do
561
- Rake::Task.task_defined?('native:universal-unknown').should be_true
572
+ Rake::Task.task_defined?('native:universal-unknown').should == true
562
573
  end
563
574
 
564
575
  it "should depend on 'native:my_gem:universal-unknown'" do
@@ -596,7 +607,7 @@ describe Rake::ExtensionTask do
596
607
  end
597
608
 
598
609
  def mock_gem_spec(stubs = {})
599
- mock(Gem::Specification,
610
+ double(Gem::Specification,
600
611
  { :name => 'my_gem', :platform => 'ruby', :files => [] }.merge(stubs)
601
612
  )
602
613
  end
@@ -633,6 +644,6 @@ describe Rake::ExtensionTask do
633
644
  end
634
645
 
635
646
  def mock_fake_rb
636
- mock(File, :write => 45)
647
+ double(File, :write => 45)
637
648
  end
638
649
  end
@@ -89,7 +89,7 @@ describe Rake::JavaExtensionTask do
89
89
 
90
90
  context '(one extension)' do
91
91
  before :each do
92
- Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.java"])
92
+ allow(Rake::FileList).to receive(:[]).and_return(["ext/extension_one/source.java"])
93
93
  @ext = Rake::JavaExtensionTask.new('extension_one')
94
94
  @ext_bin = ext_bin('extension_one')
95
95
  @platform = 'java'
@@ -97,7 +97,7 @@ describe Rake::JavaExtensionTask do
97
97
 
98
98
  context 'compile' do
99
99
  it 'should define as task' do
100
- Rake::Task.task_defined?('compile').should be_true
100
+ Rake::Task.task_defined?('compile').should == true
101
101
  end
102
102
 
103
103
  it "should depend on 'compile:{platform}'" do
@@ -108,7 +108,7 @@ describe Rake::JavaExtensionTask do
108
108
 
109
109
  context 'compile:extension_one' do
110
110
  it 'should define as task' do
111
- Rake::Task.task_defined?('compile:extension_one').should be_true
111
+ Rake::Task.task_defined?('compile:extension_one').should == true
112
112
  end
113
113
 
114
114
  it "should depend on 'compile:extension_one:{platform}'" do
@@ -131,7 +131,7 @@ describe Rake::JavaExtensionTask do
131
131
 
132
132
  context 'tmp/{platform}/extension_one/extension_one.jar' do
133
133
  it 'should define as task' do
134
- Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ext_bin}").should be_true
134
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ext_bin}").should == true
135
135
  end
136
136
 
137
137
  it "should depend on checkpoint file" do
@@ -141,7 +141,7 @@ describe Rake::JavaExtensionTask do
141
141
 
142
142
  context 'tmp/{platform}/extension_one/.build' do
143
143
  it 'should define as task' do
144
- Rake::Task.task_defined?("tmp/#{@platform}/extension_one/.build").should be_true
144
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/.build").should == true
145
145
  end
146
146
 
147
147
  it 'should depend on source files' do
@@ -174,7 +174,7 @@ describe Rake::JavaExtensionTask do
174
174
  end
175
175
 
176
176
  def mock_gem_spec(stubs = {})
177
- mock(Gem::Specification,
177
+ double(Gem::Specification,
178
178
  { :name => 'my_gem', :platform => 'ruby' }.merge(stubs)
179
179
  )
180
180
  end
@@ -3,7 +3,7 @@ require 'rubygems/package_task'
3
3
  GEM_SPEC = Gem::Specification.new do |s|
4
4
  # basic information
5
5
  s.name = "rake-compiler"
6
- s.version = "1.0.3"
6
+ s.version = "1.0.4"
7
7
  s.platform = Gem::Platform::RUBY
8
8
 
9
9
  # description and details
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-02 00:00:00.000000000 Z
12
+ date: 2017-05-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake