next_rails 1.2.0 → 1.2.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/.github/ISSUE_TEMPLATE/bug_report.md +21 -35
- data/.github/ISSUE_TEMPLATE/feature_request.md +10 -27
- data/CHANGELOG.md +16 -1
- data/README.md +11 -2
- data/exe/bundle_report +6 -1
- data/lib/deprecation_tracker.rb +6 -2
- data/lib/next_rails/bundle_report.rb +53 -14
- data/lib/next_rails/gem_info.rb +10 -1
- data/lib/next_rails/version.rb +3 -1
- data/next_rails.gemspec +1 -1
- data/pull_request_template.md +11 -5
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ceb25dba1847fdd6aa7b71ea2dacac03a90e16cf855e59d6a92cb6855c9124f6
|
|
4
|
+
data.tar.gz: 48c1a8bc8a02a2d717bb0da75c5145881ec96c0da6953309867238299d8f76b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: afe58b7bc957ceed1c2c1ead4fe64059e4657dcbab249ecd35138f90d3e335987ea6759590679009dee64b9eb8178a28ee030ad13a744ae082348e19f82cc0ff
|
|
7
|
+
data.tar.gz: 00c6a32d28b7cb6836ee99246d6a92829d6a450753ad379ecf493015d809888790204e85ba55ac9c0c22c6ce30531422bbf646f7b5bea695c4193e47544c9c07
|
|
@@ -6,46 +6,32 @@ labels: bug
|
|
|
6
6
|
assignees: ""
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
<!--- Before creating a bug report, please, answer the following questions -->
|
|
10
|
+
<!--- Did you check the documentation for answers? -->
|
|
11
|
+
<!--- Did you make sure that this bug has not already been reported? -->
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Expected Behavior
|
|
14
|
+
<!--- Tell us what should happen -->
|
|
15
|
+
<!--- For example: When I [do X], it should [produce Y] -->
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
## Actual Behavior
|
|
18
|
+
<!--- Tell us what happens instead -->
|
|
19
|
+
<!--- For example: When I [did X], it [produced Y] -->
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
## Possible Fix
|
|
22
|
+
<!--- Optionally suggest a fix or work around -->
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
## To Reproduce
|
|
25
|
+
<!--- Optionally provide a link to a live example -->
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
<!--- Otherwise, please provide a set of reproduction steps -->
|
|
28
|
+
1.
|
|
29
|
+
2.
|
|
30
|
+
3.
|
|
31
|
+
4.
|
|
22
32
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Please include a detailed description of the actual behavior of the application.
|
|
28
|
-
|
|
29
|
-
**Steps to reproduce:**
|
|
30
|
-
|
|
31
|
-
How do I achieve this behavior? Use the following format to provide a step-by-step guide:
|
|
32
|
-
|
|
33
|
-
1. Step 1: ...
|
|
34
|
-
2. Step 2: ...
|
|
35
|
-
|
|
36
|
-
**Context and environment:**
|
|
37
|
-
|
|
38
|
-
Provide any relevant information about your setup (Customize the list accordingly based on what info is relevant to this project)
|
|
39
|
-
|
|
40
|
-
1. Version of the software the issue is being opened for.
|
|
41
|
-
2. Operating System
|
|
42
|
-
3. Operating System version
|
|
43
|
-
4. Ruby version
|
|
44
|
-
|
|
45
|
-
_Delete any information that is not relevant._
|
|
46
|
-
|
|
47
|
-
**Logs**
|
|
48
|
-
|
|
49
|
-
Include relevant log snippets or files here.
|
|
33
|
+
## Additional Information
|
|
34
|
+
<!--- Include any relevant details about your environment (branch, browser, OS) -->
|
|
35
|
+
<!--- and the bug (screenshots, logs, etc) -->
|
|
50
36
|
|
|
51
37
|
**I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
|
|
@@ -6,35 +6,18 @@ labels: enhancement
|
|
|
6
6
|
assignees: ""
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
<!--- Before creating a feature request, please, answer the following questions -->
|
|
10
|
+
<!--- Did you check the documentation for this feature? -->
|
|
11
|
+
<!--- Did you make sure that this feature has not already been requested? -->
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Description
|
|
14
|
+
<!--- Provide a description of the change or addition you are proposing -->
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
## Possible Implementation
|
|
17
|
+
<!--- Optionally suggest an idea to implement or a workaround to fix the issue -->
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
**Describe the feature:**
|
|
21
|
-
|
|
22
|
-
Please include a detailed description of the feature you are requesting and any detail on it’s expected behavior.
|
|
23
|
-
|
|
24
|
-
> **As a \<role name\>** > **I do \<something\>** > **And then I do \<another action\>** > **And I see \<some result\>**
|
|
25
|
-
|
|
26
|
-
**Problem:**
|
|
27
|
-
|
|
28
|
-
Please include a detailed description of the problem this feature would solve.
|
|
29
|
-
|
|
30
|
-
> **As a \<role name\>** > **I want to \<do something\>** > **So that I can achieve a \<goal\>**
|
|
31
|
-
|
|
32
|
-
**Mockups:**
|
|
33
|
-
|
|
34
|
-
Include any mockup idea related to the requested feature if it applies.
|
|
35
|
-
|
|
36
|
-
**Resources:**
|
|
37
|
-
|
|
38
|
-
If you have resources related to the implementation or research for this feature, add them here.
|
|
19
|
+
## Resources:
|
|
20
|
+
<!--- If you have resources related to the implementation or research for this feature, add them here. -->
|
|
21
|
+
<!--- If possible, include any mockup ideas related to the requested feature. -->
|
|
39
22
|
|
|
40
23
|
**I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
# main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.2.
|
|
1
|
+
# main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.2.2...main)
|
|
2
|
+
* Your changes/patches go here.
|
|
3
|
+
# v1.2.2 / 2023-03-03 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.1...v1.2.2)
|
|
4
|
+
* [BUGFIX: Fixed `KernelWarnTracker#warn signature to match `Kernel#warn` for ruby 2.5+](https://github.com/fastruby/next_rails/pull/82)
|
|
5
|
+
* [CHORE: Added updated templates for bug fixes, feature requests and pull requests](https://github.com/fastruby/next_rails/pull/64) as per [this RFC](https://github.com/fastruby/RFCs/blob/main/2021-10-13-github-templates.md)
|
|
6
|
+
* [FEATURE: Turn BundleReport into a module](https://github.com/fastruby/next_rails/pull/63)
|
|
7
|
+
|
|
8
|
+
# v1.2.1 / 2022-09-26 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.0...v1.2.1)
|
|
9
|
+
|
|
10
|
+
- [BUGFIX: SimpleCov was not reporting accurately due to a bug in the spec helper code](https://github.com/fastruby/next_rails/pull/66)
|
|
11
|
+
|
|
12
|
+
- [FEATURE: Better documentation for contributing and releasing versions of this gem](https://github.com/fastruby/next_rails/pull/53)
|
|
13
|
+
|
|
14
|
+
- [BUGFIX: bundle_report outdated was giving an exception due to missing method latest_version](https://github.com/fastruby/next_rails/pull/62)
|
|
15
|
+
|
|
16
|
+
- [FEATURE: `bundle_report outdated` outputs in JSON format when passed optional argument](https://github.com/fastruby/next_rails/pull/61)
|
|
2
17
|
|
|
3
18
|
# v1.2.0 / 2022-08-12 [(commits)](https://github.com/fastruby/next_rails/compare/v1.1.0...v1.2.0)
|
|
4
19
|
|
data/README.md
CHANGED
|
@@ -29,10 +29,17 @@ Learn about your Gemfile and see what needs updating.
|
|
|
29
29
|
```bash
|
|
30
30
|
# Show all out-of-date gems
|
|
31
31
|
bundle_report outdated
|
|
32
|
+
|
|
32
33
|
# Show five oldest, out-of-date gems
|
|
33
34
|
bundle_report outdated | head -n 5
|
|
35
|
+
|
|
36
|
+
# Show all out-of-date gems in machine readable JSON format
|
|
37
|
+
bundle_report outdated --json
|
|
38
|
+
|
|
34
39
|
# Show gems that don't work with Rails 5.2.0
|
|
35
40
|
bundle_report compatibility --rails-version=5.2.0
|
|
41
|
+
|
|
42
|
+
# Show the usual help message
|
|
36
43
|
bundle_report --help
|
|
37
44
|
# Find minimum compatible ruby version with Rails 7.0.0
|
|
38
45
|
bundle_report ruby_check --rails-version=7.0.0
|
|
@@ -91,7 +98,7 @@ deprecations run
|
|
|
91
98
|
deprecations --help # For more options and examples
|
|
92
99
|
```
|
|
93
100
|
|
|
94
|
-
Right now, the path to the shitlist is hardcoded so make sure you store yours at `spec/support/
|
|
101
|
+
Right now, the path to the shitlist is hardcoded so make sure you store yours at `spec/support/deprecation_warning.shitlist.json`.
|
|
95
102
|
|
|
96
103
|
#### `next_rails` command
|
|
97
104
|
|
|
@@ -115,7 +122,9 @@ next rails s # Start server using Gemfile.next
|
|
|
115
122
|
|
|
116
123
|
## Installation
|
|
117
124
|
|
|
118
|
-
Add this line to your application's Gemfile
|
|
125
|
+
Add this line to your application's Gemfile
|
|
126
|
+
|
|
127
|
+
> NOTE: If you add this gem to a group, make sure it is the test env group
|
|
119
128
|
|
|
120
129
|
```ruby
|
|
121
130
|
gem 'next_rails'
|
data/exe/bundle_report
CHANGED
|
@@ -17,6 +17,7 @@ at_exit do
|
|
|
17
17
|
Examples:
|
|
18
18
|
#{$0} compatibility --rails-version 5.0
|
|
19
19
|
#{$0} outdated
|
|
20
|
+
#{$0} outdated --json
|
|
20
21
|
|
|
21
22
|
ruby_check To find a compatible ruby version for the target rails version
|
|
22
23
|
|
|
@@ -36,6 +37,10 @@ at_exit do
|
|
|
36
37
|
options[:include_rails_gems] = true
|
|
37
38
|
end
|
|
38
39
|
|
|
40
|
+
opts.on("--json", "Output JSON in outdated report (defaults to false)") do
|
|
41
|
+
options[:format] = 'json'
|
|
42
|
+
end
|
|
43
|
+
|
|
39
44
|
opts.on_tail("-h", "--help", "Show this message") do
|
|
40
45
|
puts opts
|
|
41
46
|
exit
|
|
@@ -54,7 +59,7 @@ at_exit do
|
|
|
54
59
|
|
|
55
60
|
case report_type
|
|
56
61
|
when "ruby_check" then NextRails::BundleReport.compatible_ruby_version(rails_version: options.fetch(:rails_version))
|
|
57
|
-
when "outdated" then NextRails::BundleReport.outdated
|
|
62
|
+
when "outdated" then NextRails::BundleReport.outdated(options.fetch(:format, nil))
|
|
58
63
|
else
|
|
59
64
|
NextRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
|
|
60
65
|
end
|
data/lib/deprecation_tracker.rb
CHANGED
|
@@ -18,12 +18,16 @@ class DeprecationTracker
|
|
|
18
18
|
@callbacks ||= []
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def warn(*messages)
|
|
21
|
+
def warn(*messages, uplevel: nil)
|
|
22
22
|
KernelWarnTracker.callbacks.each do |callback|
|
|
23
23
|
messages.each { |message| callback.(message) }
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.5.0")
|
|
27
|
+
super *messages
|
|
28
|
+
else
|
|
29
|
+
super
|
|
30
|
+
end
|
|
27
31
|
end
|
|
28
32
|
end
|
|
29
33
|
|
|
@@ -5,8 +5,10 @@ require "json"
|
|
|
5
5
|
require "net/http"
|
|
6
6
|
|
|
7
7
|
module NextRails
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
module BundleReport
|
|
9
|
+
extend self
|
|
10
|
+
|
|
11
|
+
def compatibility(rails_version: nil, include_rails_gems: nil)
|
|
10
12
|
incompatible_gems = NextRails::GemInfo.all.reject do |gem|
|
|
11
13
|
gem.compatible_with_rails?(rails_version: rails_version) || (!include_rails_gems && gem.from_rails?)
|
|
12
14
|
end.sort_by { |gem| gem.name }
|
|
@@ -50,13 +52,13 @@ module NextRails
|
|
|
50
52
|
puts ERB.new(template, nil, "-").result(binding)
|
|
51
53
|
end
|
|
52
54
|
|
|
53
|
-
def
|
|
55
|
+
def gem_header(_gem)
|
|
54
56
|
header = "#{_gem.name} #{_gem.version}".bold
|
|
55
57
|
header << " (loaded from git)".magenta if _gem.sourced_from_git?
|
|
56
58
|
header
|
|
57
59
|
end
|
|
58
60
|
|
|
59
|
-
def
|
|
61
|
+
def compatible_ruby_version(rails_version)
|
|
60
62
|
# find all the versions of rails gem
|
|
61
63
|
uri = URI('https://rubygems.org/api/v1/versions/rails.json')
|
|
62
64
|
res = Net::HTTP.get_response(uri)
|
|
@@ -95,25 +97,62 @@ module NextRails
|
|
|
95
97
|
end
|
|
96
98
|
end
|
|
97
99
|
|
|
98
|
-
def
|
|
100
|
+
def outdated(format = nil)
|
|
99
101
|
gems = NextRails::GemInfo.all
|
|
100
102
|
out_of_date_gems = gems.reject(&:up_to_date?).sort_by(&:created_at)
|
|
101
|
-
percentage_out_of_date = ((out_of_date_gems.count / gems.count.to_f) * 100).round
|
|
102
103
|
sourced_from_git = gems.select(&:sourced_from_git?)
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
if format == 'json'
|
|
106
|
+
output_to_json(out_of_date_gems, gems.count, sourced_from_git.count)
|
|
107
|
+
else
|
|
108
|
+
output_to_stdout(out_of_date_gems, gems.count, sourced_from_git.count)
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def output_to_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
|
|
113
|
+
obj = build_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
|
|
114
|
+
puts JSON.pretty_generate(obj)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def build_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
|
|
118
|
+
output = Hash.new { [] }
|
|
119
|
+
out_of_date_gems.each do |gem|
|
|
120
|
+
output[:outdated_gems] += [
|
|
121
|
+
{
|
|
122
|
+
name: gem.name,
|
|
123
|
+
installed_version: gem.version,
|
|
124
|
+
installed_age: gem.age,
|
|
125
|
+
latest_version: gem.latest_version.version,
|
|
126
|
+
latest_age: gem.latest_version.age
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
output.merge(
|
|
132
|
+
{
|
|
133
|
+
sourced_from_git_count: sourced_from_git_count,
|
|
134
|
+
total_gem_count: total_gem_count
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def output_to_stdout(out_of_date_gems, total_gem_count, sourced_from_git_count)
|
|
140
|
+
out_of_date_gems.each do |gem|
|
|
141
|
+
header = "#{gem.name} #{gem.version}"
|
|
106
142
|
|
|
107
143
|
puts <<-MESSAGE
|
|
108
|
-
#{header.bold.white}: released #{
|
|
144
|
+
#{header.bold.white}: released #{gem.age} (latest version, #{gem.latest_version.version}, released #{gem.latest_version.age})
|
|
109
145
|
MESSAGE
|
|
110
146
|
end
|
|
111
147
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
#{
|
|
115
|
-
#{
|
|
148
|
+
percentage_out_of_date = ((out_of_date_gems.count / total_gem_count.to_f) * 100).round
|
|
149
|
+
footer = <<-MESSAGE
|
|
150
|
+
#{sourced_from_git_count.to_s.yellow} gems are sourced from git
|
|
151
|
+
#{out_of_date_gems.count.to_s.red} of the #{total_gem_count} gems are out-of-date (#{percentage_out_of_date}%)
|
|
116
152
|
MESSAGE
|
|
153
|
+
|
|
154
|
+
puts ''
|
|
155
|
+
puts footer
|
|
117
156
|
end
|
|
118
157
|
end
|
|
119
|
-
end
|
|
158
|
+
end
|
data/lib/next_rails/gem_info.rb
CHANGED
|
@@ -79,7 +79,7 @@ module NextRails
|
|
|
79
79
|
def state(rails_version)
|
|
80
80
|
if compatible_with_rails?(rails_version: rails_version)
|
|
81
81
|
:compatible
|
|
82
|
-
elsif latest_compatible_version.version == "NOT FOUND"
|
|
82
|
+
elsif latest_compatible_version && latest_compatible_version.version == "NOT FOUND"
|
|
83
83
|
:no_new_version
|
|
84
84
|
elsif latest_compatible_version
|
|
85
85
|
:found_compatible
|
|
@@ -88,6 +88,15 @@ module NextRails
|
|
|
88
88
|
end
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
+
def latest_version
|
|
92
|
+
latest_gem_specification = Gem.latest_spec_for(name)
|
|
93
|
+
return NullGemInfo.new unless latest_gem_specification
|
|
94
|
+
|
|
95
|
+
GemInfo.new(latest_gem_specification)
|
|
96
|
+
rescue
|
|
97
|
+
NullGemInfo.new
|
|
98
|
+
end
|
|
99
|
+
|
|
91
100
|
def compatible_with_rails?(rails_version: nil)
|
|
92
101
|
unsatisfied_rails_dependencies(rails_version: rails_version).empty?
|
|
93
102
|
end
|
data/lib/next_rails/version.rb
CHANGED
data/next_rails.gemspec
CHANGED
|
@@ -30,5 +30,5 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_development_dependency "simplecov", "~> 0.17.1"
|
|
31
31
|
spec.add_development_dependency "timecop", "~> 0.9.1"
|
|
32
32
|
spec.add_development_dependency "rexml", "3.1.7.3" # limited on purpose, new versions don't work with old rubies
|
|
33
|
-
spec.add_development_dependency "webmock", "3.
|
|
33
|
+
spec.add_development_dependency "webmock", "3.16.2" # limited on purpose, new versions don't work with old rubies
|
|
34
34
|
end
|
data/pull_request_template.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
## Description
|
|
2
|
+
<!--- Describe your changes in detail -->
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
## Motivation and Context
|
|
5
|
+
<!--- Why is this change required? What problem does it solve? -->
|
|
6
|
+
<!--- If it fixes an open issue, please link to the issue here. -->
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
## How Has This Been Tested?
|
|
9
|
+
<!--- Include any relevant details about your testing environment and the steps you followed -->
|
|
10
|
+
<!--- For example: I am using [Safari|Firefox|Chrome] then I visit [the users path] -->
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
## Screenshots:
|
|
13
|
+
<!-- Add screenshots (applicable to any UI changes) -->
|
|
8
14
|
|
|
9
|
-
I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)
|
|
15
|
+
**I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: next_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ernesto Tagwerker
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2023-03-20 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: colorize
|
|
@@ -121,14 +121,14 @@ dependencies:
|
|
|
121
121
|
requirements:
|
|
122
122
|
- - '='
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 3.
|
|
124
|
+
version: 3.16.2
|
|
125
125
|
type: :development
|
|
126
126
|
prerelease: false
|
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - '='
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 3.
|
|
131
|
+
version: 3.16.2
|
|
132
132
|
description: A set of handy tools to upgrade your Rails application and keep it up
|
|
133
133
|
to date
|
|
134
134
|
email:
|
|
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
194
194
|
- !ruby/object:Gem::Version
|
|
195
195
|
version: '0'
|
|
196
196
|
requirements: []
|
|
197
|
-
rubygems_version: 3.
|
|
197
|
+
rubygems_version: 3.0.9
|
|
198
198
|
signing_key:
|
|
199
199
|
specification_version: 4
|
|
200
200
|
summary: A toolkit to upgrade your next Rails application
|