bundler-override 0.2.0 → 0.4.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: 0bd6e62dca304e5a1ab179eff9568b630196e4a749c0548163a702b91e2e3c24
4
+ data.tar.gz: 61372ce4de840f49771bffcf835104eccbd9d1ae130cda95e5db56d76d50e8d0
5
5
  SHA512:
6
- metadata.gz: 7f5d86bb558ecab3f5b4b670da2393369c61b24a8fe602d113f5f5ba51ac322931d3b9f9a9ed79ac86605522bc3348f9321f3446e13545ba5a2257de4dd92eab
7
- data.tar.gz: c53ff42cb20d299e4cd4ff48b70f856d09db7b96beedde086e78088a4c2df8f2df9ae7920741205f8f0b436a32f353326012e2acf74f38f7b65f8431be4b3646
6
+ metadata.gz: 87dafa3a804fba228f5e3fd25fbfa3ed775a6fcf30399bb37860ddce12133f64f73aa5dbffbec2db097fa857af92de21b4db89e808b475abd4cd25384610a314
7
+ data.tar.gz: 61dc9c5754f92e28d1c1edcd4bac5270de2d33639d0d5d17ae680c5c90cff406cf7d8dc7b30687992e30ea8d4f6f19023eaf1d4d51faddb1091390e7e4bed4f1
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,54 @@
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
+ alias_method :runtime_dependencies_orig, :runtime_dependencies if base.method_defined?(:runtime_dependencies)
8
+
9
+ def dependencies
10
+ override_dependencies(dependencies_orig) || []
11
+ end
12
+
13
+ def runtime_dependencies
14
+ override_dependencies(runtime_dependencies_orig) || []
15
+ end
16
+
17
+ def override_dependencies(deps)
18
+ return deps unless Bundler::Override.override? name
19
+
20
+ param = Bundler::Override.params(name)
21
+ drop = Array(param[:drop])
22
+ requirements = param[:requirements]
23
+ if requirements && !requirements.empty?
24
+ requirements.each do |name, requirement|
25
+ existing = deps.find { |d| d.name == name }
26
+ deps.delete_if { |d| d.name == name }
27
+ deps << Gem::Dependency.new(name, requirement, existing&.type || :runtime)
28
+ end
29
+ end
30
+ deps.delete_if { |d| drop.include? d.name }
31
+
32
+ deps
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ module Bundler
41
+ class RemoteSpecification
42
+ include Override::DependencyPatch
43
+ end
44
+
45
+ class EndpointSpecification
46
+ include Override::DependencyPatch
47
+ end
48
+ end
49
+
50
+ module Gem
51
+ class Specification
52
+ include Bundler::Override::DependencyPatch
53
+ end
54
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bundler
4
4
  module Override
5
- VERSION = "0.2.0"
5
+ VERSION = "0.4.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.4.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.7.2
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