gem-compiler 0.5.0 → 0.6.0

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: 76146eae5124b2c492cddca593c27b5af3595b2b
4
- data.tar.gz: c39f906cd91e03f5ffb85019b2a581ed19508c9b
3
+ metadata.gz: ae2be2c71e44ef97d540eeba1f926ff4aadddc00
4
+ data.tar.gz: 6f4bea5bc8c090ec4158e47260810032c2920a69
5
5
  SHA512:
6
- metadata.gz: 75ba4bcbe505d08fc603da2836b6120e46e66bb06c34892356f87777c5eb6d63dbd797d5d92acd2d7c3e10a39c1f6a54eba04d453a4c39cbbf455c7ee0762efa
7
- data.tar.gz: 5b697f3f4a943c76ee58b620ffa7d3babb94e4b6af64f8d05cc25c1fde8b479fd495c103114d8ff436481e79651f4928130f9e7604185a8d246e870caf63b302
6
+ metadata.gz: c85477e45ef9912d6dd81fb77e4cb3a3e1aef35f309d122b1418910d115244b661b42b6ff38a6eccadaf91fa666796963ef61589c0291976c31e0ab219ed91f2
7
+ data.tar.gz: 7b4fb2ca8ccb0f9a186e9872420f8f438c21b87b13d61bdd1e9c1ea7071c6ba0d4c000865295fe424b4bd0b9baf11e63de97fc404c054ce9abcc012457c68d53
data/History.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # gem-compiler
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 0.6.0 (2017-06-25)
6
+
7
+ - Drop support for any Ruby version prior to 2.1.0
8
+ - Solve RubyGems 2.5 deprecation warnings
9
+ - Use Travis to automate new releases
10
+ - CI: Update test matrix (Travis and AppVeyor)
11
+
3
12
  ## 0.5.0 (2016-04-24)
4
13
 
5
14
  - Drop support for any Ruby version prior to 2.0.0
data/README.md CHANGED
@@ -76,12 +76,10 @@ gems. To workaround this problem you have the option to *prune* the package
76
76
  process:
77
77
 
78
78
  $ gem fetch nokogiri --platform=ruby
79
-
80
79
  Fetching: nokogiri-1.6.6.2.gem (100%)
81
80
  Downloaded nokogiri-1.6.6.2
82
81
 
83
82
  $ gem compile nokogiri-1.6.6.2.gem --prune
84
-
85
83
  Unpacking gem: 'nokogiri-1.6.6.2' in temporary directory...
86
84
  Building native extensions. This could take a while...
87
85
  Successfully built RubyGem
@@ -90,7 +88,6 @@ process:
90
88
  File: nokogiri-1.6.6.2-x86_64-darwin-12.gem
91
89
 
92
90
  $ gem install --local nokogiri-1.6.6.2-x86_64-darwin-12.gem
93
-
94
91
  Successfully installed nokogiri-1.6.6.2-x86_64-darwin-12
95
92
  1 gem installed
96
93
 
data/Rakefile CHANGED
@@ -26,11 +26,19 @@ task :info do
26
26
  end
27
27
 
28
28
  desc "Run tests"
29
- task :test => [:info] do
29
+ task test: [:info] do
30
30
  lib_dirs = ["lib", "test"].join(File::PATH_SEPARATOR)
31
- test_files = FileList["test/**/test*.rb"].gsub("test/", "")
32
31
 
33
- ruby "-I#{lib_dirs} -e \"ARGV.each { |f| require f }\" #{test_files}"
32
+ filters = (ENV["FILTER"] || ENV["TESTOPTS"] || "").dup
33
+ filters << " -n #{ENV["N"]}" if ENV["N"]
34
+
35
+ test_files = ["rubygems"]
36
+ test_files << "minitest/autorun"
37
+ test_files << FileList["test/**/test_*.rb"].gsub("test/", "")
38
+ test_files.flatten!
39
+ test_files.map! { |f| %(require "#{f}") }
40
+
41
+ ruby "-w -I#{lib_dirs} --disable-gems -e '#{test_files.join("; ")}' -- #{filters}"
34
42
  end
35
43
 
36
- task :default => [:test]
44
+ task default: [:test]
@@ -3,7 +3,7 @@ require "rubygems/command"
3
3
  class Gem::Commands::CompileCommand < Gem::Command
4
4
  def initialize
5
5
  super "compile", "Create binary pre-compiled gem",
6
- :output => Dir.pwd
6
+ output: Dir.pwd
7
7
 
8
8
  add_option "--prune", "Clean non-existing files during re-packaging" do |value, options|
9
9
  options[:prune] = true
@@ -15,12 +15,12 @@ class Gem::Compiler
15
15
  # raise when there is a error
16
16
  class CompilerError < Gem::InstallError; end
17
17
 
18
- attr_reader :tmp_dir, :target_dir, :options
18
+ attr_reader :target_dir, :options
19
19
 
20
20
  def initialize(gemfile, _options = {})
21
- @gemfile = gemfile
21
+ @gemfile = gemfile
22
22
  @output_dir = _options.delete(:output)
23
- @options = _options
23
+ @options = _options
24
24
  end
25
25
 
26
26
  def compile
@@ -61,7 +61,6 @@ class Gem::Compiler
61
61
 
62
62
  def build_extensions
63
63
  # run pre_install hooks
64
-
65
64
  if installer.respond_to?(:run_pre_install_hooks)
66
65
  installer.run_pre_install_hooks
67
66
  end
@@ -75,7 +74,7 @@ class Gem::Compiler
75
74
 
76
75
  def collect_artifacts
