rake-compiler 1.0.3 → 1.0.4

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
  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