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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8085dfca492ca7b6caf0664e3a829e775ee91995deed7858afce61ed0771b546
4
- data.tar.gz: bf64b0f88d3976632d256dd6297561e7e6da33dcc00411e8abc5b4f0a43ccefe
3
+ metadata.gz: f0e1422d7af788242f04d6d27ba6e1460c9fffef3ea3c708de7055937d8f6327
4
+ data.tar.gz: 153ac33a2db604be438f9044ad6ba738d5fc45dca4a07a844c10e57720a4c05f
5
5
  SHA512:
6
- metadata.gz: 7f5d86bb558ecab3f5b4b670da2393369c61b24a8fe602d113f5f5ba51ac322931d3b9f9a9ed79ac86605522bc3348f9321f3446e13545ba5a2257de4dd92eab
7
- data.tar.gz: c53ff42cb20d299e4cd4ff48b70f856d09db7b96beedde086e78088a4c2df8f2df9ae7920741205f8f0b436a32f353326012e2acf74f38f7b65f8431be4b3646
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
- 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
41
43
  ~~~
42
44
 
43
45
  or
44
46
 
45
47
  ~~~ruby
46
- override 'chef-config', :drop => 'mixlib-config', :requirements => {
47
- 'chef-utils' => '17.10.68'
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
- override 'chef-config', :requirements => {
55
- 'chef-utils' => '17.10.68',
56
- 'mixlib-config' => '2.0.0'
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bundler
4
4
  module Override
5
- VERSION = "0.2.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.2.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: 2024-05-06 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: []
@@ -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.0.0
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.5.4
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,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,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