bundler-auto-update 0.0.1 → 0.0.2
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/Gemfile +4 -0
- data/Rakefile +12 -0
- data/features/bundler_auto_update.feature +3 -11
- data/lib/bundler_auto_update.rb +15 -7
- data/lib/bundler_auto_update/version.rb +1 -1
- data/spec/unit/gemfile_spec.rb +2 -2
- metadata +3 -3
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1 +1,13 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
|
+
|
3
|
+
desc "Run specs"
|
4
|
+
task :spec do
|
5
|
+
raise unless system 'bundle exec rspec spec'
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Run cucumber"
|
9
|
+
task :cucumber do
|
10
|
+
raise unless system 'bundle exec cucumber features'
|
11
|
+
end
|
12
|
+
|
13
|
+
task :default => [:spec, :cucumber]
|
@@ -4,7 +4,7 @@ Feature: Auto update Gemfile
|
|
4
4
|
In order to keep my application up to date
|
5
5
|
I want Bundler AutoUpdate to attempt to update every single gem of my Gemfile
|
6
6
|
|
7
|
-
|
7
|
+
Background:
|
8
8
|
Given a file named "Gemfile" with:
|
9
9
|
"""
|
10
10
|
source "http://rubygems.org"
|
@@ -15,6 +15,8 @@ Feature: Auto update Gemfile
|
|
15
15
|
Then the output should contain "dmg (0.0.2) "
|
16
16
|
Then the output should contain "complete!"
|
17
17
|
|
18
|
+
|
19
|
+
Scenario: Auto Update
|
18
20
|
When I run `bundle-auto-update`
|
19
21
|
Then the output should contain:
|
20
22
|
"""
|
@@ -29,16 +31,6 @@ Feature: Auto update Gemfile
|
|
29
31
|
"""
|
30
32
|
|
31
33
|
Scenario: Auto Update with custom command
|
32
|
-
Given a file named "Gemfile" with:
|
33
|
-
"""
|
34
|
-
source "http://rubygems.org"
|
35
|
-
|
36
|
-
gem 'dmg', '0.0.2'
|
37
|
-
"""
|
38
|
-
When I run `bundle install`
|
39
|
-
Then the output should contain "dmg (0.0.2) "
|
40
|
-
Then the output should contain "complete!"
|
41
|
-
|
42
34
|
When I run `git init`
|
43
35
|
When I run `git add .`
|
44
36
|
When I run `git commit -a -m "Initial Commit"`
|
data/lib/bundler_auto_update.rb
CHANGED
@@ -66,14 +66,16 @@ module Bundler
|
|
66
66
|
|
67
67
|
gem.version = new_version
|
68
68
|
|
69
|
-
gemfile.update_gem(gem)
|
70
|
-
|
71
|
-
if run_test_suite
|
69
|
+
if gemfile.update_gem(gem) && run_test_suite
|
72
70
|
Logger.log_indent "Test suite ran successfully. Committing changes."
|
73
71
|
commit_new_version
|
72
|
+
|
73
|
+
true
|
74
74
|
else
|
75
75
|
Logger.log_indent "Test suite failed to run. Reverting changes."
|
76
76
|
revert_to_previous_version
|
77
|
+
|
78
|
+
false
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
@@ -87,6 +89,7 @@ module Bundler
|
|
87
89
|
|
88
90
|
def revert_to_previous_version
|
89
91
|
run_cmd "git checkout Gemfile Gemfile.lock"
|
92
|
+
gemfile.reload!
|
90
93
|
end
|
91
94
|
|
92
95
|
def run_test_suite
|
@@ -94,8 +97,6 @@ module Bundler
|
|
94
97
|
end
|
95
98
|
|
96
99
|
def run_cmd(cmd)
|
97
|
-
Logger.log cmd
|
98
|
-
|
99
100
|
CommandRunner.system(cmd)
|
100
101
|
end
|
101
102
|
end # class Updater
|
@@ -129,6 +130,10 @@ module Bundler
|
|
129
130
|
@content ||= read
|
130
131
|
end
|
131
132
|
|
133
|
+
def reload!
|
134
|
+
@content = read
|
135
|
+
end
|
136
|
+
|
132
137
|
private
|
133
138
|
|
134
139
|
def update_content(gem)
|
@@ -155,7 +160,7 @@ module Bundler
|
|
155
160
|
end
|
156
161
|
|
157
162
|
def run_bundle_update(gem)
|
158
|
-
CommandRunner.system("bundle install")
|
163
|
+
CommandRunner.system("bundle install") or CommandRunner.system("bundle update #{gem.name}")
|
159
164
|
end
|
160
165
|
end # class Gemfile
|
161
166
|
|
@@ -196,16 +201,19 @@ module Bundler
|
|
196
201
|
end
|
197
202
|
|
198
203
|
def gem_remote_list_output
|
199
|
-
CommandRunner.run "gem list #{name} -r"
|
204
|
+
CommandRunner.run "gem list #{name} -r -a"
|
200
205
|
end
|
201
206
|
end # class Dependency
|
202
207
|
|
203
208
|
class CommandRunner
|
204
209
|
def self.system(cmd)
|
210
|
+
Logger.log cmd
|
205
211
|
Kernel.system cmd
|
206
212
|
end
|
207
213
|
|
208
214
|
def self.run(cmd)
|
215
|
+
Logger.log cmd
|
216
|
+
|
209
217
|
`#{cmd}`
|
210
218
|
end
|
211
219
|
end
|
data/spec/unit/gemfile_spec.rb
CHANGED
@@ -67,8 +67,8 @@ EOF
|
|
67
67
|
gemfile.update_gem(Dependency.new('rails', '3.1.0'))
|
68
68
|
end
|
69
69
|
|
70
|
-
it "should run 'bundle
|
71
|
-
CommandRunner.should_receive(:system).with("bundle
|
70
|
+
it "should run 'bundle install' against the gem" do
|
71
|
+
CommandRunner.should_receive(:system).with("bundle install")
|
72
72
|
|
73
73
|
gemfile.update_gem(Dependency.new('rails', '3.1.0'))
|
74
74
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler-auto-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Philippe Creux
|