bundler-override 0.1.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/CHANGELOG.md +5 -1
- data/README.md +27 -10
- data/coverage/.keep +0 -0
- 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 +8 -12
- data/lib/bundler/override/sharedhelpers_patch.rb +0 -14
- data/lib/bundler/override/specset_patch.rb +0 -27
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/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -5,10 +5,16 @@ It can be helpful in situation when a developer needs to use some other dependen
|
|
5
5
|
|
6
6
|
## Requirements
|
7
7
|
|
8
|
-
_Ruby_ 3.
|
8
|
+
_Ruby_ >= 3.0 and _Bundler_ >= 2.3.x are required. For detailed compatibility matrix please refer to [test pipeline versions configuration](https://github.com/tarnowsc/bundler-override/blob/main/.github/workflows/ruby.yml#L24).
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
12
|
+
### For normal usage
|
13
|
+
~~~console
|
14
|
+
bundle plugin install "bundler-override"
|
15
|
+
~~~
|
16
|
+
|
17
|
+
### For development
|
12
18
|
1. Clone this project to your disk.
|
13
19
|
|
14
20
|
2. Install plugin from local git folder
|
@@ -31,29 +37,40 @@ require File.join(Bundler::Plugin.index.load_paths("bundler-override")[0], "bund
|
|
31
37
|
2. Add _'override'_ block to the _Gemfile_, e.g.:
|
32
38
|
|
33
39
|
~~~ruby
|
34
|
-
|
40
|
+
if Bundler::Plugin.installed?('bundler-override')
|
41
|
+
override 'chef-config', :drop => ['chef-utils', 'mixlib-config']
|
42
|
+
end
|
35
43
|
~~~
|
36
44
|
|
37
45
|
or
|
38
46
|
|
39
47
|
~~~ruby
|
40
|
-
|
41
|
-
'chef-
|
42
|
-
|
48
|
+
if Bundler::Plugin.installed?('bundler-override')
|
49
|
+
override 'chef-config', :drop => 'mixlib-config', :requirements => {
|
50
|
+
'chef-utils' => '17.10.68'
|
51
|
+
}
|
52
|
+
end
|
43
53
|
~~~
|
44
54
|
|
45
55
|
or
|
46
56
|
|
47
57
|
~~~ruby
|
48
|
-
|
49
|
-
'chef-
|
50
|
-
|
51
|
-
|
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
|
52
64
|
~~~
|
53
65
|
|
66
|
+
|
67
|
+
|
54
68
|
### override
|
55
69
|
|
56
|
-
`override` is a command that allows to replace dependency for a gem with desired version
|
70
|
+
`override` is a command that allows to drop or replace dependency for a gem with desired version
|
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.
|
57
74
|
|
58
75
|
### drop
|
59
76
|
|
data/coverage/.keep
ADDED
File without changes
|
@@ -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: []
|
@@ -109,11 +107,11 @@ files:
|
|
109
107
|
- LICENSE
|
110
108
|
- README.md
|
111
109
|
- Rakefile
|
110
|
+
- coverage/.keep
|
112
111
|
- events.rb
|
113
112
|
- lib/bundler-override.rb
|
113
|
+
- lib/bundler/override/dependency_patch.rb
|
114
114
|
- lib/bundler/override/dsl_patch.rb
|
115
|
-
- lib/bundler/override/sharedhelpers_patch.rb
|
116
|
-
- lib/bundler/override/specset_patch.rb
|
117
115
|
- lib/bundler/override/version.rb
|
118
116
|
- plugins.rb
|
119
117
|
- sig/bundler_override.rbs
|
@@ -125,7 +123,6 @@ metadata:
|
|
125
123
|
homepage_uri: https://github.com/tarnowsc/bundler-override
|
126
124
|
source_code_uri: https://github.com/tarnowsc/bundler-override
|
127
125
|
changelog_uri: https://github.com/tarnowsc/bundler-override/blob/main/CHANGELOG.md
|
128
|
-
post_install_message:
|
129
126
|
rdoc_options: []
|
130
127
|
require_paths:
|
131
128
|
- lib
|
@@ -133,17 +130,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
130
|
requirements:
|
134
131
|
- - ">="
|
135
132
|
- !ruby/object:Gem::Version
|
136
|
-
version: 3.
|
133
|
+
version: 3.2.0
|
137
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
135
|
requirements:
|
139
136
|
- - ">="
|
140
137
|
- !ruby/object:Gem::Version
|
141
138
|
version: '0'
|
142
139
|
requirements: []
|
143
|
-
rubygems_version: 3.
|
144
|
-
signing_key:
|
140
|
+
rubygems_version: 3.6.9
|
145
141
|
specification_version: 4
|
146
|
-
summary: This bundler plugin allows to change dependencies for a gem. It can be helpful
|
142
|
+
summary: 'This bundler plugin allows to change dependencies for a gem. It can be helpful
|
147
143
|
in situation when a developer needs to use some other dependency than default for
|
148
|
-
the gem.
|
144
|
+
the gem. For usage details, please see: https://github.com/tarnowsc/bundler-override#usage'
|
149
145
|
test_files: []
|
@@ -1,27 +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
|
-
if Bundler::Override.override? dep.name
|
11
|
-
s = spec.first
|
12
|
-
param = Bundler::Override.params(dep.name)
|
13
|
-
drop = param[:drop]
|
14
|
-
s.dependencies.delete_if { |d| drop.include? d.name }
|
15
|
-
requirements = param[:requirements]
|
16
|
-
if requirements
|
17
|
-
gems = Set.new(requirements.keys)
|
18
|
-
s.dependencies.delete_if { |d| gems.include? d.name }
|
19
|
-
requirements.each { |name, requirement| s.dependencies << Gem::Dependency.new(name, requirement) }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
spec
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|