strong_versions 0.4.4 → 0.4.5
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/.rubocop.yml +44 -0
- data/README.md +3 -13
- data/lib/strong_versions.rb +1 -0
- data/lib/strong_versions/dependencies.rb +10 -13
- data/lib/strong_versions/dependency.rb +5 -1
- data/lib/strong_versions/regexes.rb +15 -0
- data/lib/strong_versions/version.rb +1 -1
- data/strong_versions.gemspec +3 -4
- metadata +10 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e3d02b2717fbfdc7da2e7cc0d83b495e01bc6b31efae98f635abae1cf8bf837
|
4
|
+
data.tar.gz: fb28b5ddd0a45c7ca56306bcfd58013824c9949bcd723a324dde98431f0b197c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4482cf23782277e84fdbf1a3a3e9d998c5cac84202d3c21be563dc4eeb21cdd5c6ba54490ff4f2e81d85899cde8eed32e28879e3a0f861871a1cd5a45b51491
|
7
|
+
data.tar.gz: fccdb21e6f7b58966a4f6dcee95ae6c176ae7be7b5380f820b660235f7a56f80163414475e9a4799d50d369f1ab73ddd354da98ba9aba83db03eb74c82f1cce3
|
data/.rubocop.yml
CHANGED
@@ -16,3 +16,47 @@ AllCops:
|
|
16
16
|
- 'bin/rspec'
|
17
17
|
- 'bin/rubocop'
|
18
18
|
- 'bin/setup'
|
19
|
+
|
20
|
+
Layout/SpaceAroundMethodCallOperator:
|
21
|
+
Enabled: true
|
22
|
+
|
23
|
+
Lint/RaiseException:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
Lint/StructNewOverride:
|
27
|
+
Enabled: true
|
28
|
+
|
29
|
+
Style/ExponentialNotation:
|
30
|
+
Enabled: true
|
31
|
+
|
32
|
+
Style/HashEachMethods:
|
33
|
+
Enabled: true
|
34
|
+
|
35
|
+
Style/HashTransformKeys:
|
36
|
+
Enabled: true
|
37
|
+
|
38
|
+
Style/HashTransformValues:
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
Style/SlicingWithRange:
|
45
|
+
Enabled: true
|
46
|
+
|
47
|
+
Lint/DeprecatedOpenSSLConstant:
|
48
|
+
Enabled: true
|
49
|
+
Lint/MixedRegexpCaptureTypes:
|
50
|
+
Enabled: true
|
51
|
+
Style/AccessorGrouping:
|
52
|
+
Enabled: true
|
53
|
+
Style/BisectedAttrAccessor:
|
54
|
+
Enabled: true
|
55
|
+
Style/RedundantAssignment:
|
56
|
+
Enabled: true
|
57
|
+
Style/RedundantFetchBlock:
|
58
|
+
Enabled: true
|
59
|
+
Style/RedundantRegexpCharacterClass:
|
60
|
+
Enabled: true
|
61
|
+
Style/RedundantRegexpEscape:
|
62
|
+
Enabled: true
|
data/README.md
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
# StrongVersions
|
2
2
|
|
3
|
-
```
|
4
|
-
The right thing to guide us
|
5
|
-
Is right here inside us
|
6
|
-
--Nickelback
|
7
|
-
```
|
8
|
-
|
9
3
|
# Overview
|
10
4
|
|
11
5
|
_StrongVersions_ enforces a strict policy on your `Gemfile` requirements:
|
@@ -28,7 +22,7 @@ When all gems in a `Gemfile` follow this convention it SHOULD always be safe to
|
|
28
22
|
Add the gem to your `Gemfile`
|
29
23
|
|
30
24
|
```ruby
|
31
|
-
gem 'strong_versions', '~> 0.4.
|
25
|
+
gem 'strong_versions', '~> 0.4.5'
|
32
26
|
```
|
33
27
|
|
34
28
|
And rebuild your bundle:
|
@@ -37,11 +31,6 @@ And rebuild your bundle:
|
|
37
31
|
$ bundle install
|
38
32
|
```
|
39
33
|
|
40
|
-
Or install yourself:
|
41
|
-
```bash
|
42
|
-
$ gem install strong_versions -v '0.4.4'
|
43
|
-
```
|
44
|
-
|
45
34
|
## Usage
|
46
35
|
|
47
36
|
_StrongVersions_ is invoked with a provided executable:
|
@@ -54,7 +43,7 @@ The executable will output all non-passing gems and will return an exit code of
|
|
54
43
|
|
55
44
|

|
56
45
|
|
57
|
-
|
46
|
+
Auto-correct is available with the `-a/--auto-correct` option:
|
58
47
|
```bash
|
59
48
|
$ bundle exec strong_versions -a
|
60
49
|
```
|
@@ -69,6 +58,7 @@ ignore:
|
|
69
58
|
- rails
|
70
59
|
```
|
71
60
|
|
61
|
+
Gems in the ignore list will not be updated when using the `-a/--auto-correct` option.
|
72
62
|
## Contributing
|
73
63
|
|
74
64
|
Fork and create a pull request.
|
data/lib/strong_versions.rb
CHANGED
@@ -17,7 +17,7 @@ module StrongVersions
|
|
17
17
|
return true
|
18
18
|
end
|
19
19
|
|
20
|
-
return update_definitions if auto_correct
|
20
|
+
return update_definitions(options.fetch(:except, [])) if auto_correct
|
21
21
|
|
22
22
|
raise_or_warn(options.fetch(:on_failure, 'raise'))
|
23
23
|
summary
|
@@ -45,18 +45,17 @@ module StrongVersions
|
|
45
45
|
@terminal.summary(@dependencies.size, @invalid_gems.size)
|
46
46
|
end
|
47
47
|
|
48
|
-
def updatable_dependencies
|
49
|
-
@dependencies.
|
48
|
+
def updatable_dependencies(except)
|
49
|
+
@dependencies.reject { |dependency| except.include?(dependency.name) }
|
50
|
+
.select(&:updatable?)
|
50
51
|
end
|
51
52
|
|
52
|
-
def update_definitions
|
53
|
-
@terminal.update_summary(update(:gemfile) + update(:gemspec))
|
53
|
+
def update_definitions(except)
|
54
|
+
@terminal.update_summary(update(:gemfile, except) + update(:gemspec, except))
|
54
55
|
end
|
55
56
|
|
56
|
-
def update(subject)
|
57
|
-
updatable_dependencies.reduce(0) do |count, dependency|
|
58
|
-
next count unless dependency.updatable?
|
59
|
-
|
57
|
+
def update(subject, except)
|
58
|
+
updatable_dependencies(except).reduce(0) do |count, dependency|
|
60
59
|
update_dependency(subject, dependency) ? count : count + 1
|
61
60
|
end
|
62
61
|
end
|
@@ -79,16 +78,14 @@ module StrongVersions
|
|
79
78
|
match = content.match(regex)
|
80
79
|
return content unless match
|
81
80
|
|
81
|
+
# For gemspec, indent includes the `spec.` or `s.` prefix.
|
82
82
|
indent = match.captures.first
|
83
83
|
definition = dependency.suggested_definition(subject)
|
84
84
|
content.gsub(regex, "#{indent}#{definition}")
|
85
85
|
end
|
86
86
|
|
87
87
|
def gem_regex(subject, name)
|
88
|
-
|
89
|
-
gemfile: /^(\s*)gem\s+['"]#{name}['"].*$/,
|
90
|
-
gemspec: /^(\s*)spec.add_[a-z_]*_?dependency\s+['"]#{name}['"].*$/
|
91
|
-
}.fetch(subject)
|
88
|
+
Regexes.public_send(subject, name)
|
92
89
|
end
|
93
90
|
|
94
91
|
def raise_or_warn(on_failure)
|
@@ -14,6 +14,10 @@ module StrongVersions
|
|
14
14
|
versions.each { |operator, version| validate_version(operator, version) }
|
15
15
|
end
|
16
16
|
|
17
|
+
def to_s
|
18
|
+
"#<StrongVersions::Dependency name=#{@dependency.name}>"
|
19
|
+
end
|
20
|
+
|
17
21
|
def gemfile
|
18
22
|
Pathname.new(@dependency.gemfile) if @dependency.respond_to?(:gemfile)
|
19
23
|
end
|
@@ -70,7 +74,7 @@ module StrongVersions
|
|
70
74
|
end
|
71
75
|
|
72
76
|
def suggested_gemspec_definition(constraints)
|
73
|
-
"
|
77
|
+
"add_#{gemspec_spec.type}_dependency '#{@name}', #{constraints}"
|
74
78
|
end
|
75
79
|
|
76
80
|
def suggested_gemfile_definition(constraints)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module StrongVersions
|
4
|
+
module Regexes
|
5
|
+
class << self
|
6
|
+
def gemfile(name)
|
7
|
+
/^(\s*)gem\s+['"]#{name}['"].*$/
|
8
|
+
end
|
9
|
+
|
10
|
+
def gemspec(name)
|
11
|
+
/^(\s*[A-Za-z]+\.)add_[a-z_]*_?dependency\s*\(?\s*['"]#{name}['"].*$/
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/strong_versions.gemspec
CHANGED
@@ -28,14 +28,13 @@ Gem::Specification.new do |spec|
|
|
28
28
|
# stop supporting Rails 4 we need to support I18n 0.x and 1.x. At some point,
|
29
29
|
# I will do a release that is locked to '~> 1.0' and Rails 4 users can use
|
30
30
|
# an older version of the gem but we are not quite there yet.
|
31
|
-
spec.
|
31
|
+
spec.add_runtime_dependency 'i18n', '>= 0.5'
|
32
32
|
spec.add_dependency 'paint', '~> 2.0'
|
33
33
|
|
34
|
-
spec.add_development_dependency 'betterp', '~> 0.1.2'
|
35
34
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
36
|
-
spec.add_development_dependency '
|
35
|
+
spec.add_development_dependency 'devpack', '~> 0.1.1'
|
37
36
|
spec.add_development_dependency 'rake', '~> 10.0'
|
38
37
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
39
38
|
spec.add_development_dependency 'rspec-its', '~> 1.2'
|
40
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
39
|
+
spec.add_development_dependency 'rubocop', '~> 0.87.1'
|
41
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strong_versions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Farrell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.5
|
19
|
+
version: '0.5'
|
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.5
|
26
|
+
version: '0.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: paint
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: betterp
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1.2
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.2
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: bundler
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,19 +53,19 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '1.16'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: devpack
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: 0.1.1
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: 0.1.1
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rake
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +114,14 @@ dependencies:
|
|
128
114
|
requirements:
|
129
115
|
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
117
|
+
version: 0.87.1
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
122
|
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
124
|
+
version: 0.87.1
|
139
125
|
description: Ensure your gems are appropriately versioned
|
140
126
|
email:
|
141
127
|
- oss@bob.frl
|
@@ -172,6 +158,7 @@ files:
|
|
172
158
|
- lib/strong_versions/dependency_finder.rb
|
173
159
|
- lib/strong_versions/errors.rb
|
174
160
|
- lib/strong_versions/gem_version.rb
|
161
|
+
- lib/strong_versions/regexes.rb
|
175
162
|
- lib/strong_versions/terminal.rb
|
176
163
|
- lib/strong_versions/version.rb
|
177
164
|
- strong_versions.gemspec
|