raketeer 0.2.5 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ea4a060cb8e00095e9df956fa2ee5f82b62f54062a5e9a304902a82e8aed1eb
4
- data.tar.gz: cf7681b3872489a4f6a2c7b7faad9103613c6966ddc978e3e4d151da33ee1e0b
3
+ metadata.gz: 8318d5b5dddcf509b11a49cdfa57ef8e7af9d572e09ac254adbc2c1d93fd38f0
4
+ data.tar.gz: 31778d29a79cb2c04da6ba45b4bd6b44b9e38660f161ee2313d98206e3331ac9
5
5
  SHA512:
6
- metadata.gz: 3c59023bccceb084fc6ee5aeee2de32482c5ba77c8bb7995371161dabff2e0755a572b0b676e6b4b6a1bb690d3ddb90047b79a9701712492bdbc20009dc1e629
7
- data.tar.gz: 735a8192cdc76bb8bc9dfa9b019980a789f45bb365800725b5a482e4b212e6c5d8d5080b526c6f1969c7fc8100c6a044ad43b120a6b3b1e8d82d0b9187c75db7
6
+ metadata.gz: 51d98b728c0df3e4c7b1481950b97fdc7b5e6e92ea124b8eeeeebcee3b874a402c04deb73aea7668983ba8d060b607c20b05f0cff3f71dfb5a277735162b084e
7
+ data.tar.gz: b22fb89132681c1ec4008fd05d4d7d14c4ae17817136d701c140973fead91cf614eceb91243a334500a53732c2fe67e319b7367f688c91002021969605976e68
data/CHANGELOG.md CHANGED
@@ -2,7 +2,42 @@
2
2
 
