bundler-explain 0.1.0 → 0.2.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
  SHA256:
3
- metadata.gz: 71233be6dbcd5f33d7b78ba62fd540ab48ea6d678847f5e98c254f96771a13dd
4
- data.tar.gz: 8178fbaf874bd939475a7f27fdbc0c5a61779d7a1f56867f9fd059ce7da800cf
3
+ metadata.gz: e8d63967f4fd9dd1648af8eeb3330127d2ecd62e9f68e9584083f4cf7ad3034d
4
+ data.tar.gz: b9ac527443c2b9da6fc5eedd8cff907bd7e3169b47c210349f0ae7d06000eb72
5
5
  SHA512:
6
- metadata.gz: 6ccd871f7efa7dd3f4cf4539249fc3d5703332ad774d014004f49af062616c1b08425b996496ae6dab6969cee9be280e9fb94e1b40a7915923dddec0e5abd33f
7
- data.tar.gz: f1800d2772a5683d0dcacd5d4c1c891cd1e6d3e12eaf9a1834035ac6c310d2ebf8875713730666d7de2dfc40037f3a477d9a0e7cf0f5399d97a63581e3668998
6
+ metadata.gz: 57ca6ba698a1c3d180cf0b726d1f8b0cb445ecb58595d417438298e751a82df3ec85079a7c1af2e1d7992bc3466fae7e92204c81bb5530bcfb6f702bd7996232
7
+ data.tar.gz: 1cbfaa3d30afbf3c16297922d93d0ef85cb01a7418b05a06c144b6dbff46c4e0328601ec37d461a1d0fe5bad6e995d430acf2b0ee8df5f987b1d6311e79c048f
data/README.md CHANGED
@@ -56,6 +56,7 @@ determine the cause of the failure.
56
56
  ## Installation and Usage
57
57
 
58
58
  ```
59
+ $ gem i pub_grub # Needs to be installed first
59
60
  $ bundler plugin install bundler-explain
60
61
  ```
61
62
 
@@ -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.2.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 incompatibilities_for(version)
36
- return enum_for(__method__, version) unless block_given?
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 = version.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
- if version == PubGrub::Package.root_version
41
- source_constraint = PubGrub::VersionConstraint.exact(version)
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[version.package.name]
52
- spec = specs.detect { |s| s.version.to_s == version.name }
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 == 3
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.version(low_version.to_s))
131
+ PubGrub::VersionConstraint.exact(package, low_version)
125
132
  else
126
- low = ">= #{low_version}" if low_spec
127
- high = "<= #{high_version}" if high_spec
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 && high - 1]
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
- # This is awful. We should try to reuse Gem::Requirement
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
@@ -1,5 +1,5 @@
1
1
  module Bundler
2
2
  module Explain
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
data/test.rb CHANGED
@@ -1,8 +1,8 @@
1
- $LOAD_PATH.unshift "./lib"
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.1.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-08-15 00:00:00.000000000 Z
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.2.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.2.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.3
112
+ rubygems_version: 2.7.7
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Explains bundle update conflicts