envandle 0.6.0 → 0.6.1
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/envandle/element.rb +13 -3
- data/lib/envandle/elements/gem.rb +5 -5
- data/lib/envandle/elements/gemfile.rb +34 -5
- data/lib/envandle/elements/gemspec.rb +3 -3
- data/lib/envandle/elements/git_source_block.rb +8 -2
- data/lib/envandle/elements/group_block.rb +14 -3
- data/lib/envandle/elements/source.rb +2 -2
- data/lib/envandle/history.rb +29 -0
- data/lib/envandle/reference_cache.rb +2 -2
- data/lib/envandle/version.rb +1 -1
- data/lib/envandle.rb +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ba6b7a03fbf1cc046052c324154724a5ceb40d0
|
4
|
+
data.tar.gz: 169f79ad81e4fc3c8b8aae3460a6f6c7c5ef87f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 642dae47bcd9b8a9acf5d91738804f26011e5d392013e16c0a82f57e1174021e6f31ace53d8e5ffc54435237ba167b28ad8d42551b7c0b525047e360e8d9e860
|
7
|
+
data.tar.gz: 594124734d8e3e917fc2888800e2bcbda79afcf9db326bfd3eda22b2c6934aae074733316f38d7e87f34a813d537893bb4340edd8b3e766c031f582027960036
|
data/lib/envandle/element.rb
CHANGED
@@ -52,10 +52,20 @@ module Envandle
|
|
52
52
|
children_by_type(child.type) << child
|
53
53
|
end
|
54
54
|
|
55
|
-
def
|
56
|
-
|
57
|
-
i.send_to
|
55
|
+
def send_to_bundler(receiver)
|
56
|
+
bundler_argsets.each do |i|
|
57
|
+
i.send_to receiver
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
def send_to_history(receiver)
|
62
|
+
history_argsets.each do |i|
|
63
|
+
i.send_to receiver
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def history_argsets
|
68
|
+
bundler_argsets
|
69
|
+
end
|
60
70
|
end
|
61
71
|
end
|
@@ -10,19 +10,19 @@ module Envandle
|
|
10
10
|
:gem
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def extract_bundler_argsets(a, cache)
|
14
14
|
found = false
|
15
15
|
@args.contextual_groups.each do |group|
|
16
|
-
if gemfile.references.
|
16
|
+
if gemfile.references.extract_bundler_argsets(@args, group, @name, a, cache)
|
17
17
|
found = true
|
18
18
|
end
|
19
19
|
end
|
20
20
|
a << Argset.new(:gem, *@args.args_and_options) unless found
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
@
|
25
|
-
|
23
|
+
def bundler_argsets
|
24
|
+
@bundler_argsets ||= [].tap do |a|
|
25
|
+
extract_bundler_argsets a, {}
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -13,25 +13,54 @@ module Envandle
|
|
13
13
|
dsl_method :git_source
|
14
14
|
end
|
15
15
|
|
16
|
+
DUMP = ENV["ENVANDLE_DUMP"].to_s
|
17
|
+
|
16
18
|
def initialize(file, binding, config_dir = nil)
|
17
19
|
super Location.new(file, 1), nil
|
18
|
-
@
|
20
|
+
@bundler_binding = dumps? ? History.new : binding
|
19
21
|
@config_dir = config_dir
|
20
22
|
end
|
21
23
|
|
22
|
-
def
|
23
|
-
@
|
24
|
+
def bundler_receiver
|
25
|
+
@bundler_binding.receiver
|
26
|
+
end
|
27
|
+
|
28
|
+
def history
|
29
|
+
@history ||= History.new
|
24
30
|
end
|
25
31
|
|
26
32
|
def draw(&block)
|
27
33
|
super
|
28
34
|
exec
|
35
|
+
dump if dumps?
|
36
|
+
end
|
37
|
+
|
38
|
+
def dumps?
|
39
|
+
!DUMP.empty?
|
40
|
+
end
|
41
|
+
|
42
|
+
def dump
|
43
|
+
dump_file do |f|
|
44
|
+
f << JSON.pretty_generate(history.argsets)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def dump_file(&block)
|
49
|
+
case DUMP
|
50
|
+
when "1"
|
51
|
+
yield $stdout
|
52
|
+
when "2"
|
53
|
+
yield $stderr
|
54
|
+
else
|
55
|
+
File.open DUMP, "w", &block
|
56
|
+
end
|
29
57
|
end
|
30
58
|
|
31
59
|
def exec
|
32
|
-
receiver =
|
60
|
+
receiver = bundler_receiver
|
33
61
|
children.each do |child|
|
34
|
-
child.
|
62
|
+
child.send_to_bundler receiver
|
63
|
+
child.send_to_history history
|
35
64
|
end
|
36
65
|
references.left.each do |k, v|
|
37
66
|
v.to_executable_argset(Argset.new(nil)).send_to receiver
|
@@ -15,8 +15,8 @@ module Envandle
|
|
15
15
|
:gemspec
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
@
|
18
|
+
def bundler_argsets
|
19
|
+
@bundler_argsets ||= begin
|
20
20
|
[].tap do |a|
|
21
21
|
path = @path || ::Envandle::Gemspec.find_file(gemfile.dir, name: @name)
|
22
22
|
spec = ::Envandle::Gemspec.new(path)
|
@@ -27,7 +27,7 @@ module Envandle
|
|
27
27
|
argset = Argset.new(nil, i.name, *i.requirements_list)
|
28
28
|
argset.options[:group] = group if group
|
29
29
|
gem = Gem.new(@loc, @context, *argset.args_and_options)
|
30
|
-
gem.
|
30
|
+
gem.extract_bundler_argsets a, found
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -8,11 +8,17 @@ module Envandle
|
|
8
8
|
:git_source_block
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
12
|
-
@
|
11
|
+
def bundler_argsets
|
12
|
+
@bundler_argsets ||= [].tap do |a|
|
13
13
|
a << Argset.new(:git_source, *@args.args_and_options, &@args.block)
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
def history_argsets
|
18
|
+
@history_argsets ||= [].tap do |a|
|
19
|
+
a << Argset.new(:git_source, *@args.args_and_options, @args.block.class.name)
|
20
|
+
end
|
21
|
+
end
|
16
22
|
end
|
17
23
|
end
|
18
24
|
end
|
@@ -22,11 +22,22 @@ module Envandle
|
|
22
22
|
@groups ||= @args.args.dup
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
26
|
-
@
|
25
|
+
def bundler_argsets
|
26
|
+
@bundler_argsets ||= [].tap do |a|
|
27
27
|
a << Argset.new(:group, *@args.args_and_options) do
|
28
|
+
receiver = gemfile.bundler_receiver
|
28
29
|
children.each do |child|
|
29
|
-
child.
|
30
|
+
child.send_to_bundler receiver
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def history_argsets
|
37
|
+
@history_argsets ||= [].tap do |a|
|
38
|
+
a << Argset.new(:group, *@args.args_and_options) do |history|
|
39
|
+
children.each do |child|
|
40
|
+
child.send_to_history history
|
30
41
|
end
|
31
42
|
end
|
32
43
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Envandle
|
2
|
+
class History
|
3
|
+
def receiver
|
4
|
+
self
|
5
|
+
end
|
6
|
+
|
7
|
+
def argsets
|
8
|
+
@argsets ||= []
|
9
|
+
end
|
10
|
+
|
11
|
+
def method_missing(name, *args, &block)
|
12
|
+
add_argset name, *args, &block
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_argset(name, *args, &block)
|
16
|
+
a = [name, *args]
|
17
|
+
argsets << a
|
18
|
+
if block
|
19
|
+
h = History.new
|
20
|
+
block.call h
|
21
|
+
a << h.argsets
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def gem(*args)
|
26
|
+
add_argset :gem, *args
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -67,14 +67,14 @@ module Envandle
|
|
67
67
|
klass.new(@context, parse_name(env, name), url, ref)
|
68
68
|
end
|
69
69
|
|
70
|
-
def
|
70
|
+
def extract_bundler_argsets(base, group, name, argsets, found = {})
|
71
71
|
key = Envandle.reference_key(group, name)
|
72
72
|
return true if found.key?(key)
|
73
73
|
found[key] = true
|
74
74
|
if ref = use(name)
|
75
75
|
ref.spec.runtime_dependencies.each do |i|
|
76
76
|
if ref2 = use(i.name)
|
77
|
-
|
77
|
+
extract_bundler_argsets base, nil, i.name, argsets, found
|
78
78
|
end
|
79
79
|
end
|
80
80
|
args = base.dup
|
data/lib/envandle/version.rb
CHANGED
data/lib/envandle.rb
CHANGED
@@ -2,6 +2,7 @@ autoload :FileUtils, "fileutils" unless Object::const_defined?(:FileUtils) && !O
|
|
2
2
|
autoload :Mutex, "thread" unless Object::const_defined?(:Mutex) && !Object::autoload?(:Mutex)
|
3
3
|
autoload :Open3, "open3" unless Object::const_defined?(:Open3) && !Object::autoload?(:Open3)
|
4
4
|
autoload :YAML, "yaml" unless Object::const_defined?(:YAML) && !Object::autoload?(:YAML)
|
5
|
+
autoload :JSON, "json" unless Object::const_defined?(:JSON) && !Object::autoload?(:JSON)
|
5
6
|
require "envandle/version"
|
6
7
|
require "envandle/exceptions"
|
7
8
|
require "envandle/helper"
|
@@ -19,6 +20,7 @@ module Envandle
|
|
19
20
|
autoload :Gemspec, "envandle/gemspec"
|
20
21
|
autoload :GitBranchReference, "envandle/git_branch_reference"
|
21
22
|
autoload :GitUtil, "envandle/git_util"
|
23
|
+
autoload :History, "envandle/history"
|
22
24
|
autoload :Location, "envandle/location"
|
23
25
|
autoload :PathReference, "envandle/path_reference"
|
24
26
|
autoload :ReferenceCache, "envandle/reference_cache"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envandle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mosop
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- lib/envandle/git_branch_reference.rb
|
98
98
|
- lib/envandle/git_util.rb
|
99
99
|
- lib/envandle/helper.rb
|
100
|
+
- lib/envandle/history.rb
|
100
101
|
- lib/envandle/location.rb
|
101
102
|
- lib/envandle/path_reference.rb
|
102
103
|
- lib/envandle/reference_cache.rb
|