bummr 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/README.md +8 -1
- data/Rakefile +9 -1
- data/bin/bummr +1 -1
- data/bummr.gemspec +10 -6
- data/lib/bummr.rb +2 -4
- data/lib/bummr/cli.rb +3 -31
- data/lib/bummr/outdated.rb +43 -0
- data/lib/bummr/version.rb +1 -1
- data/spec/outdated_spec.rb +25 -0
- data/spec/spec_helper.rb +2 -0
- metadata +85 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb83d2ce7db59a0420fbfb78ca04026aafa4c945
|
4
|
+
data.tar.gz: 6f4a32d78dabf543fc17469e939419ab10e9f091
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 309abf056757d64abdc38fe77a373c8575d9607e582620246a53fa0ad42f45b5103239ae3f589d64e7303ab0119bc27058eb6a162516b7c8c7d8bc28c8842e61
|
7
|
+
data.tar.gz: 50f5c6b7b537e4271cc7c3ca4672b41db8a48e190e8ae8f8492c3393052b483a5c450d52afb433a85a10851258b27e49e8f2979aeeb4a5f8a164f69e36b226fa
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.1
|
data/README.md
CHANGED
@@ -85,7 +85,14 @@ suite.
|
|
85
85
|
|
86
86
|
`rake build` to build locally
|
87
87
|
|
88
|
-
`gem install --local ~/dev/mine/bummr/pkg/bummr-
|
88
|
+
`gem install --local ~/dev/mine/bummr/pkg/bummr-X.X.X.gem` in the app you
|
89
|
+
wish to use it with.
|
90
|
+
|
91
|
+
`rake` will run the suite of unit tests.
|
92
|
+
|
93
|
+
I'd like to create feature tests, but because Bummr relies on command line
|
94
|
+
manipulations which need to be doubled, I'm waiting on [this
|
95
|
+
issue](https://github.com/bjoernalbers/aruba-doubles/issues/5)
|
89
96
|
|
90
97
|
## Wanted
|
91
98
|
|
data/Rakefile
CHANGED
@@ -1,2 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
require 'bundler/gem_tasks'
|
2
3
|
|
4
|
+
# Default directory to look in is `/specs`
|
5
|
+
# Run with `rake spec`
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
+
task.rspec_opts = ['--color', '--format', 'progress']
|
8
|
+
end
|
9
|
+
|
10
|
+
task :default => :spec
|
data/bin/bummr
CHANGED
data/bummr.gemspec
CHANGED
@@ -18,11 +18,15 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency 'thor'
|
22
|
-
spec.add_dependency 'colorize'
|
21
|
+
spec.add_dependency 'thor'
|
22
|
+
spec.add_dependency 'colorize'
|
23
23
|
|
24
|
-
spec.add_development_dependency "
|
25
|
-
spec.add_development_dependency "
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
24
|
+
spec.add_development_dependency "rspec"
|
25
|
+
spec.add_development_dependency "rspec-nc"
|
26
|
+
spec.add_development_dependency "bundler"
|
27
|
+
spec.add_development_dependency "rake"
|
28
|
+
spec.add_development_dependency "guard"
|
29
|
+
spec.add_development_dependency "pry"
|
30
|
+
spec.add_development_dependency "pry-remote"
|
31
|
+
spec.add_development_dependency "pry-nav"
|
28
32
|
end
|
data/lib/bummr.rb
CHANGED
data/lib/bummr/cli.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'bundler'
|
2
1
|
require 'thor'
|
3
2
|
require 'open3'
|
4
3
|
require 'colorize'
|
@@ -52,6 +51,7 @@ module Bummr
|
|
52
51
|
exit 0
|
53
52
|
else
|
54
53
|
puts "Ready to run bummr.".green
|
54
|
+
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -71,6 +71,8 @@ module Bummr
|
|
71
71
|
log("Bummr update initiated #{Time.now}")
|
72
72
|
`bundle`
|
73
73
|
|
74
|
+
outdated_gems = Bummr::Outdated.instance.outdated_gems
|
75
|
+
|
74
76
|
if outdated_gems.empty?
|
75
77
|
say "No outdated gems to update".green
|
76
78
|
else
|
@@ -174,35 +176,5 @@ module Bummr
|
|
174
176
|
say "Run 'bummr test' again once the rebase is complete"
|
175
177
|
end
|
176
178
|
end
|
177
|
-
|
178
|
-
def outdated_gems
|
179
|
-
@outdated_gems ||= begin
|
180
|
-
results = []
|
181
|
-
|
182
|
-
Open3.popen2("bundle outdated --strict") do |std_in, std_out|
|
183
|
-
while line = std_out.gets
|
184
|
-
puts line
|
185
|
-
|
186
|
-
regex = / \* (.*) \(newest (\d\.\d\.\d), installed (\d\.\d\.\d)/.match line
|
187
|
-
unless regex.nil?
|
188
|
-
gem = { name: regex[1], newest: regex[2], installed: regex[3] }
|
189
|
-
if gemfile_contains(gem[:name])
|
190
|
-
results.push gem
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
results
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
|
-
def gemfile_contains(gem_name)
|
201
|
-
/['"]#{gem_name}['"]/.match gemfile
|
202
|
-
end
|
203
|
-
|
204
|
-
def gemfile
|
205
|
-
@gemfile ||= `cat Gemfile`
|
206
|
-
end
|
207
179
|
end
|
208
180
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'open3'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
module Bummr
|
5
|
+
class Outdated
|
6
|
+
include Singleton
|
7
|
+
|
8
|
+
def outdated_gems
|
9
|
+
@outdated_gems ||= begin
|
10
|
+
results = []
|
11
|
+
|
12
|
+
Open3.popen2("bundle outdated --strict") do |std_in, std_out|
|
13
|
+
while line = std_out.gets
|
14
|
+
puts line
|
15
|
+
gem = parse_gem_from(line)
|
16
|
+
|
17
|
+
if gem && gemfile_contains(gem[:name])
|
18
|
+
results.push gem
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
results
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def parse_gem_from(line)
|
28
|
+
regex = / \* (.*) \(newest (\d.*\d), installed (\d.*\d)[\),\s]/.match line
|
29
|
+
|
30
|
+
unless regex.nil?
|
31
|
+
{ name: regex[1], newest: regex[2], installed: regex[3] }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def gemfile_contains(gem_name)
|
36
|
+
/gem ['"]#{gem_name}['"]/.match gemfile
|
37
|
+
end
|
38
|
+
|
39
|
+
def gemfile
|
40
|
+
@gemfile ||= `cat Gemfile`
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/bummr/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Bummr::Outdated do
|
4
|
+
describe "#parse_gem_from" do
|
5
|
+
it 'line' do
|
6
|
+
line = ' * devise (newest 4.1.1, installed 3.5.2) in group "default"'
|
7
|
+
|
8
|
+
gem = Bummr::Outdated.instance.parse_gem_from(line)
|
9
|
+
|
10
|
+
expect(gem[:name]).to eq('devise')
|
11
|
+
expect(gem[:newest]).to eq('4.1.1')
|
12
|
+
expect(gem[:installed]).to eq('3.5.2')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'line in group' do
|
16
|
+
line = ' * rake (newest 11.1.2, installed 10.4.2)'
|
17
|
+
|
18
|
+
gem = Bummr::Outdated.instance.parse_gem_from(line)
|
19
|
+
|
20
|
+
expect(gem[:name]).to eq('rake')
|
21
|
+
expect(gem[:newest]).to eq('11.1.2')
|
22
|
+
expect(gem[:installed]).to eq('10.4.2')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bummr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Pender
|
@@ -14,84 +14,140 @@ dependencies:
|
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: colorize
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
39
46
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-nc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: bundler
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
|
-
- - "
|
73
|
+
- - ">="
|
46
74
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
75
|
+
version: '0'
|
48
76
|
type: :development
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
|
-
- - "
|
80
|
+
- - ">="
|
53
81
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rake
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
|
-
- - "
|
87
|
+
- - ">="
|
60
88
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
89
|
+
version: '0'
|
62
90
|
type: :development
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
|
-
- - "
|
94
|
+
- - ">="
|
67
95
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
96
|
+
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
98
|
+
name: guard
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
|
-
- - "
|
101
|
+
- - ">="
|
74
102
|
- !ruby/object:Gem::Version
|
75
103
|
version: '0'
|
76
104
|
type: :development
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
|
-
- - "
|
108
|
+
- - ">="
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: pry
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
|
-
- - "
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry-remote
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry-nav
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
88
144
|
- !ruby/object:Gem::Version
|
89
145
|
version: '0'
|
90
146
|
type: :development
|
91
147
|
prerelease: false
|
92
148
|
version_requirements: !ruby/object:Gem::Requirement
|
93
149
|
requirements:
|
94
|
-
- - "
|
150
|
+
- - ">="
|
95
151
|
- !ruby/object:Gem::Version
|
96
152
|
version: '0'
|
97
153
|
description: See Readme
|
@@ -111,7 +167,10 @@ files:
|
|
111
167
|
- bummr.gemspec
|
112
168
|
- lib/bummr.rb
|
113
169
|
- lib/bummr/cli.rb
|
170
|
+
- lib/bummr/outdated.rb
|
114
171
|
- lib/bummr/version.rb
|
172
|
+
- spec/outdated_spec.rb
|
173
|
+
- spec/spec_helper.rb
|
115
174
|
homepage: https://github.com/lpender/bummr
|
116
175
|
licenses:
|
117
176
|
- MIT
|
@@ -132,8 +191,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
191
|
version: '0'
|
133
192
|
requirements: []
|
134
193
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
194
|
+
rubygems_version: 2.5.1
|
136
195
|
signing_key:
|
137
196
|
specification_version: 4
|
138
197
|
summary: Helper script to intelligently update your Gemfile
|
139
|
-
test_files:
|
198
|
+
test_files:
|
199
|
+
- spec/outdated_spec.rb
|
200
|
+
- spec/spec_helper.rb
|