raketeer 0.2.5 → 0.2.10

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 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