bundler-explain 0.1.0 → 0.2.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/README.md +1 -0
- data/bundler-explain.gemspec +1 -1
- data/lib/bundler/explain/source.rb +26 -23
- data/lib/bundler/explain/version.rb +1 -1
- data/test.rb +3 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8d63967f4fd9dd1648af8eeb3330127d2ecd62e9f68e9584083f4cf7ad3034d
|
4
|
+
data.tar.gz: b9ac527443c2b9da6fc5eedd8cff907bd7e3169b47c210349f0ae7d06000eb72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57ca6ba698a1c3d180cf0b726d1f8b0cb445ecb58595d417438298e751a82df3ec85079a7c1af2e1d7992bc3466fae7e92204c81bb5530bcfb6f702bd7996232
|
7
|
+
data.tar.gz: 1cbfaa3d30afbf3c16297922d93d0ef85cb01a7418b05a06c144b6dbff46c4e0328601ec37d461a1d0fe5bad6e995d430acf2b0ee8df5f987b1d6311e79c048f
|
data/README.md
CHANGED
data/bundler-explain.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
24
|
spec.add_dependency "bundler", "~> 1.16"
|
25
|
-
spec.add_dependency "pub_grub", "~> 0.
|
25
|
+
spec.add_dependency "pub_grub", "~> 0.3.0"
|
26
26
|
|
27
27
|
spec.add_development_dependency "rake", "~> 10.0"
|
28
28
|
spec.add_development_dependency "minitest", "~> 5.0"
|
@@ -17,12 +17,7 @@ module Bundler
|
|
17
17
|
end
|
18
18
|
|
19
19
|
@package_by_name = Hash.new do |h, name|
|
20
|
-
h[name] =
|
21
|
-
PubGrub::Package.new(name) do |package|
|
22
|
-
@specs_by_name[name].each do |spec_group|
|
23
|
-
package.add_version spec_group.version.to_s
|
24
|
-
end
|
25
|
-
end
|
20
|
+
h[name] = PubGrub::Package.new(name)
|
26
21
|
end
|
27
22
|
|
28
23
|
@deps_by_spec = Hash.new do |h, s|
|
@@ -32,13 +27,25 @@ module Bundler
|
|
32
27
|
end
|
33
28
|
end
|
34
29
|
|
35
|
-
def
|
36
|
-
|
30
|
+
def root_package
|
31
|
+
PubGrub::Package.root
|
32
|
+
end
|
33
|
+
|
34
|
+
def versions_for(package, range)
|
35
|
+
return [PubGrub::Package.root_version] if package == root_package
|
37
36
|
|
38
|
-
package
|
37
|
+
@specs_by_name[package.name].map do |spec_group|
|
38
|
+
spec_group.version
|
39
|
+
end.select do |version|
|
40
|
+
range.include?(version)
|
41
|
+
end
|
42
|
+
end
|
39
43
|
|
40
|
-
|
41
|
-
|
44
|
+
def incompatibilities_for(package, version)
|
45
|
+
return enum_for(__method__, package, version) unless block_given?
|
46
|
+
|
47
|
+
if package == root_package
|
48
|
+
source_constraint = PubGrub::VersionConstraint.exact(package, version)
|
42
49
|
source_term = PubGrub::Term.new(source_constraint, true)
|
43
50
|
|
44
51
|
@requirements.each do |dependency|
|
@@ -48,8 +55,8 @@ module Bundler
|
|
48
55
|
yield PubGrub::Incompatibility.new([source_term, target_term], cause: :dependency)
|
49
56
|
end
|
50
57
|
else
|
51
|
-
specs = @specs_by_name[
|
52
|
-
spec = specs.detect { |s| s.version
|
58
|
+
specs = @specs_by_name[package.name]
|
59
|
+
spec = specs.detect { |s| s.version == version }
|
53
60
|
raise "can't find spec" unless spec
|
54
61
|
|
55
62
|
@deps_by_spec[spec].each do |dep_name, dep_requirement|
|
@@ -92,7 +99,7 @@ module Bundler
|
|
92
99
|
v = original_version
|
93
100
|
s = original_version.segments
|
94
101
|
|
95
|
-
return [] unless s.length
|
102
|
+
return [] unless s.length >= 3
|
96
103
|
|
97
104
|
yield Gem::Requirement.new(">= #{s[0]}.#{s[1]}.a", "< #{v.release}")
|
98
105
|
yield Gem::Requirement.new(["~> #{s[0]}.#{s[1]}.0"])
|
@@ -121,11 +128,10 @@ module Bundler
|
|
121
128
|
if !low_spec && !high_spec
|
122
129
|
PubGrub::VersionConstraint.any(package)
|
123
130
|
elsif low_spec == high_spec
|
124
|
-
PubGrub::VersionConstraint.exact(package
|
131
|
+
PubGrub::VersionConstraint.exact(package, low_version)
|
125
132
|
else
|
126
|
-
|
127
|
-
|
128
|
-
PubGrub::VersionConstraint.new(package, [low, high].compact)
|
133
|
+
range = PubGrub::VersionRange.new(min: low_version, max: high_version, include_min: true)
|
134
|
+
PubGrub::VersionConstraint.new(package, range: range)
|
129
135
|
end
|
130
136
|
end
|
131
137
|
|
@@ -152,16 +158,13 @@ module Bundler
|
|
152
158
|
break unless yield(sorted_list[low])
|
153
159
|
end
|
154
160
|
|
155
|
-
[low && low + 1, high
|
161
|
+
[low && low + 1, high]
|
156
162
|
end
|
157
163
|
|
158
164
|
def constraint_for_dep(name, requirement)
|
159
165
|
package = @package_by_name[name]
|
160
166
|
|
161
|
-
|
162
|
-
requirement = requirement.to_s.split(", ")
|
163
|
-
|
164
|
-
PubGrub::VersionConstraint.new(package, requirement)
|
167
|
+
PubGrub::RubyGems.requirement_to_constraint(package, requirement)
|
165
168
|
end
|
166
169
|
end
|
167
170
|
end
|
data/test.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
$LOAD_PATH.unshift "
|
1
|
+
$LOAD_PATH.unshift "#{__dir__}/lib"
|
2
|
+
$LOAD_PATH.unshift "#{__dir__}/../pub_grub/lib"
|
2
3
|
require 'bundler/explain'
|
3
4
|
require 'pub_grub'
|
4
|
-
|
5
|
-
ENV['DEBUG'] = 'true'
|
5
|
+
require 'pub_grub/rubygems'
|
6
6
|
|
7
7
|
Bundler.ui = Bundler::UI::Shell.new
|
8
8
|
PubGrub.logger.level = Logger::DEBUG
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler-explain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Hawthorn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.3.0
|
34
34
|
type: :runtime
|
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: 0.
|
40
|
+
version: 0.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
111
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.7.
|
112
|
+
rubygems_version: 2.7.7
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Explains bundle update conflicts
|