rake-dependencies 0.8.0 → 0.9.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: 4f626b07e672a7a37d578e700dd49591f9589a2f
4
- data.tar.gz: a1ee04a749b0aa087c5f5b62c3deb96f54aaa1db
3
+ metadata.gz: ef89ffd9e114564caddb65c554928ffe0ccbbbd2
4
+ data.tar.gz: d984290b6073c2085b46d609463508a3b1b1b39f
5
5
  SHA512:
6
- metadata.gz: b5b5e3dfdd5b2691d4a71bff0148ea68c8729daf5255935dbe9a436692e598536141339842e80a3afe105253d5d16ecbeb03e19b2925e1de345ddaf64396fb2f
7
- data.tar.gz: 7c998a21b2ec84dfc6efbf0a685e01ad616d29ddd06b391b2a4e9199d38881e3e06da7f0d707a9fb9e8ac43f107aa63a9825ee2a86bb0329a9dd5dacae4b59e1
6
+ metadata.gz: e33c74bbf280e38dadcb2184a71a8893f45e1bb279ab371f3d6d486cd8218932ba3ea644c1be457992b4273633699db85a1005e0426779b85414edf3568b6287
7
+ data.tar.gz: 15f131d42112ca7f911ce761185c038db9fc8f598e7887e3e77b2fcb4d9821e6fd0aa71d1371d9e0efdb4041496387ac2de8066c9c28a0b99ebe9ce0cd47d67e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake-dependencies (0.8.0)
4
+ rake-dependencies (0.9.0)
5
5
  hamster (~> 3.0)
6
6
  minitar (~> 0.6)
7
7
  rubyzip (~> 1.1)
@@ -1,4 +1,5 @@
1
1
  require_relative 'tasks/clean'
2
2
  require_relative 'tasks/download'
3
3
  require_relative 'tasks/extract'
4
- require_relative 'tasks/fetch'
4
+ require_relative 'tasks/fetch'
5
+ require_relative 'tasks/ensure'
@@ -0,0 +1,50 @@
1
+ require_relative '../tasklib'
2
+
3
+ module RakeDependencies
4
+ module Tasks
5
+ class Ensure < TaskLib
6
+ parameter :name, default: :ensure
7
+
8
+ parameter :dependency, required: true
9
+ parameter :version
10
+ parameter :path, required: true
11
+
12
+ parameter :binary_directory, default: 'bin'
13
+
14
+ parameter :needs_fetch, default: lambda { |_| true }
15
+
16
+ parameter :clean_task, default: :clean
17
+ parameter :download_task, default: :download
18
+ parameter :extract_task, default: :extract
19
+
20
+ def process_arguments args
21
+ super(args)
22
+ self.name = args[0] if args[0]
23
+ end
24
+
25
+ def define
26
+ clean = Rake::Task[scoped_task_name(clean_task)]
27
+ download = Rake::Task[scoped_task_name(download_task)]
28
+ extract = Rake::Task[scoped_task_name(extract_task)]
29
+
30
+ desc "Ensure #{dependency} present"
31
+ task name do
32
+ parameters = {
33
+ path: path,
34
+ version: version,
35
+ binary_directory: binary_directory
36
+ }
37
+ if needs_fetch.call(parameters)
38
+ [clean, download, extract].map(&:invoke)
39
+ end
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def scoped_task_name(task_name)
46
+ Rake.application.current_scope.path_with_task_name(task_name)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module RakeDependencies
2
- VERSION = "0.8.0"
2
+ VERSION = "0.9.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-dependencies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -176,6 +176,7 @@ files:
176
176
  - lib/rake_dependencies/tasks.rb
177
177
  - lib/rake_dependencies/tasks/clean.rb
178
178
  - lib/rake_dependencies/tasks/download.rb
179
+ - lib/rake_dependencies/tasks/ensure.rb
179
180
  - lib/rake_dependencies/tasks/extract.rb
180
181
  - lib/rake_dependencies/tasks/fetch.rb
181
182
  - lib/rake_dependencies/template.rb