appraisal 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +40 -0
- data/lib/appraisal/appraisal.rb +4 -0
- data/lib/appraisal/bundler_dsl.rb +4 -0
- data/lib/appraisal/dependency_list.rb +10 -1
- data/lib/appraisal/version.rb +1 -1
- data/spec/acceptance/appraisals_file_bundler_dsl_compatibility_spec.rb +4 -1
- data/spec/appraisal/dependency_list_spec.rb +19 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fe7f7616c7aef0aaa5544853800eb05b08f3bb619b4fc292b8e89bbd2e9ea4d
|
4
|
+
data.tar.gz: 43ef79f1e190735adc4fec2413b84b614938d2a94cae68760972ffe37ca3dff4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45cb2de8908bd80ab3331a8c452d5f77e0d573670c48e92441cf359c6ae615e7297d5a22e3c157197d659358cd8d9d776aea5c4b55782c3c94fb14c56f356acc
|
7
|
+
data.tar.gz: e6f88c11dbd4e09849c2318bc14174a482a9e738790fe7ccbcee376856c06d964888d54663c81a2901ef448a7e8de22d64de098ec3dfe2c527ae68ff7ce6415f
|
data/README.md
CHANGED
@@ -115,6 +115,46 @@ When you prefix a command with `appraisal`, the command is run with the
|
|
115
115
|
appropriate Gemfile for that appraisal, ensuring the correct dependencies
|
116
116
|
are used.
|
117
117
|
|
118
|
+
Removing Gems using Appraisal
|
119
|
+
-------
|
120
|
+
|
121
|
+
It is common while managing multiple Gemfiles for dependencies to become deprecated and no
|
122
|
+
longer necessary, meaning they need to be removed from the Gemfile for a specific `appraisal`.
|
123
|
+
To do this, use the `remove_gem` declaration within the necessary `appraise` block in your
|
124
|
+
`Appraisals` file.
|
125
|
+
|
126
|
+
### Example Usage
|
127
|
+
|
128
|
+
**Gemfile**
|
129
|
+
```ruby
|
130
|
+
gem 'rails', '~> 4.2'
|
131
|
+
|
132
|
+
group :test do
|
133
|
+
gem 'rspec', '~> 4.0'
|
134
|
+
gem 'test_after_commit'
|
135
|
+
end
|
136
|
+
```
|
137
|
+
|
138
|
+
**Appraisals**
|
139
|
+
```ruby
|
140
|
+
appraise 'rails-5' do
|
141
|
+
gem 'rails', '~> 5.2'
|
142
|
+
|
143
|
+
group :test do
|
144
|
+
remove_gem :test_after_commit
|
145
|
+
end
|
146
|
+
end
|
147
|
+
```
|
148
|
+
|
149
|
+
Using the `Appraisals` file defined above, this is what the resulting `Gemfile` will look like:
|
150
|
+
```ruby
|
151
|
+
gem 'rails', '~> 5.2'
|
152
|
+
|
153
|
+
group :test do
|
154
|
+
gem 'rspec', '~> 4.0'
|
155
|
+
end
|
156
|
+
```
|
157
|
+
|
118
158
|
Version Control
|
119
159
|
---------------
|
120
160
|
|
data/lib/appraisal/appraisal.rb
CHANGED
@@ -28,6 +28,10 @@ module Appraisal
|
|
28
28
|
@dependencies.add(name, substitute_git_source(requirements))
|
29
29
|
end
|
30
30
|
|
31
|
+
def remove_gem(name)
|
32
|
+
@dependencies.remove(name)
|
33
|
+
end
|
34
|
+
|
31
35
|
def group(*names, &block)
|
32
36
|
@groups[names] ||=
|
33
37
|
Group.new(names).tap { |g| g.git_sources = @git_sources.dup }
|
@@ -4,10 +4,19 @@ module Appraisal
|
|
4
4
|
class DependencyList
|
5
5
|
def initialize
|
6
6
|
@dependencies = Hash.new
|
7
|
+
@removed_dependencies = Set.new
|
7
8
|
end
|
8
9
|
|
9
10
|
def add(name, requirements)
|
10
|
-
@
|
11
|
+
unless @removed_dependencies.include?(name)
|
12
|
+
@dependencies[name] = Dependency.new(name, requirements)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def remove(name)
|
17
|
+
if @removed_dependencies.add?(name)
|
18
|
+
@dependencies.delete(name)
|
19
|
+
end
|
11
20
|
end
|
12
21
|
|
13
22
|
def to_s
|
data/lib/appraisal/version.rb
CHANGED
@@ -2,7 +2,8 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'Appraisals file Bundler DSL compatibility' do
|
4
4
|
it 'supports all Bundler DSL in Appraisals file' do
|
5
|
-
build_gems %w(bagel orange_juice milk waffle coffee ham
|
5
|
+
build_gems %w(bagel orange_juice milk waffle coffee ham
|
6
|
+
sausage pancake rotten_egg)
|
6
7
|
build_git_gems %w(egg croissant pain_au_chocolat omelette)
|
7
8
|
|
8
9
|
build_gemfile <<-Gemfile
|
@@ -24,6 +25,7 @@ describe 'Appraisals file Bundler DSL compatibility' do
|
|
24
25
|
group :breakfast do
|
25
26
|
gem 'orange_juice'
|
26
27
|
gem "omelette", :custom_git_source => "omelette"
|
28
|
+
gem 'rotten_egg'
|
27
29
|
end
|
28
30
|
|
29
31
|
platforms :ruby, :jruby do
|
@@ -58,6 +60,7 @@ describe 'Appraisals file Bundler DSL compatibility' do
|
|
58
60
|
end
|
59
61
|
|
60
62
|
group :breakfast do
|
63
|
+
remove_gem 'rotten_egg'
|
61
64
|
gem 'bacon'
|
62
65
|
|
63
66
|
platforms :rbx do
|
@@ -28,4 +28,23 @@ describe Appraisal::DependencyList do
|
|
28
28
|
expect(dependency_list.to_s).to eq %(gem "rails", "4.1.4")
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
describe "#remove" do
|
33
|
+
let(:dependency_list) { Appraisal::DependencyList.new }
|
34
|
+
|
35
|
+
before do
|
36
|
+
dependency_list.add("rails", ["4.1.4"])
|
37
|
+
end
|
38
|
+
|
39
|
+
it "removes the dependency from the list" do
|
40
|
+
dependency_list.remove("rails")
|
41
|
+
expect(dependency_list.to_s).to eq("")
|
42
|
+
end
|
43
|
+
|
44
|
+
it "respects the removal over an addition" do
|
45
|
+
dependency_list.remove("rails")
|
46
|
+
dependency_list.add("rails", ["4.1.0"])
|
47
|
+
expect(dependency_list.to_s).to eq("")
|
48
|
+
end
|
49
|
+
end
|
31
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appraisal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Ferris
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
164
|
- !ruby/object:Gem::Version
|
165
165
|
version: '0'
|
166
166
|
requirements: []
|
167
|
-
rubygems_version: 3.1.
|
167
|
+
rubygems_version: 3.1.4
|
168
168
|
signing_key:
|
169
169
|
specification_version: 4
|
170
170
|
summary: Find out what your Ruby gems are worth
|