thermite 0.7.0 → 0.8.0

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: 39f322b4da859f7e40da6a34e28af9cece1266d1
4
- data.tar.gz: f185a33fa330c7e8e9bd79f3b6e006a8a64dc5f9
3
+ metadata.gz: 9902385f6d7c70426db6c25fabe306a29034e7fc
4
+ data.tar.gz: 4618e00a6dfb06afef4ab73675b9f45bdf892b7b
5
5
  SHA512:
6
- metadata.gz: 27c5e1722048accc76e5cc6f92609aaf1e2a83188d4a19953158fb67d95b0de30333919d8acecf6604f08768ea84379d34878344af462cda96e4999ccd480acd
7
- data.tar.gz: 1442ca9c640268a5905ffce5735f23e8b77680253c342ae242ca7e5a633b3d44a29da8f6f051b6fbb9e14eafd3780e1c05992e6755c7eaed75d3d629f9f6c076
6
+ metadata.gz: 68aa59bb0dc5129afc1cd63d56ccf6e10de7ea30199dddda075edcc2d3320563ab6a0dc73ef86862cbd49e02664e07cc90ce3060ffa115f635124a8c0eddb708
7
+ data.tar.gz: 0391dce454f1da154121078fb9edf3ffbadecc11294e443a2dbcf09ec2a7a2056e366cf61ec6a54b6ed7e80ed323cd23236b9dfcbc55a0427d211a2270b0c9c2
data/.rubocop.yml CHANGED
@@ -9,6 +9,7 @@ Metrics/AbcSize:
9
9
  Metrics/ClassLength:
10
10
  Exclude:
11
11
  - 'test/**/*'
12
+ Max: 150
12
13
 
13
14
  Metrics/LineLength:
14
15
  Max: 100
data/.travis.yml CHANGED
@@ -8,7 +8,9 @@ rvm:
8
8
  - 2.2.5
9
9
  - 2.3.1
10
10
  cache: bundler
11
- after_success: ci/after_success.py
11
+ after_success:
12
+ - bundle exec codeclimate-test-reporter
13
+ - ci/after_success.py
12
14
  env:
13
15
  global:
14
16
  # TRAVIS_TOKEN
data/CONTRIBUTING.md CHANGED
@@ -22,7 +22,7 @@ When filing a bug, please include the following information:
22
22
  * If it's an error related to Rust, the version of Rust, Cargo, and how you installed it.
23
23
  * A detailed list of steps to reproduce the bug. A minimal testcase would be very helpful,
24
24
  if possible.
25
- * If there any any error messages in the console, copying them in the bug summary will be
25
+ * If there are any error messages in the console, copying them in the bug summary will be
26
26
  very helpful.
27
27
 
28
28
  ## Filing Pull Requests
data/Gemfile CHANGED
@@ -4,7 +4,7 @@
4
4
  source 'https://rubygems.org'
5
5
 
6
6
  group :test do
7
- gem 'codeclimate-test-reporter', require: nil
7
+ gem 'codeclimate-test-reporter', '~> 1.0', require: nil
8
8
  gem 'simplecov', require: nil
9
9
  end
10
10
 
