rake-funnel 0.16.1 → 0.17.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 +4 -4
- data/lib/rake/funnel/tasks/bin_path.rb +7 -4
- data/lib/rake/funnel/version.rb +1 -1
- data/spec/rake/funnel/tasks/bin_path_spec.rb +33 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af6a3384beef14d765b3deeb68f46bc6e9075753
|
4
|
+
data.tar.gz: 56a85fbb32a083c02f329c2c379a46b91fd312b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcf794c4853b54485436d3d102d2edc58e61840de0e72965af8d6ef2d395c6afe49110b97a04c94ebab5d222f8f1ddcb6c46f251b63098a49a4e9b46494fd2db
|
7
|
+
data.tar.gz: e3ae2368bd27d0c25b78eb46ba4d2ebf1c216623041629e93e91ce98dc34b10e937459c12e45338dbaf3a26d0e7617971da94b4d2dc2f9e5e268ecc4f058f9d6
|
@@ -4,7 +4,7 @@ module Rake
|
|
4
4
|
module Funnel
|
5
5
|
module Tasks
|
6
6
|
class BinPath < Rake::TaskLib
|
7
|
-
attr_accessor :name, :search_pattern
|
7
|
+
attr_accessor :name, :search_pattern, :path_modifier
|
8
8
|
|
9
9
|
def initialize(*args, &task_block)
|
10
10
|
setup_ivars(args)
|
@@ -16,6 +16,7 @@ module Rake
|
|
16
16
|
def setup_ivars(args)
|
17
17
|
@name = args.shift || :bin_path
|
18
18
|
@search_pattern = %w(tools/* tools/*/bin packages/**/tools)
|
19
|
+
@path_modifier = proc { |paths| paths }
|
19
20
|
end
|
20
21
|
|
21
22
|
def define(args, &task_block)
|
@@ -26,7 +27,7 @@ module Rake
|
|
26
27
|
|
27
28
|
next unless paths.any?
|
28
29
|
|
29
|
-
|
30
|
+
prepend_pattern_to_path_environment(paths)
|
30
31
|
Rake.rake_output_message 'Added the following paths to the PATH environment variable:'
|
31
32
|
paths.each do |p|
|
32
33
|
Rake.rake_output_message " - #{p}"
|
@@ -37,10 +38,12 @@ module Rake
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def paths
|
40
|
-
@paths ||= Dir[*search_pattern]
|
41
|
+
@paths ||= @path_modifier.call(Dir[*search_pattern])
|
42
|
+
.map { |path| File.expand_path(path) }
|
43
|
+
.sort
|
41
44
|
end
|
42
45
|
|
43
|
-
def
|
46
|
+
def prepend_pattern_to_path_environment(paths)
|
44
47
|
ENV['PATH'] = ([] << paths << ENV['PATH']).flatten.join(File::PATH_SEPARATOR)
|
45
48
|
paths
|
46
49
|
end
|
data/lib/rake/funnel/version.rb
CHANGED
@@ -13,6 +13,7 @@ describe Rake::Funnel::Tasks::BinPath do
|
|
13
13
|
describe 'execution' do
|
14
14
|
let(:default_path) { 'default PATH contents' }
|
15
15
|
let(:search_pattern) { %w(foo bar) }
|
16
|
+
let(:path_modifier) { nil }
|
16
17
|
|
17
18
|
before {
|
18
19
|
allow(ENV).to receive(:[]).with('PATH').and_return(default_path)
|
@@ -23,6 +24,7 @@ describe Rake::Funnel::Tasks::BinPath do
|
|
23
24
|
subject {
|
24
25
|
described_class.new do |t|
|
25
26
|
t.search_pattern = search_pattern
|
27
|
+
t.path_modifier = path_modifier unless path_modifier.nil?
|
26
28
|
end
|
27
29
|
}
|
28
30
|
|
@@ -49,6 +51,33 @@ describe Rake::Funnel::Tasks::BinPath do
|
|
49
51
|
expect(Rake).to have_received(:rake_output_message).with(%r|/foo$|)
|
50
52
|
expect(Rake).to have_received(:rake_output_message).with(%r|/bar$|)
|
51
53
|
end
|
54
|
+
|
55
|
+
describe 'path modifier' do
|
56
|
+
context 'adding paths' do
|
57
|
+
let(:path_modifier) { proc { |paths| paths.push('added path') } }
|
58
|
+
|
59
|
+
it 'adds extra paths' do
|
60
|
+
expect(ENV).to have_received(:[]=).with('PATH',/added path/)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'retains other paths' do
|
64
|
+
expect(ENV).to have_received(:[]=).with('PATH', /foo/)
|
65
|
+
expect(ENV).to have_received(:[]=).with('PATH', /bar/)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'rejecting paths' do
|
70
|
+
let(:path_modifier) { proc { |paths| paths.reject { |p| p =~ /foo/ } } }
|
71
|
+
|
72
|
+
it 'removes matching paths' do
|
73
|
+
expect(ENV).not_to have_received(:[]=).with('PATH', /foo/)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'retains non-matching paths' do
|
77
|
+
expect(ENV).to have_received(:[]=).with('PATH', /bar/)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
52
81
|
end
|
53
82
|
|
54
83
|
context 'no paths to add' do
|
@@ -63,6 +92,10 @@ describe Rake::Funnel::Tasks::BinPath do
|
|
63
92
|
it 'should not print message' do
|
64
93
|
expect(Rake).not_to have_received(:rake_output_message)
|
65
94
|
end
|
95
|
+
|
96
|
+
it 'should not set environment variable' do
|
97
|
+
expect(ENV).not_to have_received(:[]=).with('PATH')
|
98
|
+
end
|
66
99
|
end
|
67
100
|
end
|
68
101
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-funnel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Groß
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|