3
3
  Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [[Unreleased]](https://github.com/esotericpig/raketeer/compare/v0.2.5...master)
5
+ ## [[Unreleased]](https://github.com/esotericpig/raketeer/compare/v0.2.10...master)
6
+
7
+ ## [v0.2.10] - 2021-05-30
8
+ ### Changed
9
+ - Formatted all code using RuboCop.
10
+
11
+ ### Fixed
12
+ - Updated Bundler and Gems because of GitHub security warning.
13
+
14
+ ## [v0.2.9] - 2020-03-01
15
+ ### Changed
16
+ - Changed Gemspec description (mainly for testing other project Raketary)
17
+
18
+ ## [v0.2.8] - 2020-03-01
19
+ ### Added
20
+ - GitHubPkg (lib/raketeer/github_pkg.rb)
21
+ - GitHubPkgTask (lib/raketeer/github_pkg_task.rb)
22
+ - Publish/Push your `pkg/*.gem` release(s) to GitHub Packages
23
+
24
+ ## [v0.2.7] - 2019-12-18
25
+ ### Added
26
+ - Add more info to README
27
+ - Add default dirs to Util methods
28
+ - Add Util.get_env_bool() method
29
+ - Add more TODOs and skeletons for future
30
+ - Add strict as an env var to bump task
31
+
32
+ ### Fixed
33
+ - Check env vars for bundle task in bump task
34
+
35
+ ## [v0.2.6] - 2019-08-03
36
+ ### Changed
37
+ - Refactored BumpTask for a new project I'm working on to use this project in a CLI
38
+
39
+ ### Fixed
40
+ - SemVer's initialize_copy()
6
41
 
7
42
  ## [v0.2.5] - 2019-08-02
8
43
  ### Added
@@ -55,16 +90,5 @@ Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
55
90
 
56
91
  ## [v0.1.0] - 2019-07-23
57
92
  ### Added
58
- - .gitignore
59
- - CHANGELOG.md
60
- - Gemfile
61
- - LICENSE.txt
62
- - README.md
63
- - Rakefile
64
- - raketeer.gemspec
65
- - lib/raketeer.rb
66
- - lib/raketeer/irb_task.rb
67
- - lib/raketeer/nokogiri_install_tasks.rb
68
- - lib/raketeer/nokogiri_installs.rb
69
- - lib/raketeer/raketeers.rb
70
- - lib/raketeer/version.rb
93
+ - IRB task
94
+ - Nokogiri installs
data/Gemfile CHANGED
@@ -1,24 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  # frozen_string_literal: true
3
3
 
4
- #--
5
- # This file is part of Raketeer.
6
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
7
- #
8
- # Raketeer is free software: you can redistribute it and/or modify
9
- # it under the terms of the GNU Lesser General Public License as published by
10
- # the Free Software Foundation, either version 3 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Raketeer is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU Lesser General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU Lesser General Public License
19
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
20
- #++
21
-
22
4
 
23
5
  source 'https://rubygems.org'
24
6
 
data/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  Extra Ruby Rake Tasks.
10
10
 
11
+ A [CLI app](https://github.com/esotericpig/raketary) is also available that uses these tasks, which is useful for tasks like *bump* (which bumps the version for your RubyGem project) so that you don't have to include this Gem as a development dependency for every project.
12
+
11
13
  ## Contents
12
14
 
13
15
  - [Setup](#setup)
@@ -26,16 +28,17 @@ With the RubyGems CLI package manager:
26
28
  In your *Gemspec* (*&lt;project&gt;.gemspec*):
27
29
 
28
30
  ```Ruby
29
- spec.add_development_dependency 'raketeer', '~> X.X.X'
31
+ spec.add_development_dependency 'raketeer', '~> 0.2'
30
32
  ```
31
33
 
32
34
  In your *Gemfile*:
33
35
 
34
36
  ```Ruby
35
- gem 'raketeer', '~> X.X.X', :group => [:development, :test]
37
+ gem 'raketeer', '~> 0.2', group: [:development, :test]
38
+
36
39
  # or...
37
- gem 'raketeer', :git => 'https://github.com/esotericpig/raketeer.git',
38
- :tag => 'vX.X.X', :group => [:development, :test]
40
+ gem 'raketeer', git: 'https://github.com/esotericpig/raketeer.git',
41
+ tag: 'v0.2.10', group: [:development, :test]
39
42
  ```
40
43
 
41
44
  Manually:
@@ -49,10 +52,118 @@ $ bundle exec rake install:local
49
52
 
50
53
  ## [Using](#contents)
51
54
 
55
+ **Rakefile**
56
+
57
+ In your *Rakefile*, you can either include all tasks...
58
+
59
+ ```Ruby
60
+ require 'raketeer/all'
61
+ ```
62
+
63
+ Or, include the specific tasks that you need:
64
+
65
+ ```Ruby
66
+ require 'raketeer/bump'
67
+ require 'raketeer/github_pkg'
68
+ require 'raketeer/irb'
69
+ require 'raketeer/nokogiri_installs'
70
+ require 'raketeer/run'
71
+ ```
72
+
73
+ If you have conflicting tasks and/or you want to see what tasks have been included, you can put them in a namespace:
74
+
75
+ ```Ruby
76
+ namespace :rt do
77
+ require 'raketeer/all'
78
+ end
79
+ ```
80
+
81
+ **Included Tasks**
82
+
83
+ ```
84
+ rake bump[version] # Show/Set/Bump the version
85
+ rake bump:build[build] # Set/Erase the build metadata
86
+ rake bump:bundle # Bump the Gemfile.lock version
87
+ rake bump:help # Show the help/usage for bump tasks
88
+ rake bump:major[major] # Bump/Set the major version
89
+ rake bump:minor[minor] # Bump/Set the minor version
90
+ rake bump:patch[patch] # Bump/Set the patch version
91
+ rake bump:pre[pre] # Set/Erase the pre-release version
92
+ rake github_pkg # Publish this project's gem(s) to GitHub Packages
93
+ rake irb # Open an irb session loaded with this library
94
+ rake nokogiri_apt # Install Nokogiri libs for Ubuntu/Debian
95
+ rake nokogiri_dnf # Install Nokogiri libs for Fedora/CentOS/Red Hat
96
+ rake nokogiri_other # Install Nokogiri libs for other OSes
97
+ rake run # Run this project's main file: "rake run -- --version"
98
+ ```
99
+
100
+ **bump:help**
101
+
102
+ ```
103
+ $ rake bump:help
104
+ rake bump # Print the current version
105
+
106
+ # You can run a dry run for any task (will not write to files)
107
+ rake bump dryrun=true
108
+
109
+ rake bump[1.2.3-alpha.4-beta.5] # Set the version manually
110
+ rake bump major=1 minor=2 patch=3 # Set the version numbers
111
+ rake bump pre=alpha.4 build=beta.5 # Set the version extensions
112
+ rake bump major=+1 minor=+1 patch=+1 # Bump the version numbers by 1
113
+ rake bump major=+2 minor=+3 patch=+4 # Bump the version numbers by X
114
+
115
+ rake bump:major # Bump the major version by 1
116
+ rake bump:major[1] # Set the major version to 1
117
+ rake bump:major[+2] # Bump the major version by 2
118
+ rake bump:minor # Bump the minor version by 1
119
+ rake bump:minor[2] # Set the minor version to 2
120
+ rake bump:minor[+3] # Bump the minor version by 3
121
+ rake bump:patch # Bump the patch version by 1
122
+ rake bump:patch[3] # Set the patch version to 3
123
+ rake bump:patch[+4] # Bump the patch version by 4
124
+ rake bump:pre # Erase the pre-release version
125
+ rake bump:pre[alpha.4] # Set the pre-release version
126
+ rake bump:build # Erase the build metadata
127
+ rake bump:build[beta.5] # Set the build metadata
128
+ rake bump:bundle # Bump the Gemfile.lock version
129
+ ```
130
+
131
+ **Modifying Tasks**
132
+
133
+ If you need more control, for now, please look at the accessors of each task (better documentation is planned for v1.0.0):
134
+
135
+ - [BumpTask](lib/raketeer/bump_task.rb)
136
+ - [GitHubPkgTask](lib/raketeer/github_pkg_task.rb)
137
+ - [IRBTask](lib/raketeer/irb_task.rb)
138
+ - [NokogiriAPTTask](lib/raketeer/nokogiri_install_tasks.rb)
139
+ - [NokogiriDNFTask](lib/raketeer/nokogiri_install_tasks.rb)
140
+ - [NokogiriOtherTask](lib/raketeer/nokogiri_install_tasks.rb)
141
+ - [RunTask](lib/raketeer/run_task.rb)
142
+
143
+ For example, in your *Rakefile*:
144
+
145
+ ```Ruby
146
+ require 'raketeer/bump_task'
147
+
148
+ Raketeer::BumpTask.new() do |task|
149
+ task.strict = true
150
+ end
151
+ ```
152
+
153
+ ```Ruby
154
+ require 'raketeer/github_pkg_task'
155
+
156
+ Raketeer::GitHubPkgTask.new() do |task|
157
+ task.deps << 'test'
158
+ task.username = 'esotericpig'
159
+ end
160
+ ```
161
+
52
162
  ## [Hacking](#contents)
53
163
 
54
164
  ```
55
165
  $ git clone 'https://github.com/esotericpig/raketeer.git'
166
+ $ cd raketeer
56
167
  $ bundle install
57
168
  $ bundle exec rake -T
58
169
  ```
@@ -62,7 +173,7 @@ $ bundle exec rake -T
62
173
  [GNU LGPL v3+](LICENSE.txt)
63
174
 
64
175
  > Raketeer (<https://github.com/esotericpig/raketeer>)
65
- > Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
176
+ > Copyright (c) 2019-2021 Jonathan Bradley Whited
66
177
  >
67
178
  > Raketeer is free software: you can redistribute it and/or modify
68
179
  > it under the terms of the GNU Lesser General Public License as published by
data/Rakefile CHANGED
@@ -1,24 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  # frozen_string_literal: true
3
3
 
4
- #--
5
- # This file is part of Raketeer.
6
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
7
- #
8
- # Raketeer is free software: you can redistribute it and/or modify
9
- # it under the terms of the GNU Lesser General Public License as published by
10
- # the Free Software Foundation, either version 3 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Raketeer is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU Lesser General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU Lesser General Public License
19
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
20
- #++
21
-
22
4
 
23
5
  require 'bundler/gem_tasks'
24
6
 
@@ -34,3 +16,15 @@ CLOBBER.include('doc/')
34
16
  namespace :rt do
35
17
  require 'raketeer/all'
36
18
  end
19
+
20
+ namespace :todo do
21
+ # TODO: make this into a task class
22
+ # TODO: do 'gem:files'? and also 'gem:info' for all other methods?
23
+ desc 'Output dat gemspec bootyliciousness'
24
+ task :gem do |task,args|
25
+ # TODO: if this doesn't work, read *.gemspec somehow? probably not...
26
+ gem = Gem::Specification.find_by_name('raketeer')
27
+ puts gem.files
28
+ #puts gem.methods.sort - Object.methods
29
+ end
30
+ end
data/lib/raketeer.rb CHANGED
@@ -1,29 +1,16 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of Raketeer.
7
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # Raketeer is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU Lesser General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # Raketeer is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU Lesser General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU Lesser General Public License
20
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
21
7
  #++
22
8
 
23
9
 
24
10
  require 'raketeer/bump_task'
25
11
  require 'raketeer/bump_ver'
26
12
  require 'raketeer/files_bumper'
13
+ require 'raketeer/github_pkg_task'
27
14
  require 'raketeer/irb_task'
28
15
  require 'raketeer/nokogiri_install_tasks'
29
16
  require 'raketeer/run_task'
@@ -31,8 +18,9 @@ require 'raketeer/sem_ver'
31
18
  require 'raketeer/util'
32
19
  require 'raketeer/version'
33
20
 
21
+
34
22
  ###
35
- # @author Jonathan Bradley Whited (@esotericpig)
23
+ # @author Jonathan Bradley Whited
36
24
  # @since 0.1.0
37
25
  ###
38
26
  module Raketeer
data/lib/raketeer/all.rb CHANGED
@@ -1,36 +1,24 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of Raketeer.
7
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # Raketeer is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU Lesser General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # Raketeer is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU Lesser General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU Lesser General Public License
20
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
21
7
  #++
22
8
 
23
9
 
24
10
  require 'raketeer/bump' # @since 0.2.4
11
+ require 'raketeer/github_pkg' # @since 0.2.8
25
12
  require 'raketeer/irb' # @since 0.2.0
26
13
  require 'raketeer/nokogiri_installs' # @since 0.1.0
27
14
  require 'raketeer/run' # @since 0.2.2
28
15
 
16
+
29
17
  module Raketeer
30
18
  ###
31
19
  # Defines all Raketeer tasks in your Rakefile.
32
- #
33
- # @author Jonathan Bradley Whited (@esotericpig)
20
+ #
21
+ # @author Jonathan Bradley Whited
34
22
  # @since 0.2.0
35
23
  ###
36
24
  module All
data/lib/raketeer/bump.rb CHANGED
@@ -1,23 +1,9 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of Raketeer.
7
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # Raketeer is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU Lesser General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # Raketeer is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU Lesser General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU Lesser General Public License
20
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
21
7
  #++
22
8
 
23
9
 
@@ -25,11 +11,11 @@ require 'raketeer/bump_task'
25
11
 
26
12
  module Raketeer
27
13
  ###
28
- # @author Jonathan Bradley Whited (@esotericpig)
14
+ # @author Jonathan Bradley Whited
29
15
  # @since 0.2.4
30
16
  ###
31
17
  module Bump
32
18
  end
33
19
  end
34
20
 
35
- Raketeer::BumpTask.new() # @since 0.2.4
21
+ Raketeer::BumpTask.new # @since 0.2.4
@@ -1,31 +1,15 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
3
2
  # frozen_string_literal: true
4
3
 
5
4
  #--
6
5
  # This file is part of Raketeer.
7
- # Copyright (c) 2019 Jonathan Bradley Whited (@esotericpig)
8
- #
9
- # Raketeer is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU Lesser General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # Raketeer is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU Lesser General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU Lesser General Public License
20
- # along with Raketeer. If not, see <https://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
21
7
  #++
22
8
 
23
9
 
24
10
  require 'date'
25
11
  require 'rake'
26
-
27
12
  require 'rake/tasklib'
28
-
29
13
  require 'raketeer/bump_ver'
30
14
  require 'raketeer/files_bumper'
31
15
  require 'raketeer/sem_ver'
@@ -33,7 +17,7 @@ require 'raketeer/util'
33
17
 
34
18
  module Raketeer
35
19
  ###
36
- # @author Jonathan Bradley Whited (@esotericpig)
20
+ # @author Jonathan Bradley Whited
37
21
  # @since 0.2.4
38
22
  ###
39
23
  class BumpTask < Rake::TaskLib
@@ -47,33 +31,32 @@ module Raketeer
47
31
  attr_accessor :ruby_files # Looks for {ruby_var}
48
32
  attr_accessor :ruby_var
49
33
  attr_accessor :strict
50
-
34
+
51
35
  alias_method :bump_bundle?,:bump_bundle
52
36
  alias_method :dry_run?,:dry_run
53
37
  alias_method :strict?,:strict
54
-
38
+
55
39
  def initialize(name=:bump)
56
40
  super()
57
-
41
+
58
42
  @bump_bundle = false
59
43
  @bump_files = Rake::FileList[]
60
44
  @bundle_cmd = 'bundle'
61
45
  @changelogs = Rake::FileList['CHANGELOG.md']
62
46
  @dry_run = false
63
- @git_msg = %q(git commit -m 'Bump version to v%{version}')
47
+ @git_msg = "git commit -m 'Bump version to v%{version}'"
64
48
  @name = name
65
49
  @ruby_files = Rake::FileList[File.join('lib','**','version.rb')]
66
50
  @ruby_var = 'VERSION'
67
51
  @strict = false
68
-
69
- yield self if block_given?()
70
- define()
52
+
53
+ yield self if block_given?
54
+ define
71
55
  end
72
-
73
- def define()
56
+
57
+ def define
74
58
  desc 'Show/Set/Bump the version'
75
59
  task @name,[:version] do |task,args|
76
- check_env()
77
60
  bump_all(BumpVer.new(
78
61
  version: args.version,
79
62
  major: ENV['major'],
@@ -83,249 +66,249 @@ module Raketeer
83
66
  build_meta: ENV['build']
84
67
  ))
85
68
  end
86
-
69
+
87
70
  namespace @name do
88
71
  desc 'Bump/Set the major version'
89
72
  task :major,[:major] do |task,args|
90
73
  bump_ver = BumpVer.new(major: args.major)
91
-
74
+
92
75
  # You can't erase the major version (required)
93
- bump_ver.major = '+1' if bump_ver.major.nil?() || bump_ver.major.empty?()
94
-
95
- check_env()
76
+ bump_ver.major = '+1' if bump_ver.major.nil? || bump_ver.major.empty?
77
+
96
78
  bump_all(bump_ver)
97
79
  end
98
-
80
+
99
81
  desc 'Bump/Set the minor version'
100
82
  task :minor,[:minor] do |task,args|
101
83
  bump_ver = BumpVer.new(minor: args.minor)
102
- bump_ver.minor = '+1' if bump_ver.minor.nil?()
103
-
104
- check_env()
84
+ bump_ver.minor = '+1' if bump_ver.minor.nil?
85
+
105
86
  bump_all(bump_ver)
106
87
  end
107
-
88
+
108
89
  desc 'Bump/Set the patch version'
109
90
  task :patch,[:patch] do |task,args|
110
91
  bump_ver = BumpVer.new(patch: args.patch)
111
- bump_ver.patch = '+1' if bump_ver.patch.nil?()
112
-
113
- check_env()
92
+ bump_ver.patch = '+1' if bump_ver.patch.nil?
93
+
114
94
  bump_all(bump_ver)
115
95
  end
116
-
96
+
117
97
  desc 'Set/Erase the pre-release version'
118
98
  task :pre,[:pre] do |task,args|
119
99
  bump_ver = BumpVer.new(prerelease: args.pre)
120
- bump_ver.prerelease = '' if bump_ver.prerelease.nil?()
121
-
122
- check_env()
100
+ bump_ver.prerelease = '' if bump_ver.prerelease.nil?
101
+
123
102
  bump_all(bump_ver)
124
103
  end
125
-
104
+
126
105
  desc 'Set/Erase the build metadata'
127
106
  task :build,[:build] do |task,args|
128
107
  bump_ver = BumpVer.new(build_meta: args.build)
129
- bump_ver.build_meta = '' if bump_ver.build_meta.nil?()
130
-
131
- check_env()
108
+ bump_ver.build_meta = '' if bump_ver.build_meta.nil?
109
+
132
110
  bump_all(bump_ver)
133
111
  end
134
-
112
+
135
113
  desc 'Bump the Gemfile.lock version'
136
114
  task :bundle do
137
- check_env()
138
- bump_bundle_file()
115
+ check_env
116
+ bump_bundle_file
139
117
  end
140
-
118
+
141
119
  desc "Show the help/usage for #{name} tasks"
142
120
  task :help do
143
- print_help()
121
+ print_help
144
122
  end
145
123
  end
146
124
  end
147
-
125
+
148
126
  def bump_all(bump_ver)
127
+ check_env
128
+
149
129
  sem_vers = []
150
-
130
+
151
131
  # Order matters for outputting the most accurate version
152
132
  sem_vers << bump_ruby_files(bump_ver)
153
133
  sem_vers << bump_bump_files(bump_ver)
154
134
  sem_vers << bump_changelogs(bump_ver)
155
-
156
- sem_vers.compact!()
157
-
158
- if @bump_bundle && !bump_ver.empty?() && !sem_vers.empty?()
159
- bump_bundle_file()
135
+
136
+ sem_vers.compact!
137
+
138
+ if sem_vers.empty?
139
+ puts '! No versions found'
140
+
141
+ return
160
142
  end
161
-
143
+
144
+ if @bump_bundle && !bump_ver.empty?
145
+ bump_bundle_file
146
+ end
147
+
162
148
  # Always output it, in case the user just wants to see what the git message
163
149
  # should be without making changes.
164
- if !@git_msg.nil?() && !sem_vers.empty?()
150
+ if !@git_msg.nil?
165
151
  puts '[Git]:'
166
- puts '= ' + (@git_msg % {version: sem_vers[0].to_s()})
152
+ puts '= ' + (@git_msg % {version: sem_vers[0].to_s})
167
153
  end
168
154
  end
169
-
155
+
170
156
  def bump_bump_files(bump_ver)
171
- return nil if @bump_files.empty?()
172
-
157
+ return nil if @bump_files.empty?
158
+
173
159
  bumper = FilesBumper.new(@bump_files,bump_ver,@dry_run,@strict)
174
-
175
- bumper.bump_files() do
176
- next if bumper.changes > 0 || !bumper.sem_ver.nil?()
160
+
161
+ bumper.bump_files do
162
+ next if bumper.changes > 0 || !bumper.sem_ver.nil?
177
163
  next if bumper.line !~ SemVer.regex(@strict)
178
-
179
- break if bumper.bump_line!() != :no_ver && bumper.bump_ver_empty?()
164
+
165
+ break if bumper.bump_line! != :no_ver && bumper.bump_ver_empty?
180
166
  end
181
-
167
+
182
168
  return bumper.version
183
169
  end
184
-
185
- def bump_bundle_file()
170
+
171
+ def bump_bundle_file
186
172
  sh_cmd = [@bundle_cmd,'list']
187
-
173
+
188
174
  puts "[#{sh_cmd.join(' ')}]:"
189
-
175
+
190
176
  if @dry_run
191
177
  puts '= Nothing written (dry run)'
192
-
178
+
193
179
  return
194
180
  end
195
-
196
- sh(*sh_cmd,{:verbose => false})
181
+
182
+ sh(*sh_cmd,verbose: false)
197
183
  end
198
-
184
+
199
185
  # @see https://keepachangelog.com/en/1.0.0/
200
186
  def bump_changelogs(bump_ver)
201
- return nil if @changelogs.empty?()
202
-
187
+ return nil if @changelogs.empty?
188
+
203
189
  bumper = FilesBumper.new(@changelogs,bump_ver,@dry_run,@strict) do
204
190
  @header_bumped = false
205
191
  @unreleased_bumped = false
206
192
  end
207
-
193
+
208
194
  header_regex = /\A(\s*##\s*\[+\D*)(#{SemVer.regex(@strict)})(.*)\z/m
209
195
  unreleased_regex = /\A.*Unreleased.*http.*\.{3}/
210
-
211
- bumper.bump_files() do
196
+
197
+ bumper.bump_files do
212
198
  if @header_bumped && @unreleased_bumped
213
- break if bumper.bump_ver_empty?()
199
+ break if bumper.bump_ver_empty?
214
200
  next
215
201
  end
216
-
202
+
217
203
  if bumper.line =~ unreleased_regex
218
204
  next if @unreleased_bumped
219
-
205
+
220
206
  # Match from the end, in case the URL has a number (like '%20')
221
207
  match = bumper.line.match(/(#{SemVer.regex(@strict)})(\.{3}.*)\z/m)
222
-
223
- next if match.nil?() || match.length < 3 || (i = match.begin(0)) < 1
224
-
208
+
209
+ next if match.nil? || match.length < 3 || (i = match.begin(0)) < 1
210
+
225
211
  match = [bumper.line[0..i - 1],match[1],match[-1]]
226
-
227
- next if match.any?() {|m| m.nil?() || m.strip().empty?()}
228
-
229
- orig_line = bumper.line.dup()
212
+
213
+ next if match.any? {|m| m.nil? || m.strip.empty? }
214
+
215
+ orig_line = bumper.line.dup
230
216
  bumper.line = match[1]
231
-
217
+
232
218
  if (result = bumper.bump_line!(add_change: false)) != :no_ver
233
219
  @unreleased_bumped = true
234
-
220
+
235
221
  if result == :same_ver
236
222
  bumper.line = orig_line
237
-
223
+
238
224
  next
239
225
  end
240
-
226
+
241
227
  bumper.line = match[0] << bumper.line << match[2]
242
-
228
+
243
229
  bumper.add_change(bumper.line,push: false)
244
230
  else
245
231
  bumper.line = orig_line
246
232
  end
247
- elsif !(match = bumper.line.match(header_regex)).nil?()
233
+ elsif !(match = bumper.line.match(header_regex)).nil?
248
234
  next if @header_bumped || match.length < 4
249
-
235
+
250
236
  match = [match[1],match[2],match[-1]]
251
-
252
- next if match.any?() {|m| m.nil?() || m.strip().empty?()}
253
-
254
- orig_line = bumper.line.dup()
237
+
238
+ next if match.any? {|m| m.nil? || m.strip.empty? }
239
+
240
+ orig_line = bumper.line.dup
255
241
  bumper.line = match[1]
256
-
242
+
257
243
  if (result = bumper.bump_line!(add_change: false)) != :no_ver
258
244
  @header_bumped = true
259
-
245
+
260
246
  if result == :same_ver
261
247
  bumper.line = orig_line
262
-
248
+
263
249
  next
264
250
  end
265
-
251
+
266
252
  bumper.line = match[0] << bumper.line
267
-
253
+
268
254
  # Replace the date with today's date for the new Markdown header, if it exists
269
- match[2].sub!(/\d+\s*\-\s*\d+\s*\-\s*\d+(.*)\z/m,"#{Date.today().strftime('%F')}\\1")
255
+ match[2].sub!(/\d+\s*\-\s*\d+\s*\-\s*\d+(.*)\z/m,"#{Date.today.strftime('%F')}\\1")
270
256
  bumper.line << match[2]
271
-
257
+
272
258
  bumper.add_change(bumper.line,push: true)
273
259
  bumper.line << "\n" # Don't print this newline to the console
274
260
  end
275
-
261
+
276
262
  # We are adding a new Markdown header, so always set the line back to its original value
277
263
  bumper.line = orig_line
278
264
  end
279
265
  end
280
-
266
+
281
267
  return bumper.version
282
268
  end
283
-
269
+
284
270
  def bump_ruby_files(bump_ver)
285
- return nil if @ruby_files.empty?()
286
-
271
+ return nil if @ruby_files.empty?
272
+
287
273
  bumper = FilesBumper.new(@ruby_files,bump_ver,@dry_run,@strict)
288
274
  version_var_regex = /\A(\s*#{Regexp.quote(@ruby_var)}\s*=\D*)(#{SemVer.regex(@strict)})(.*)\z/m
289
-
290
- bumper.bump_files() do
291
- next if bumper.changes > 0 || !bumper.sem_ver.nil?()
292
- next if (match = bumper.line.match(version_var_regex)).nil?()
275
+
276
+ bumper.bump_files do
277
+ next if bumper.changes > 0 || !bumper.sem_ver.nil?
278
+ next if (match = bumper.line.match(version_var_regex)).nil?
293
279
  next if match.length < 4
294
- next if match[1..2].any?() {|m| m.nil?() || m.strip().empty?()}
295
-
296
- orig_line = bumper.line.dup()
280
+ next if match[1..2].any? {|m| m.nil? || m.strip.empty? }
281
+
282
+ orig_line = bumper.line.dup
297
283
  bumper.line = match[2]
298
-
284
+
299
285
  if (result = bumper.bump_line!(add_change: false)) != :no_ver
300
286
  if result == :same_ver
301
287
  bumper.line = orig_line
302
-
303
- break if bumper.bump_ver_empty?()
288
+
289
+ break if bumper.bump_ver_empty?
304
290
  next
305
291
  end
306
-
292
+
307
293
  bumper.line = match[1] << bumper.line
308
- bumper.line << match[-1] unless match[-1].nil?()
309
-
294
+ bumper.line << match[-1] unless match[-1].nil?
295
+
310
296
  bumper.add_change(bumper.line,push: false)
311
297
  else
312
298
  bumper.line = orig_line
313
299
  end
314
300
  end
315
-
301
+
316
302
  return bumper.version
317
303
  end
318
-
319
- def check_env()
320
- env_dryrun = ENV['dryrun']
321
-
322
- if !env_dryrun.nil?() && !(env_dryrun = env_dryrun.to_s().strip()).empty?()
323
- @dry_run = Util.to_bool(env_dryrun)
324
- end
304
+
305
+ def check_env
306
+ @dry_run = Util.get_env_bool('dryrun',@dry_run)
307
+ @strict = Util.get_env_bool('strict',@strict)
325
308
  end
326
-
327
- def print_help()
328
- puts <<-EOH
309
+
310
+ def print_help
311
+ puts <<-HELP
329
312
  rake #{@name} # Print the current version
330
313
 
331
314
  # You can run a dry run for any task (will not write to files)
@@ -338,20 +321,20 @@ rake #{@name} major=+1 minor=+1 patch=+1 # Bump the version numbers by 1
338
321
  rake #{@name} major=+2 minor=+3 patch=+4 # Bump the version numbers by X
339
322
 
340
323
  rake #{@name}:major # Bump the major version by 1
341
- rake #{@name}:major[1] # Set the major version
324
+ rake #{@name}:major[1] # Set the major version to 1
342
325
  rake #{@name}:major[+2] # Bump the major version by 2
343
326
  rake #{@name}:minor # Bump the minor version by 1
344
- rake #{@name}:minor[2] # Set the minor version
327
+ rake #{@name}:minor[2] # Set the minor version to 2
345
328
  rake #{@name}:minor[+3] # Bump the minor version by 3
346
329
  rake #{@name}:patch # Bump the patch version by 1
347
- rake #{@name}:patch[3] # Set the patch version
330
+ rake #{@name}:patch[3] # Set the patch version to 3
348
331
  rake #{@name}:patch[+4] # Bump the patch version by 4
349
332
  rake #{@name}:pre # Erase the pre-release version
350
333
  rake #{@name}:pre[alpha.4] # Set the pre-release version
351
334
  rake #{@name}:build # Erase the build metadata
352
335
  rake #{@name}:build[beta.5] # Set the build metadata
353
336
  rake #{@name}:bundle # Bump the Gemfile.lock version
354
- EOH
337
+ HELP
355
338
  end
356
339
  end
357
340
  end