data/NEWS.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.8.0] - 2016-12-05
6
+
7
+ ### Added
8
+
9
+ * Support for binary download URIs from non-GitHub sources (#17)
10
+
11
+ ### Changed
12
+
13
+ * Tarballs are installed relative to `ruby_project_path`
14
+
5
15
  ## [0.7.0] - 2016-09-26
6
16
 
7
17
  ### Added
data/README.md CHANGED
@@ -14,6 +14,7 @@ Thermite is a Rake-based helper for building and distributing Rust-based Ruby ex
14
14
  * Provides wrappers for `cargo` commands.
15
15
  * Handles non-standard `cargo` installations via the `CARGO` environment variable.
16
16
  * Opt-in to allow users to install pre-compiled Rust extensions hosted on GitHub releases.
17
+ * Opt-in to allow users to install pre-compiled Rust extensions hosted on a third party server.
17
18
  * Provides a wrapper for initializing a Rust extension via Fiddle.
18
19
 
19
20
  ## Usage
@@ -49,7 +50,7 @@ Thermite is a Rake-based helper for building and distributing Rust-based Ruby ex
49
50
  end
50
51
  ```
51
52
 
52
- Run `rake -T` to view all of the available tasks in the `thermite` namespace.
53
+ Run `rake -T thermite` to view all of the available tasks in the `thermite` namespace.
53
54
 
54
55
  ### Configuration
55
56
 
@@ -68,6 +69,13 @@ github_releases = true
68
69
 
69
70
  Possible options:
70
71
 
72
+ * `binary_uri_format` - if set, the interpolation-formatted string used to construct the download
73
+ URI for the pre-built native extension. If the environment variable `THERMITE_BINARY_URI_FORMAT`
74
+ is set, it takes precedence over this option. Either method of setting this option overrides the
75
+ `github_releases` option.
76
+ Example: `https://example.com/download/%{version}/%{filename}`. Replacement variables:
77
+ - `filename` - The value of `Config.tarball_filename`
78
+ - `version` - the crate version from `Cargo.toml`
71
79
  * `cargo_project_path` - the path to the Cargo project. Defaults to the current working directory.
72
80
  * `github_releases` - whether to look for Rust binaries via GitHub releases when installing
73
81
  the gem, and `cargo` is not found. Defaults to `false`.
@@ -58,6 +58,17 @@ module Thermite
58
58
  end
59
59
  end
60
60
 
61
+ #
62
+ # The interpolation-formatted string used to construct the download URI for the pre-built
63
+ # native extension. Can be set via the `THERMITE_BINARY_URI_FORMAT` environment variable, or a
64
+ # `binary_uri_format` option.
65
+ #
66
+ def binary_uri_format
67
+ @binary_uri_format ||= ENV['THERMITE_BINARY_URI_FORMAT'] ||
68
+ @options[:binary_uri_format] ||
69
+ false
70
+ end
71
+
61
72
  #
62
73
  # The major and minor version of the Ruby interpreter that's currently running.
63
74
  #
@@ -180,6 +191,13 @@ module Thermite
180
191
  @toml ||= Tomlrb.load_file(rust_path('Cargo.toml'), symbolize_keys: true)
181
192
  end
182
193
 
194
+ #
195
+ # Alias to the crate version specified in the TOML file.
196
+ #
197
+ def crate_version
198
+ toml[:package][:version]
199
+ end
200
+
183
201
  #
184
202
  # The Thermite-specific config from the TOML file.
185
203
  #
@@ -0,0 +1,65 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+ #
4
+ # Copyright (c) 2016 Mark Lee and contributors
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
7
+ # associated documentation files (the "Software"), to deal in the Software without restriction,
8
+ # including without limitation the rights to use, copy, modify, merge, publish, distribute,
9
+ # sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all copies or
13
+ # substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
16
+ # NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
+ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
19
+ # OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+
21
+ require 'net/http'
22
+ require 'uri'
23
+
24
+ module Thermite
25
+ #
26
+ # Custom binary URI helpers.
27
+ #
28
+ module CustomBinary
29
+ #
30
+ # Downloads a Rust binary using a custom URI format, given the target OS and architecture.
31
+ #
32
+ # Requires the `binary_uri_format` option to be set. The version of the binary is determined by
33
+ # the crate version given in `Cargo.toml`.
34
+ #
35
+ # Returns whether a binary was found and unpacked.
36
+ #
37
+ def download_binary_from_custom_uri
38
+ return false unless config.binary_uri_format
39
+
40
+ version = config.crate_version
41
+ uri ||= config.binary_uri_format % {
42
+ filename: config.tarball_filename(version),
43
+ version: version
44
+ }
45
+
46
+ return false unless (tgz = download_versioned_binary(uri, version))
47
+
48
+ debug "Unpacking binary from Cargo version: #{File.basename(uri)}"
49
+ unpack_tarball(tgz)
50
+ true
51
+ end
52
+
53
+ private
54
+
55
+ def download_versioned_binary(uri, version)
56
+ unless ENV.key?('THERMITE_TEST')
57
+ # :nocov:
58
+ puts "Downloading compiled version (#{version})"
59
+ # :nocov:
60
+ end
61
+
62
+ http_get(uri)
63
+ end
64
+ end
65
+ end
@@ -40,7 +40,7 @@ module Thermite
40
40
  #
41
41
  # Returns whether a binary was found and unpacked.
42
42
  #
43
- def download_binary
43
+ def download_binary_from_github_release
44
44
  return false unless options[:github_releases]
45
45
 
46
46
  case options[:github_release_type]
@@ -54,10 +54,10 @@ module Thermite
54
54
  private
55
55
 
56
56
  def download_cargo_version_from_github_release
57
- version = config.toml[:package][:version]
57
+ version = config.crate_version
58
58
  tag = options.fetch(:git_tag_format, 'v%s') % version
59
59
  uri = github_download_uri(tag, version)
60
- return unless (tgz = download_binary_from_github_release(uri, version))
60
+ return false unless (tgz = download_versioned_github_release_binary(uri, version))
61
61
 
62
62
  debug "Unpacking GitHub release from Cargo version: #{File.basename(uri)}"
63
63
  unpack_tarball(tgz)
@@ -71,7 +71,7 @@ module Thermite
71
71
  def download_latest_binary_from_github_release
72
72
  installed_binary = false
73
73
  each_github_release(github_uri) do |version, download_uri|
74
- tgz = download_binary_from_github_release(download_uri, version)
74
+ tgz = download_versioned_github_release_binary(download_uri, version)
75
75
  next unless tgz
76
76
  debug "Unpacking GitHub release: #{File.basename(download_uri)}"
77
77
  unpack_tarball(tgz)
@@ -90,12 +90,6 @@ module Thermite
90
90
  "#{github_uri}/releases/download/#{tag}/#{config.tarball_filename(version)}"
91
91
  end
92
92
 
93
- # :nocov:
94
- def http_get(uri)
95
- Net::HTTP.get(URI(uri))
96
- end
97
- # :nocov:
98
-
99
93
  def each_github_release(github_uri)
100
94
  releases_uri = "#{github_uri}/releases.atom"
101
95
  feed = REXML::Document.new(http_get(releases_uri))
@@ -108,20 +102,14 @@ module Thermite
108
102
  end
109
103
  end
110
104
 
111
- def download_binary_from_github_release(uri, version)
112
- case (response = Net::HTTP.get_response(URI(uri)))
113
- when Net::HTTPClientError
114
- nil
115
- when Net::HTTPServerError
116
- raise Net::HTTPServerException.new(response.message, response)
117
- else
118
- unless ENV.key?('THERMITE_TEST')
119
- # :nocov:
120
- puts "Downloading latest compiled version (#{version}) from GitHub"
121
- # :nocov:
122
- end
123
- StringIO.new(http_get(response['location']))
105
+ def download_versioned_github_release_binary(uri, version)
106
+ unless ENV.key?('THERMITE_TEST')
107
+ # :nocov:
108
+ puts "Downloading compiled version (#{version}) from GitHub"
109
+ # :nocov:
124
110
  end
111
+
112
+ http_get(uri)
125
113
  end
126
114
  end
127
115
  end
@@ -45,15 +45,25 @@ module Thermite
45
45
  # working directory.
46
46
  #
47
47
  def unpack_tarball(tgz)
48
+ Dir.chdir(config.ruby_toplevel_dir) do
49
+ each_compressed_file(tgz) do |path, entry|
50
+ debug "Unpacking file: #{path}"
51
+ File.open(path, 'wb') do |f|
52
+ f.write(entry.read)
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ private
59
+
60
+ def each_compressed_file(tgz)
48
61
  Zlib::GzipReader.wrap(tgz) do |gz|
49
62
  Gem::Package::TarReader.new(gz) do |tar|
50
63
  tar.each do |entry|
51
64
  path = entry.header.name
52
65
  next if path.end_with?('/')
53
- debug "Unpacking file: #{path}"
54
- File.open(path, 'wb') do |f|
55
- f.write(entry.read)
56
- end
66
+ yield path, entry
57
67
  end
58
68
  end
59
69
  end
@@ -22,6 +22,7 @@ require 'fileutils'
22
22
  require 'rake/tasklib'
23
23
  require 'thermite/cargo'
24
24
  require 'thermite/config'
25
+ require 'thermite/custom_binary'
25
26
  require 'thermite/github_release_binary'
26
27
  require 'thermite/package'
27
28
  require 'thermite/util'
@@ -40,6 +41,7 @@ module Thermite
40
41
  #
41
42
  class Tasks < Rake::TaskLib
42
43
  include Thermite::Cargo
44
+ include Thermite::CustomBinary
43
45
  include Thermite::GithubReleaseBinary
44
46
  include Thermite::Package
45
47
  include Thermite::Util
@@ -52,6 +54,13 @@ module Thermite
52
54
  #
53
55
  # Possible configuration options for Thermite tasks:
54
56
  #
57
+ # * `binary_uri_format` - if set, the interpolation-formatted string used to construct the
58
+ # download URI for the pre-built native extension. If the environment variable
59
+ # `THERMITE_BINARY_URI_FORMAT` is set, it takes precedence over this option. Either method of
60
+ # setting this option overrides the `github_releases` option.
61
+ # Example: `https://example.com/download/%{version}/%{filename}`. Replacement variables:
62
+ # - `filename` - The value of {Config#tarball_filename}
63
+ # - `version` - the crate version from the `Cargo.toml` file
55
64
  # * `cargo_project_path` - the path to the Cargo project. Defaults to the current
56
65
  # working directory.
57
66
  # * `github_releases` - whether to look for rust binaries via GitHub releases when installing
@@ -112,7 +121,7 @@ module Thermite
112
121
  run_cargo_build(target)
113
122
  FileUtils.cp(config.rust_path('target', target, config.shared_library),
114
123
  config.ruby_path('lib'))
115
- elsif !download_binary
124
+ elsif !download_binary_from_custom_uri && !download_binary_from_github_release
116
125
  inform_user_about_cargo
117
126
  end
118
127
  end
data/lib/thermite/util.rb CHANGED
@@ -18,6 +18,8 @@
18
18
  # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
19
19
  # OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
 
21
+ require 'net/http'
22
+
21
23
  module Thermite
22
24
  #
23
25
  # Utility methods
@@ -32,6 +34,27 @@ module Thermite
32
34
 
33
35
  @debug ||= File.open(config.debug_filename, 'w')
34
36
  @debug.write("#{msg}\n")
37
+ @debug.flush
38
+ end
39
+
40
+ #
41
+ # Wrapper for a Net::HTTP GET request that handles redirects.
42
+ #
43
+ # :nocov:
44
+ def http_get(uri, retries_left = 10)
45
+ raise RedirectError, 'Too many redirects' if retries_left.zero?
46
+
47
+ case (response = Net::HTTP.get_response(URI(uri)))
48
+ when Net::HTTPClientError
49
+ nil
50
+ when Net::HTTPServerError
51
+ raise Net::HTTPServerException.new(response.message, response)
52
+ when Net::HTTPFound, Net::HTTPPermanentRedirect
53
+ http_get(response['location'], retries_left - 1)
54
+ else
55
+ StringIO.new(response.body)
56
+ end
35
57
  end
58
+ # :nocov:
36
59
  end
37
60
  end
@@ -0,0 +1,39 @@
1
+ require 'tmpdir'
2
+ require 'test_helper'
3
+ require 'thermite/custom_binary'
4
+ require 'thermite/util'
5
+
6
+ module Thermite
7
+ class CustomBinaryTest < Minitest::Test
8
+ include Thermite::ModuleTester
9
+
10
+ class Tester
11
+ include Thermite::CustomBinary
12
+ include Thermite::TestHelper
13
+ include Thermite::Util
14
+ end
15
+
16
+ def test_no_downloading_when_binary_uri_is_falsey
17
+ mock_module(binary_uri_format: false)
18
+ mock_module.expects(:http_get).never
19
+
20
+ assert !mock_module.download_binary_from_custom_uri
21
+ end
22
+
23
+ def test_download_binary_from_custom_uri
24
+ mock_module(binary_uri_format: 'http://example.com/download/%{version}/%{filename}')
25
+ mock_module.config.stubs(:toml).returns(package: { version: '4.5.6' })
26
+ Net::HTTP.stubs(:get_response).returns('location' => 'redirect')
27
+ mock_module.stubs(:http_get).returns('tarball')
28
+ mock_module.expects(:unpack_tarball).once
29
+
30
+ assert mock_module.download_binary_from_custom_uri
31
+ end
32
+
33
+ private
34
+
35
+ def described_class
36
+ Tester
37
+ end
38
+ end
39
+ end
@@ -18,7 +18,7 @@ module Thermite
18
18
  mock_module.expects(:download_latest_binary_from_github_release).never
19
19
  mock_module.expects(:download_cargo_version_from_github_release).never
20
20
 
21
- assert !mock_module.download_binary
21
+ assert !mock_module.download_binary_from_github_release
22
22
  end
23
23
 
24
24
  def test_github_release_type_defaults_to_cargo
@@ -26,7 +26,7 @@ module Thermite
26
26
  mock_module.expects(:download_latest_binary_from_github_release).never
27
27
  mock_module.expects(:download_cargo_version_from_github_release).once
28
28
 
29
- mock_module.download_binary
29
+ mock_module.download_binary_from_github_release
30
30
  end
31
31
 
32
32
  def test_download_cargo_version_from_github_release
@@ -37,7 +37,7 @@ module Thermite
37
37
  mock_module.stubs(:http_get).returns('tarball')
38
38
  mock_module.expects(:unpack_tarball).once
39
39
 
40
- assert mock_module.download_binary
40
+ assert mock_module.download_binary_from_github_release
41
41
  end
42
42
 
43
43
  def test_download_cargo_version_from_github_release_with_custom_git_tag_format
@@ -48,7 +48,7 @@ module Thermite
48
48
  mock_module.stubs(:http_get).returns('tarball')
49
49
  mock_module.expects(:unpack_tarball).once
50
50
 
51
- assert mock_module.download_binary
51
+ assert mock_module.download_binary_from_github_release
52
52
  end
53
53
 
54
54
  def test_download_cargo_version_from_github_release_with_client_error
@@ -56,7 +56,7 @@ module Thermite
56
56
  mock_module.config.stubs(:toml).returns(package: { version: '4.5.6' })
57
57
  Net::HTTP.stubs(:get_response).returns(Net::HTTPClientError.new('1.1', 403, 'Forbidden'))
58
58
 
59
- assert !mock_module.download_binary
59
+ assert !mock_module.download_binary_from_github_release
60
60
  end
61
61
 
62
62
  def test_download_cargo_version_from_github_release_with_server_error
@@ -66,17 +66,17 @@ module Thermite
66
66
  Net::HTTP.stubs(:get_response).returns(server_error)
67
67
 
68
68
  assert_raises Net::HTTPServerException do
69
- mock_module.download_binary
69
+ mock_module.download_binary_from_github_release
70
70
  end
71
71
  end
72
72
 
73
73
  def test_download_latest_binary_from_github_release
74
74
  mock_module(github_releases: true, github_release_type: 'latest', git_tag_regex: 'v(.*)-rust')
75
75
  stub_releases_atom
76
- mock_module.stubs(:download_binary_from_github_release).returns(StringIO.new('tarball'))
76
+ mock_module.stubs(:download_versioned_github_release_binary).returns(StringIO.new('tarball'))
77
77
  mock_module.expects(:unpack_tarball).once
78
78
 
79
- assert mock_module.download_binary
79
+ assert mock_module.download_binary_from_github_release
80
80
  end
81
81
 
82
82
  def test_download_latest_binary_from_github_release_no_releases_match_regex
@@ -84,16 +84,16 @@ module Thermite
84
84
  stub_releases_atom
85
85
  mock_module.expects(:github_download_uri).never
86
86
 
87
- assert !mock_module.download_binary
87
+ assert !mock_module.download_binary_from_github_release
88
88
  end
89
89
 
90
90
  def test_download_latest_binary_from_github_release_no_tarball_found
91
91
  mock_module(github_releases: true, github_release_type: 'latest', git_tag_regex: 'v(.*)-rust')
92
92
  stub_releases_atom
93
- mock_module.stubs(:download_binary_from_github_release).returns(nil)
93
+ mock_module.stubs(:download_versioned_github_release_binary).returns(nil)
94
94
  mock_module.expects(:unpack_tarball).never
95
95
 
96
- assert !mock_module.download_binary
96
+ assert !mock_module.download_binary_from_github_release
97
97
  end
98
98
 
99
99
  private
@@ -21,15 +21,18 @@ module Thermite
21
21
  stub_config(project_dir, extension_path, tgz_filename)
22
22
 
23
23
  mock_module.build_package
24
- end
24
+ FileUtils.rm_f(extension_path)
25
25
 
26
- using_install_dir(stub_dir(dir, 'install')) do |install_dir|
27
- File.open(tgz_filename, 'rb') do |f|
28
- mock_module.unpack_tarball(f)
26
+ # This simulates having an extension build via `install/Rakefile` instead of the
27
+ # top-level Rakefile.
28
+ using_install_dir(stub_dir(dir, 'install')) do
29
+ assert_file_created(extension_path) do
30
+ File.open(tgz_filename, 'rb') do |f|
31
+ mock_module.unpack_tarball(f)
32
+ end
33
+ end
34
+ assert_equal 'some extension', File.read(extension_path)
29
35
  end
30
- packed_file = File.join(install_dir, 'lib', 'test.txt')
31
- assert File.exist?(packed_file), "File '#{packed_file}' does not exist."
32
- assert_equal 'some extension', File.read(packed_file)
33
36
  end
34
37
  end
35
38
  end
@@ -87,5 +90,11 @@ module Thermite
87
90
  end
88
91
  end
89
92
  end
93
+
94
+ def assert_file_created(filename)
95
+ refute File.exist?(filename), "File '#{filename}' already exists."
96
+ yield
97
+ assert File.exist?(filename), "File '#{filename}' does not exist."
98
+ end
90
99
  end
91
100
  end
data/test/test_helper.rb CHANGED
@@ -1,14 +1,9 @@
1
- if ENV['CODECLIMATE_REPO_TOKEN']
2
- require 'codeclimate-test-reporter'
3
- CodeClimate::TestReporter.start
4
- else
5
- require 'simplecov'
6
- SimpleCov.start do
7
- load_profile 'test_frameworks'
8
- add_filter 'lib/thermite/fiddle.rb'
9
- add_filter 'lib/thermite/tasks.rb'
10
- track_files 'lib/**/*.rb'
11
- end
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ load_profile 'test_frameworks'
4
+ add_filter 'lib/thermite/fiddle.rb'
5
+ add_filter 'lib/thermite/tasks.rb'
6
+ track_files 'lib/**/*.rb'
12
7
  end
13
8
 
14
9
  ENV['THERMITE_TEST'] = '1'
data/thermite.gemspec CHANGED
@@ -3,7 +3,7 @@ require 'English'
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'thermite'
6
- s.version = '0.7.0'
6
+ s.version = '0.8.0'
7
7
  s.summary = 'Rake helpers for Rust+Ruby'
8
8
  s.description = 'A Rake-based helper for building and distributing Rust-based Ruby extensions'
9
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thermite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-26 00:00:00.000000000 Z
11
+ date: 2016-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -128,6 +128,7 @@ files:
128
128
  - ci/after_success.py
129
129
  - lib/thermite/cargo.rb
130
130
  - lib/thermite/config.rb
131
+ - lib/thermite/custom_binary.rb
131
132
  - lib/thermite/fiddle.rb
132
133
  - lib/thermite/github_release_binary.rb
133
134
  - lib/thermite/package.rb
@@ -137,6 +138,7 @@ files:
137
138
  - test/fixtures/github/releases.atom
138
139
  - test/lib/thermite/cargo_test.rb
139
140
  - test/lib/thermite/config_test.rb
141
+ - test/lib/thermite/custom_binary_test.rb
140
142
  - test/lib/thermite/github_release_binary_test.rb
141
143
  - test/lib/thermite/package_test.rb
142
144
  - test/lib/thermite/util_test.rb