bundler-override 0.2.0 → 0.3.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 +19 -8
- data/lib/bundler/override/dependency_patch.rb +49 -0
- data/lib/bundler/override/version.rb +1 -1
- data/lib/bundler-override.rb +2 -7
- metadata +5 -10
- data/lib/bundler/override/sharedhelpers_patch.rb +0 -14
- data/lib/bundler/override/specset_patch.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0e1422d7af788242f04d6d27ba6e1460c9fffef3ea3c708de7055937d8f6327
|
4
|
+
data.tar.gz: 153ac33a2db604be438f9044ad6ba738d5fc45dca4a07a844c10e57720a4c05f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bc04eb178bcd69a86e178927d8e29aedc09b5a29b3f3a470cf35c1dde5e7c875b3553ac116373026ea75323bd73bba4c2741861cb0267fb6cb7bd5aca84658d
|
7
|
+
data.tar.gz: bf5a8a689cee01ff98be4c35ef4e71f8d246fb1329d186a374b1ee26e92e8742a7aa6312001bf2182e20a007b5209e2f3600a8e7ec3c97e922623c7089b26b59
|
data/README.md
CHANGED
@@ -37,30 +37,41 @@ require File.join(Bundler::Plugin.index.load_paths("bundler-override")[0], "bund
|
|
37
37
|
2. Add _'override'_ block to the _Gemfile_, e.g.:
|
38
38
|
|
39
39
|
~~~ruby
|
40
|
-
|
40
|
+
if Bundler::Plugin.installed?('bundler-override')
|
41
|
+
override 'chef-config', :drop => ['chef-utils', 'mixlib-config']
|
42
|
+
end
|
41
43
|
~~~
|
42
44
|
|
43
45
|
or
|
44
46
|
|
45
47
|
~~~ruby
|
46
|
-
|
47
|
-
'chef-
|
48
|
-
|
48
|
+
if Bundler::Plugin.installed?('bundler-override')
|
49
|
+
override 'chef-config', :drop => 'mixlib-config', :requirements => {
|
50
|
+
'chef-utils' => '17.10.68'
|
51
|
+
}
|
52
|
+
end
|
49
53
|
~~~
|
50
54
|
|
51
55
|
or
|
52
56
|
|
53
57
|
~~~ruby
|
54
|
-
|
55
|
-
'chef-
|
56
|
-
|
57
|
-
|
58
|
+
if Bundler::Plugin.installed?('bundler-override')
|
59
|
+
override 'chef-config', :requirements => {
|
60
|
+
'chef-utils' => '17.10.68',
|
61
|
+
'mixlib-config' => '2.0.0'
|
62
|
+
}
|
63
|
+
end
|
58
64
|
~~~
|
59
65
|
|
66
|
+
|
67
|
+
|
60
68
|
### override
|
61
69
|
|
62
70
|
`override` is a command that allows to drop or replace dependency for a gem with desired version
|
63
71
|
|
72
|
+
It is a good practice to check if the plugin is installed since it will allow bundler to install it
|
73
|
+
automatically if it is missing.
|
74
|
+
|
64
75
|
### drop
|
65
76
|
|
66
77
|
Takes a gem name or list of gem names to be totally dropped from the dependencies.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Bundler
|
2
|
+
module Override
|
3
|
+
module DependencyPatch
|
4
|
+
def self.included(base)
|
5
|
+
base.class_eval do
|
6
|
+
alias_method :dependencies_orig, :dependencies
|
7
|
+
|
8
|
+
def dependencies
|
9
|
+
override_dependencies || []
|
10
|
+
end
|
11
|
+
|
12
|
+
def override_dependencies
|
13
|
+
deps = dependencies_orig
|
14
|
+
return deps unless Bundler::Override.override? name
|
15
|
+
param = Bundler::Override.params(name)
|
16
|
+
drop = Array(param[:drop])
|
17
|
+
requirements = param[:requirements]
|
18
|
+
if requirements && !requirements.empty?
|
19
|
+
requirements.each do |name, requirement|
|
20
|
+
existing = deps.find { |d| d.name == name }
|
21
|
+
deps.delete_if { |d| d.name == name }
|
22
|
+
deps << Gem::Dependency.new(name, requirement, existing&.type || :runtime)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
deps.delete_if { |d| drop.include? d.name }
|
26
|
+
|
27
|
+
deps
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module Bundler
|
36
|
+
class RemoteSpecification
|
37
|
+
include Override::DependencyPatch
|
38
|
+
end
|
39
|
+
|
40
|
+
class EndpointSpecification
|
41
|
+
include Override::DependencyPatch
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
module Gem
|
46
|
+
class Specification
|
47
|
+
include Bundler::Override::DependencyPatch
|
48
|
+
end
|
49
|
+
end
|
data/lib/bundler-override.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require "set"
|
3
3
|
require_relative "bundler/override/dsl_patch"
|
4
|
-
require_relative "bundler/override/
|
5
|
-
require_relative "bundler/override/sharedhelpers_patch"
|
4
|
+
require_relative "bundler/override/dependency_patch"
|
6
5
|
require "bundler/friendly_errors.rb"
|
7
6
|
|
8
7
|
module Bundler
|
@@ -24,7 +23,7 @@ module Bundler
|
|
24
23
|
return if @gems.include? name
|
25
24
|
@gems << name
|
26
25
|
@params = Array.new unless @params
|
27
|
-
@params << { :name=>name, :drop=>drop || [], :requirements=>requirements }
|
26
|
+
@params << { :name => name, :drop => drop || [], :requirements => requirements }
|
28
27
|
end
|
29
28
|
end
|
30
29
|
end
|
@@ -34,7 +33,3 @@ Bundler::Dsl.prepend(Bundler::Override::DslPatch)
|
|
34
33
|
ObjectSpace.each_object(Bundler::Dsl) do |o|
|
35
34
|
o.singleton_class.prepend(Bundler::Override::DslPatch)
|
36
35
|
end
|
37
|
-
|
38
|
-
Bundler::SpecSet.prepend(Bundler::Override::SpecSetPatch)
|
39
|
-
|
40
|
-
Bundler::SharedHelpers.prepend(Bundler::Override::SharedHelpersPatch)
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler-override
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cezary Tarnowski
|
8
8
|
- Tomasz Wojcik
|
9
9
|
- Marek Jakubowski
|
10
|
-
autorequire:
|
11
10
|
bindir: exe
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
@@ -96,7 +95,6 @@ dependencies:
|
|
96
95
|
- - ">="
|
97
96
|
- !ruby/object:Gem::Version
|
98
97
|
version: 0.21.2
|
99
|
-
description:
|
100
98
|
email:
|
101
99
|
- non-exiting@email.dont.use
|
102
100
|
executables: []
|
@@ -112,9 +110,8 @@ files:
|
|
112
110
|
- coverage/.keep
|
113
111
|
- events.rb
|
114
112
|
- lib/bundler-override.rb
|
113
|
+
- lib/bundler/override/dependency_patch.rb
|
115
114
|
- lib/bundler/override/dsl_patch.rb
|
116
|
-
- lib/bundler/override/sharedhelpers_patch.rb
|
117
|
-
- lib/bundler/override/specset_patch.rb
|
118
115
|
- lib/bundler/override/version.rb
|
119
116
|
- plugins.rb
|
120
117
|
- sig/bundler_override.rbs
|
@@ -126,7 +123,6 @@ metadata:
|
|
126
123
|
homepage_uri: https://github.com/tarnowsc/bundler-override
|
127
124
|
source_code_uri: https://github.com/tarnowsc/bundler-override
|
128
125
|
changelog_uri: https://github.com/tarnowsc/bundler-override/blob/main/CHANGELOG.md
|
129
|
-
post_install_message:
|
130
126
|
rdoc_options: []
|
131
127
|
require_paths:
|
132
128
|
- lib
|
@@ -134,15 +130,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
130
|
requirements:
|
135
131
|
- - ">="
|
136
132
|
- !ruby/object:Gem::Version
|
137
|
-
version: 3.
|
133
|
+
version: 3.2.0
|
138
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
135
|
requirements:
|
140
136
|
- - ">="
|
141
137
|
- !ruby/object:Gem::Version
|
142
138
|
version: '0'
|
143
139
|
requirements: []
|
144
|
-
rubygems_version: 3.
|
145
|
-
signing_key:
|
140
|
+
rubygems_version: 3.6.9
|
146
141
|
specification_version: 4
|
147
142
|
summary: 'This bundler plugin allows to change dependencies for a gem. It can be helpful
|
148
143
|
in situation when a developer needs to use some other dependency than default for
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require "set"
|
2
|
-
|
3
|
-
module Bundler
|
4
|
-
module Override
|
5
|
-
module SpecSetPatch
|
6
|
-
|
7
|
-
def specs_for_dependency(dep, platform)
|
8
|
-
spec = super
|
9
|
-
return spec if spec.empty?
|
10
|
-
name = if dep.is_a?(String) then dep else dep.name end
|
11
|
-
if Bundler::Override.override? name
|
12
|
-
s = spec.first
|
13
|
-
param = Bundler::Override.params(name)
|
14
|
-
drop = param[:drop]
|
15
|
-
s.dependencies.delete_if { |d| drop.include? d.name }
|
16
|
-
requirements = param[:requirements]
|
17
|
-
if requirements
|
18
|
-
gems = Set.new(requirements.keys)
|
19
|
-
s.dependencies.delete_if { |d| gems.include? d.name }
|
20
|
-
requirements.each { |name, requirement| s.dependencies << Gem::Dependency.new(name, requirement) }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
spec
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|