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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c4b2fe832df4a34e38e9cbb7834a91bc043ec7e56cd098bc4b964b7a146cb42
4
- data.tar.gz: ad9fd9af2ae024234f79d25bebc2a6282f7d1d2f47f00ccafe2a498cbf4d9987
3
+ metadata.gz: f0e1422d7af788242f04d6d27ba6e1460c9fffef3ea3c708de7055937d8f6327
4
+ data.tar.gz: 153ac33a2db604be438f9044ad6ba738d5fc45dca4a07a844c10e57720a4c05f
5
5
  SHA512:
6
- metadata.gz: 1a8186b8b0824d16c84cff8cf1cc93371095af98885b09bc6c172ac95ae5e451f4a0a6f5f82c88f7bfb90c79728c67fc0d71eab916eaea45b38bade99c85f319
7
- data.tar.gz: fc94923f1dbbb0d634c735033e435f6d654e9259e6d9e3e5cc25fcb44dc835f584294830fef9c24fc75209af97dff6a068bfe00a2435cc913eea7e7e5c512563
6
+ metadata.gz: 5bc04eb178bcd69a86e178927d8e29aedc09b5a29b3f3a470cf35c1dde5e7c875b3553ac116373026ea75323bd73bba4c2741861cb0267fb6cb7bd5aca84658d
7
+ data.tar.gz: bf5a8a689cee01ff98be4c35ef4e71f8d246fb1329d186a374b1ee26e92e8742a7aa6312001bf2182e20a007b5209e2f3600a8e7ec3c97e922623c7089b26b59
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2023-07-20
3
+ ## [0.2.0] - 2024-05-06
4
+
5
+ - Fix for bundler 2.3.x and explicitly support only later versions of bundler
6
+
7
+ ## [0.1.0] - 2023-08-30
4
8
 
5
9
  - Initial release
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.2 and _Bundler_ 2.4.14 are mostly tested versions.
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
- override 'chef-config', :drop => ['chef-utils', 'mixlib-config']
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
- override 'chef-config', :drop => 'mixlib-config', :requirements => {
41
- 'chef-utils' => '17.10.68'
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
- override 'chef-config', :requirements => {
49
- 'chef-utils' => '17.10.68',
50
- 'mixlib-config' => '2.0.0'
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bundler
4
4
  module Override
5
- VERSION = "0.1.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
@@ -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/specset_patch"
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.1.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: 2023-08-30 00:00:00.000000000 Z
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.0.0
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.4.19
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,14 +0,0 @@
1
- module Bundler
2
- module Override
3
- module SharedHelpersPatch
4
-
5
- def ensure_same_dependencies(spec, old_deps, new_deps)
6
- if Bundler::Override.override? spec.name
7
- new_deps.clear()
8
- new_deps.push(*old_deps)
9
- end
10
- super
11
- end
12
- end
13
- end
14
- end
@@ -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