77
76
  # determine build artifacts from require_paths
78
- dlext = RbConfig::CONFIG["DLEXT"]
77
+ dlext = RbConfig::CONFIG["DLEXT"]
79
78
  lib_dirs = installer.spec.require_paths.join(",")
80
79
 
81
80
  Dir.glob("#{target_dir}/{#{lib_dirs}}/**/*.#{dlext}")
@@ -90,9 +89,17 @@ class Gem::Compiler
90
89
  end
91
90
 
92
91
  def installer
93
- return @installer if @installer
92
+ @installer ||= prepare_installer
93
+ end
94
94
 
95
- installer = Gem::Installer.new(@gemfile, options.dup.merge(:unpack => true))
95
+ def prepare_installer
96
+ # RubyGems 2.5 specifics
97
+ unpack_options = options.dup.merge(unpack: true)
98
+ if Gem::Installer.respond_to?(:at)
99
+ installer = Gem::Installer.at(@gemfile, unpack_options)
100
+ else
101
+ installer = Gem::Installer.new(@gemfile, options.dup.merge(unpack: true))
102
+ end
96
103
 
97
104
  # RubyGems 2.2 specifics
98
105
  if installer.spec.respond_to?(:full_gem_path=)
@@ -122,7 +129,7 @@ class Gem::Compiler
122
129
  "There are no extensions to build on this gem file."
123
130
  end
124
131
 
125
- @installer = installer
132
+ installer
126
133
  end
127
134
 
128
135
  def repackage(gemspec)
@@ -143,10 +150,10 @@ class Gem::Compiler
143
150
 
144
151
  Dir.chdir target_dir do
145
152
  output_gem = if defined?(Gem::Builder)
146
- Gem::Builder.new(gemspec).build
147
- else
148
- Gem::Package.build(gemspec)
149
- end
153
+ Gem::Builder.new(gemspec).build
154
+ else
155
+ Gem::Package.build(gemspec)
156
+ end
150
157
  end
151
158
 
152
159
  unless output_gem
@@ -166,7 +173,7 @@ class Gem::Compiler
166
173
  end
167
174
 
168
175
  def unpack
169
- basename = File.basename(@gemfile, '.gem')
176
+ basename = File.basename(@gemfile, ".gem")
170
177
  @target_dir = File.join(tmp_dir, basename)
171
178
 
172
179
  # unpack gem sources into target_dir
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gem
4
4
  class Compiler
5
- VERSION = "0.5.0"
5
+ VERSION = "0.6.0"
6
6
  end
7
7
  end
@@ -18,6 +18,6 @@ class TestGemCommandsCompileCommand < Gem::TestCase
18
18
  end
19
19
  end
20
20
 
21
- assert_match /Please specify a gem file on the command line/, e.message
21
+ assert_match %r{Please specify a gem file on the command line}, e.message
22
22
  end
23
23
  end
@@ -5,6 +5,9 @@ class TestGemCompiler < Gem::TestCase
5
5
  def setup
6
6
  super
7
7
 
8
+ # unset GEM_PATH so `rake` is found during compilation of extensions
9
+ ENV.delete("GEM_PATH")
10
+
8
11
  @output_dir = File.join @tempdir, 'output'
9
12
  FileUtils.mkdir_p @output_dir
10
13
  end
@@ -21,7 +24,7 @@ class TestGemCompiler < Gem::TestCase
21
24
  end
22
25
 
23
26
  assert_equal "There are no extensions to build on this gem file.",
24
- e.message
27
+ e.message
25
28
  end
26
29
 
27
30
  def test_compile_non_ruby
@@ -89,7 +92,7 @@ class TestGemCompiler < Gem::TestCase
89
92
  end
90
93
 
91
94
  assert_equal "old_rubygems requires RubyGems version < 0. " +
92
- "Try 'gem update --system' to update RubyGems itself.", e.message
95
+ "Try 'gem update --system' to update RubyGems itself.", e.message
93
96
  end
94
97
 
95
98
  def test_compile_succeed
@@ -108,7 +111,7 @@ class TestGemCompiler < Gem::TestCase
108
111
  out = @ui.output.split "\n"
109
112
 
110
113
  assert_match %r|Unpacking gem: 'a-1' in temporary directory...|,
111
- out.shift
114
+ out.shift
112
115
 
113
116
  assert_path_exists File.join(@output_dir, "a-1-x86-mingw32.gem")
114
117
  end
@@ -250,7 +253,6 @@ class TestGemCompiler < Gem::TestCase
250
253
  def test_compile_no_lock_ruby_abi
251
254
  util_reset_arch
252
255
 
253
- ruby_abi = RbConfig::CONFIG["ruby_version"]
254
256
  artifact = "foo.#{RbConfig::CONFIG["DLEXT"]}"
255
257
 
256
258
  gem_file = util_bake_gem("foo") { |s|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem-compiler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Lavena
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-24 00:00:00.000000000 Z
11
+ date: 2017-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.8'
33
+ version: '4.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.8'
40
+ version: '4.7'
41
41
  description: |
42
42
  A RubyGems plugin that helps generates binary gems from already existing
43
43
  ones without altering the original source code. It compiles Ruby C
@@ -68,7 +68,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 2.0.0
71
+ version: 2.1.0
72
72
  required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  version: 1.8.24
77
77
  requirements: []
78
78
  rubyforge_project:
79
- rubygems_version: 2.4.5.1
79
+ rubygems_version: 2.4.5
80
80
  signing_key:
81
81
  specification_version: 4
82
82
  summary: A RubyGems plugin that generates binary gems.