appraisal 0.4.1 → 0.5.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.
- data/.gitignore +2 -0
- data/.travis.yml +7 -0
- data/CONTRIBUTING.md +38 -0
- data/GOALS +5 -0
- data/MIT-LICENSE +1 -1
- data/README.md +3 -4
- data/features/appraisals.feature +4 -0
- data/features/gemspec.feature +10 -1
- data/features/support/aruba.rb +2 -2
- data/lib/appraisal.rb +0 -1
- data/lib/appraisal/appraisal.rb +11 -3
- data/lib/appraisal/command.rb +0 -1
- data/lib/appraisal/dependency.rb +9 -3
- data/lib/appraisal/file.rb +1 -1
- data/lib/appraisal/gemfile.rb +2 -2
- data/lib/appraisal/gemspec.rb +3 -1
- data/lib/appraisal/task.rb +0 -1
- data/lib/appraisal/version.rb +1 -1
- data/spec/appraisal/appraisal_spec.rb +16 -0
- metadata +49 -15
- data/.bundle/config +0 -2
- data/Gemfile.lock +0 -53
data/.travis.yml
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
We love pull requests. Here's a quick guide:
|
2
|
+
|
3
|
+
1. Fork the repo.
|
4
|
+
|
5
|
+
2. Run the tests. We only take pull requests with passing tests, and it's great
|
6
|
+
to know that you have a clean slate: `bundle && rake`
|
7
|
+
|
8
|
+
3. Add a test for your change. Only refactoring and documentation changes
|
9
|
+
require no new tests. If you are adding functionality or fixing a bug, we need
|
10
|
+
a test!
|
11
|
+
|
12
|
+
4. Make the test pass.
|
13
|
+
|
14
|
+
5. Push to your fork and submit a pull request.
|
15
|
+
|
16
|
+
|
17
|
+
At this point you're waiting on us. We like to at least comment on, if not
|
18
|
+
accept, pull requests within three business days (and, typically, one business
|
19
|
+
day). We may suggest some changes or improvements or alternatives.
|
20
|
+
|
21
|
+
Some things that will increase the chance that your pull request is accepted,
|
22
|
+
taken straight from the Ruby on Rails guide:
|
23
|
+
|
24
|
+
* Use Rails idioms and helpers
|
25
|
+
* Include tests that fail without your code, and pass with it
|
26
|
+
* Update the documentation, the surrounding one, examples elsewhere, guides,
|
27
|
+
whatever is affected by your contribution
|
28
|
+
|
29
|
+
Syntax:
|
30
|
+
|
31
|
+
* Two spaces, no tabs.
|
32
|
+
* No trailing whitespace. Blank lines should not have any space.
|
33
|
+
* Prefer &&/|| over and/or.
|
34
|
+
* MyClass.my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
35
|
+
* a = b and not a=b.
|
36
|
+
* Follow the conventions you see used in the source already.
|
37
|
+
|
38
|
+
And in case we didn't emphasize it enough: we love tests!
|
data/GOALS
ADDED
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
Appraisal
|
2
|
-
=========
|
1
|
+
# Appraisal [](http://travis-ci.org/thoughtbot/appraisal?branch=master)
|
3
2
|
|
4
3
|
Find out what your Ruby gems are worth.
|
5
4
|
|
@@ -8,7 +7,7 @@ Synopsis
|
|
8
7
|
|
9
8
|
Appraisal integrates with bundler and rake to test your library against
|
10
9
|
different versions of dependencies in repeatable scenarios called "appraisals."
|
11
|
-
Appraisal is designed to make
|
10
|
+
Appraisal is designed to make it easy to check for regressions in your library
|
12
11
|
without interfering with day-to-day development using bundler.
|
13
12
|
|
14
13
|
Installation
|
@@ -108,4 +107,4 @@ The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|
|
108
107
|
License
|
109
108
|
-------
|
110
109
|
|
111
|
-
Appraisal is Copyright ©
|
110
|
+
Appraisal is Copyright © 2010-2012 Joe Ferris and thoughtbot. It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.
|
data/features/appraisals.feature
CHANGED
@@ -10,6 +10,7 @@ Feature: run a rake task through several appraisals
|
|
10
10
|
| dummy_rake | 0.8.7 |
|
11
11
|
| dummy_rake | 0.9.0 |
|
12
12
|
| dummy_sass | 3.1.0 |
|
13
|
+
| dummy_spec | 3.1.9 |
|
13
14
|
When I cd to "projecto"
|
14
15
|
And I write to "Gemfile" with:
|
15
16
|
"""
|
@@ -18,6 +19,9 @@ Feature: run a rake task through several appraisals
|
|
18
19
|
group :assets do
|
19
20
|
gem 'dummy_sass', " ~> 3.1.0"
|
20
21
|
end
|
22
|
+
group :test, :development do
|
23
|
+
gem 'dummy_spec', " ~> 3.1.0"
|
24
|
+
end
|
21
25
|
"""
|
22
26
|
When I add "appraisal" from this project as a dependency
|
23
27
|
And I write to "Appraisals" with:
|
data/features/gemspec.feature
CHANGED
@@ -32,7 +32,7 @@ Feature: appraisals using an existing gemspec
|
|
32
32
|
And I write to "Appraisals" with:
|
33
33
|
"""
|
34
34
|
appraise "stock" do
|
35
|
-
gem "
|
35
|
+
gem "rake"
|
36
36
|
end
|
37
37
|
"""
|
38
38
|
When I write to "Rakefile" with:
|
@@ -68,3 +68,12 @@ Feature: appraisals using an existing gemspec
|
|
68
68
|
When I run `bundle exec rake appraisal version --trace`
|
69
69
|
Then the output should contain "Loaded 1.3.0"
|
70
70
|
|
71
|
+
Scenario: run a gem in the gemspec via path
|
72
|
+
And I write to "Gemfile" with:
|
73
|
+
"""
|
74
|
+
gemspec :path => './specdir'
|
75
|
+
"""
|
76
|
+
When I add "appraisal" from this project as a dependency
|
77
|
+
When I successfully run `bundle exec rake appraisal:install --trace`
|
78
|
+
When I run `bundle exec rake appraisal version --trace`
|
79
|
+
Then the output should contain "Loaded 1.3.0"
|
data/features/support/aruba.rb
CHANGED
data/lib/appraisal.rb
CHANGED
data/lib/appraisal/appraisal.rb
CHANGED
@@ -25,7 +25,7 @@ module Appraisal
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def install
|
28
|
-
Command.new(
|
28
|
+
Command.new(bundle_command).run
|
29
29
|
end
|
30
30
|
|
31
31
|
def gemfile_path
|
@@ -33,7 +33,12 @@ module Appraisal
|
|
33
33
|
FileUtils.mkdir(gemfile_root)
|
34
34
|
end
|
35
35
|
|
36
|
-
::File.join(gemfile_root, "#{
|
36
|
+
::File.join(gemfile_root, "#{clean_name}.gemfile")
|
37
|
+
end
|
38
|
+
|
39
|
+
def bundle_command
|
40
|
+
gemfile = "--gemfile='#{gemfile_path}'"
|
41
|
+
"bundle check #{gemfile} || bundle install #{gemfile}"
|
37
42
|
end
|
38
43
|
|
39
44
|
private
|
@@ -41,6 +46,9 @@ module Appraisal
|
|
41
46
|
def gemfile_root
|
42
47
|
::File.join(Dir.pwd, "gemfiles")
|
43
48
|
end
|
49
|
+
|
50
|
+
def clean_name
|
51
|
+
name.gsub(/\s+/, '_').gsub(/[^\w]/, '')
|
52
|
+
end
|
44
53
|
end
|
45
54
|
end
|
46
|
-
|
data/lib/appraisal/command.rb
CHANGED
data/lib/appraisal/dependency.rb
CHANGED
@@ -9,8 +9,7 @@ module Appraisal
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def to_s
|
12
|
-
|
13
|
-
if requirements.nil? || requirements.empty?
|
12
|
+
if no_requirements?
|
14
13
|
gem_name
|
15
14
|
else
|
16
15
|
"#{gem_name}, #{inspect_requirements}"
|
@@ -19,9 +18,16 @@ module Appraisal
|
|
19
18
|
|
20
19
|
private
|
21
20
|
|
21
|
+
def gem_name
|
22
|
+
%{gem "#{name}"}
|
23
|
+
end
|
24
|
+
|
25
|
+
def no_requirements?
|
26
|
+
requirements.nil? || requirements.empty?
|
27
|
+
end
|
28
|
+
|
22
29
|
def inspect_requirements
|
23
30
|
requirements.map { |requirement| requirement.inspect.gsub(/^\{|\}$/, '') }.join(", ")
|
24
31
|
end
|
25
32
|
end
|
26
33
|
end
|
27
|
-
|
data/lib/appraisal/file.rb
CHANGED
data/lib/appraisal/gemfile.rb
CHANGED
@@ -24,7 +24,7 @@ module Appraisal
|
|
24
24
|
@dependencies << Dependency.new(name, requirements)
|
25
25
|
end
|
26
26
|
|
27
|
-
def group(
|
27
|
+
def group(*names)
|
28
28
|
# ignore the group
|
29
29
|
end
|
30
30
|
|
@@ -38,7 +38,7 @@ module Appraisal
|
|
38
38
|
|
39
39
|
def dup
|
40
40
|
gemfile = Gemfile.new
|
41
|
-
@sources.each { |source| gemfile.source
|
41
|
+
@sources.each { |source| gemfile.source(source) }
|
42
42
|
dependencies.each do |dependency|
|
43
43
|
gemfile.gem(dependency.name, *dependency.requirements)
|
44
44
|
end
|
data/lib/appraisal/gemspec.rb
CHANGED
data/lib/appraisal/task.rb
CHANGED
data/lib/appraisal/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'appraisal/appraisal'
|
3
|
+
|
4
|
+
describe Appraisal::Appraisal do
|
5
|
+
it "creates a proper bundle command" do
|
6
|
+
appraisal = Appraisal::Appraisal.new('fake', 'fake')
|
7
|
+
appraisal.stub(:gemfile_path).and_return("/home/test/test directory")
|
8
|
+
|
9
|
+
appraisal.bundle_command.should == "bundle check --gemfile='/home/test/test directory' || bundle install --gemfile='/home/test/test directory'"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "cleans up spaces and punctuation when outputting its gemfile" do
|
13
|
+
appraisal = Appraisal::Appraisal.new("This! is my appraisal name.", "Gemfile")
|
14
|
+
appraisal.gemfile_path.should =~ /This_is_my_appraisal_name.gemfile/
|
15
|
+
end
|
16
|
+
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: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: bundler
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: cucumber
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '1.0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rspec
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '2.6'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2.6'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: aruba
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: 0.4.2
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.4.2
|
69
94
|
description: Appraisal integrates with bundler and rake to test your library against
|
70
95
|
different versions of dependencies in repeatable scenarios called "appraisals."
|
71
96
|
email: jferris@thoughtbot.com
|
@@ -73,11 +98,12 @@ executables: []
|
|
73
98
|
extensions: []
|
74
99
|
extra_rdoc_files: []
|
75
100
|
files:
|
76
|
-
- .bundle/config
|
77
101
|
- .gitignore
|
78
102
|
- .rspec
|
103
|
+
- .travis.yml
|
104
|
+
- CONTRIBUTING.md
|
105
|
+
- GOALS
|
79
106
|
- Gemfile
|
80
|
-
- Gemfile.lock
|
81
107
|
- MIT-LICENSE
|
82
108
|
- README.md
|
83
109
|
- Rakefile
|
@@ -96,6 +122,7 @@ files:
|
|
96
122
|
- lib/appraisal/gemspec.rb
|
97
123
|
- lib/appraisal/task.rb
|
98
124
|
- lib/appraisal/version.rb
|
125
|
+
- spec/appraisal/appraisal_spec.rb
|
99
126
|
- spec/appraisal/gemfile_spec.rb
|
100
127
|
- spec/spec_helper.rb
|
101
128
|
homepage: http://github.com/thoughtbot/appraisal
|
@@ -110,15 +137,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
137
|
- - ! '>='
|
111
138
|
- !ruby/object:Gem::Version
|
112
139
|
version: '0'
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
hash: 3878235132907510848
|
113
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
144
|
none: false
|
115
145
|
requirements:
|
116
146
|
- - ! '>='
|
117
147
|
- !ruby/object:Gem::Version
|
118
148
|
version: '0'
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
hash: 3878235132907510848
|
119
152
|
requirements: []
|
120
153
|
rubyforge_project:
|
121
|
-
rubygems_version: 1.8.
|
154
|
+
rubygems_version: 1.8.24
|
122
155
|
signing_key:
|
123
156
|
specification_version: 3
|
124
157
|
summary: Find out what your Ruby gems are worth
|
@@ -128,5 +161,6 @@ test_files:
|
|
128
161
|
- features/step_definitions/dependency_steps.rb
|
129
162
|
- features/support/aruba.rb
|
130
163
|
- features/support/env.rb
|
164
|
+
- spec/appraisal/appraisal_spec.rb
|
131
165
|
- spec/appraisal/gemfile_spec.rb
|
132
166
|
- spec/spec_helper.rb
|
data/.bundle/config
DELETED
data/Gemfile.lock
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
appraisal (0.4.1)
|
5
|
-
bundler
|
6
|
-
rake
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: http://rubygems.org/
|
10
|
-
specs:
|
11
|
-
aruba (0.4.5)
|
12
|
-
bcat (>= 0.6.1)
|
13
|
-
childprocess (>= 0.1.9)
|
14
|
-
cucumber (>= 0.10.7)
|
15
|
-
rdiscount (>= 1.6.8)
|
16
|
-
rspec (>= 2.6.0)
|
17
|
-
bcat (0.6.1)
|
18
|
-
rack (~> 1.0)
|
19
|
-
builder (3.0.0)
|
20
|
-
childprocess (0.2.0)
|
21
|
-
ffi (~> 1.0.6)
|
22
|
-
cucumber (1.0.2)
|
23
|
-
builder (>= 2.1.2)
|
24
|
-
diff-lcs (>= 1.1.2)
|
25
|
-
gherkin (~> 2.4.5)
|
26
|
-
json (>= 1.4.6)
|
27
|
-
term-ansicolor (>= 1.0.5)
|
28
|
-
diff-lcs (1.1.2)
|
29
|
-
ffi (1.0.9)
|
30
|
-
gherkin (2.4.5)
|
31
|
-
json (>= 1.4.6)
|
32
|
-
json (1.5.3)
|
33
|
-
rack (1.3.2)
|
34
|
-
rake (0.9.2.2)
|
35
|
-
rdiscount (1.6.8)
|
36
|
-
rspec (2.6.0)
|
37
|
-
rspec-core (~> 2.6.0)
|
38
|
-
rspec-expectations (~> 2.6.0)
|
39
|
-
rspec-mocks (~> 2.6.0)
|
40
|
-
rspec-core (2.6.4)
|
41
|
-
rspec-expectations (2.6.0)
|
42
|
-
diff-lcs (~> 1.1.2)
|
43
|
-
rspec-mocks (2.6.0)
|
44
|
-
term-ansicolor (1.0.6)
|
45
|
-
|
46
|
-
PLATFORMS
|
47
|
-
ruby
|
48
|
-
|
49
|
-
DEPENDENCIES
|
50
|
-
appraisal!
|
51
|
-
aruba (~> 0.4.2)
|
52
|
-
cucumber (~> 1.0)
|
53
|
-
rspec (~> 2.6)
|