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.
@@ -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
 
@@ -26,12 +12,14 @@ require 'raketeer/sem_ver'
26
12
  module Raketeer
27
13
  ###
28
14
  # Bump Version
29
- #
30
- # @author Jonathan Bradley Whited (@esotericpig)
15
+ #
16
+ # @author Jonathan Bradley Whited
31
17
  # @since 0.2.4
32
18
  ###
33
19
  class BumpVer < SemVer
34
20
  def initialize(version: nil,major: nil,minor: nil,patch: nil,prerelease: nil,build_meta: nil)
21
+ super()
22
+
35
23
  self.build_meta = build_meta
36
24
  self.major = major
37
25
  self.minor = minor
@@ -39,104 +27,104 @@ module Raketeer
39
27
  self.prerelease = prerelease
40
28
  self.version = version
41
29
  end
42
-
30
+
43
31
  def init_int_or_str(obj)
44
- return nil if obj.nil?()
32
+ return nil if obj.nil?
45
33
  return obj if obj.is_a?(Integer)
46
-
47
- obj = obj.to_s().strip()
48
-
49
- return obj if obj.empty?() || obj[0] == '+'
50
- return obj.to_i()
34
+
35
+ obj = obj.to_s.strip
36
+
37
+ return obj if obj.empty? || obj[0] == '+'
38
+ return obj.to_i
51
39
  end
52
-
40
+
53
41
  def init_str(obj)
54
- return obj.nil?() ? nil : obj.to_s().strip()
42
+ return obj.nil? ? nil : obj.to_s.strip
55
43
  end
56
-
44
+
57
45
  def bump!(sem_ver)
58
- if !@version.nil?()
46
+ if !@version.nil?
59
47
  sem_ver.version = @version
60
48
  else
61
- if !@major.nil?()
49
+ if !@major.nil?
62
50
  if @major.is_a?(Integer)
63
51
  sem_ver.major = @major
64
- elsif @major.empty?()
52
+ elsif @major.empty?
65
53
  sem_ver.major = 0 # There must always be a major version
66
54
  else
67
- sem_ver.major = 0 if sem_ver.major.nil?()
68
- sem_ver.major += @major.to_i()
55
+ sem_ver.major = 0 if sem_ver.major.nil?
56
+ sem_ver.major += @major.to_i
69
57
  end
70
58
  end
71
-
72
- if !@minor.nil?()
59
+
60
+ if !@minor.nil?
73
61
  if @minor.is_a?(Integer)
74
62
  sem_ver.minor = @minor
75
- elsif @minor.empty?()
63
+ elsif @minor.empty?
76
64
  sem_ver.minor = nil
77
65
  else
78
- sem_ver.minor = 0 if sem_ver.minor.nil?()
79
- sem_ver.minor += @minor.to_i()
66
+ sem_ver.minor = 0 if sem_ver.minor.nil?
67
+ sem_ver.minor += @minor.to_i
80
68
  end
81
69
  end
82
-
83
- if !@patch.nil?()
70
+
71
+ if !@patch.nil?
84
72
  if @patch.is_a?(Integer)
85
73
  sem_ver.patch = @patch
86
- elsif @patch.empty?()
74
+ elsif @patch.empty?
87
75
  sem_ver.patch = nil
88
76
  else
89
- sem_ver.patch = 0 if sem_ver.patch.nil?()
90
- sem_ver.patch += @patch.to_i()
77
+ sem_ver.patch = 0 if sem_ver.patch.nil?
78
+ sem_ver.patch += @patch.to_i
91
79
  end
92
80
  end
93
-
94
- if !@prerelease.nil?()
95
- if @prerelease.empty?()
81
+
82
+ if !@prerelease.nil?
83
+ if @prerelease.empty?
96
84
  sem_ver.prerelease = nil
97
85
  else
98
86
  sem_ver.prerelease = @prerelease
99
87
  end
100
88
  end
101
-
102
- if !@build_meta.nil?()
103
- if @build_meta.empty?()
89
+
90
+ if !@build_meta.nil?
91
+ if @build_meta.empty?
104
92
  sem_ver.build_meta = nil
105
93
  else
106
94
  sem_ver.build_meta = @build_meta
107
95
  end
108
96
  end
109
97
  end
110
-
98
+
111
99
  return sem_ver
112
100
  end
113
-
101
+
114
102
  def bump_line!(line,sem_ver,strict: false)
115
- line.sub!(self.class.regex(strict),bump!(sem_ver).to_s())
116
-
103
+ line.sub!(self.class.regex(strict),bump!(sem_ver).to_s)
104
+
117
105
  return line
118
106
  end
119
-
107
+
120
108
  def build_meta=(build_meta)
121
109
  super(init_str(build_meta))
122
110
  end
123
-
111
+
124
112
  def major=(major)
125
113
  super(init_int_or_str(major))
126
114
  end
127
-
115
+
128
116
  def minor=(minor)
129
117
  super(init_int_or_str(minor))
130
118
  end
131
-
119
+
132
120
  def patch=(patch)
133
121
  super(init_int_or_str(patch))
134
122
  end
135
-
123
+
136
124
  def prerelease=(prerelease)
137
125
  super(init_str(prerelease))
138
126
  end
139
-
127
+
140
128
  def version=(version)
141
129
  super(init_str(version))
142
130
  end
@@ -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
 
@@ -26,7 +12,7 @@ require 'raketeer/sem_ver'
26
12
 
27
13
  module Raketeer
28
14
  ###
29
- # @author Jonathan Bradley Whited (@esotericpig)
15
+ # @author Jonathan Bradley Whited
30
16
  # @since 0.2.4
31
17
  ###
32
18
  class FilesBumper
@@ -42,67 +28,67 @@ module Raketeer
42
28
  attr_accessor :strict
43
29
  attr_accessor :version
44
30
  attr_accessor :version_bumped # Was the version actually bumped?
45
-
31
+
46
32
  alias_method :bump_ver_empty?,:bump_ver_empty
47
33
  alias_method :dry_run?,:dry_run
48
34
  alias_method :strict?,:strict
49
35
  alias_method :version_bumped?,:version_bumped
50
-
36
+
51
37
  def initialize(files,bump_ver,dry_run,strict,&init_per_file)
52
38
  @bump_ver = bump_ver
53
- @bump_ver_empty = bump_ver.empty?()
39
+ @bump_ver_empty = bump_ver.empty?
54
40
  @dry_run = dry_run
55
- @files = files.to_a()
41
+ @files = files.to_a
56
42
  @init_per_file = init_per_file
57
43
  @sem_ver = nil
58
44
  @strict = strict
59
45
  @version = nil
60
46
  @version_bumped = false
61
47
  end
62
-
48
+
63
49
  def add_change(line,push: true)
64
50
  puts "+ #{line}"
65
-
51
+
66
52
  @changes += 1
67
53
  @lines << line if push
68
54
  end
69
-
55
+
70
56
  def bump_files(&block)
71
57
  @files.each do |filename|
72
58
  puts "[#{filename}]:"
73
-
59
+
74
60
  if !File.exist?(filename)
75
61
  puts '! File does not exist'
76
-
62
+
77
63
  next
78
64
  end
79
-
65
+
80
66
  @changes = 0 # For possible future use
81
67
  @lines = []
82
68
  @sem_ver = nil
83
-
84
- @init_per_file.call(self) unless @init_per_file.nil?()
85
-
69
+
70
+ @init_per_file&.call(self)
71
+
86
72
  File.foreach(filename) do |line|
87
73
  @line = line
88
-
89
- block.call(self) if !@line.strip().empty?()
90
-
74
+
75
+ block.call(self) if !@line.strip.empty?
76
+
91
77
  @lines << @line
92
78
  end
93
-
94
- next if bump_ver_empty?()
95
-
79
+
80
+ next if bump_ver_empty?
81
+
96
82
  print '= '
97
-
83
+
98
84
  if @changes > 0
99
- if dry_run?()
85
+ if dry_run?
100
86
  puts "Nothing written (dry run): #{@sem_ver}"
101
87
  else
102
88
  File.open(filename,'w') do |file|
103
89
  file.puts @lines
104
90
  end
105
-
91
+
106
92
  puts "#{@changes} change#{@changes == 1 ? '' : 's'} written"
107
93
  end
108
94
  else
@@ -110,42 +96,40 @@ module Raketeer
110
96
  end
111
97
  end
112
98
  end
113
-
99
+
114
100
  # @return [:no_ver,:same_ver,:bumped_ver]
115
101
  def bump_line!(add_change: true)
116
102
  @sem_ver = SemVer.parse_line(@line,strict: @strict)
117
-
118
- return :no_ver if @sem_ver.nil?()
119
-
120
- @version = @sem_ver if @version.nil?()
121
-
122
- if bump_ver_empty?()
103
+
104
+ return :no_ver if @sem_ver.nil?
105
+
106
+ @version = @sem_ver if @version.nil?
107
+
108
+ if bump_ver_empty?
123
109
  puts "= #{@sem_ver}"
124
-
110
+
125
111
  return :same_ver
126
112
  else
127
- orig_line = @line.dup()
128
- orig_sem_ver = @sem_ver.dup()
129
-
113
+ orig_line = @line.dup
114
+ orig_sem_ver_s = @sem_ver.to_s
115
+
130
116
  @bump_ver.bump_line!(@line,@sem_ver,strict: @strict)
131
-
132
- if @sem_ver.to_s() != orig_sem_ver.to_s()
117
+
118
+ if @sem_ver.to_s != orig_sem_ver_s
133
119
  if !@version_bumped
134
120
  @version = @sem_ver
135
121
  @version_bumped = true
136
122
  end
137
-
123
+
138
124
  self.add_change(@line,push: false) if add_change
139
-
125
+
140
126
  return :bumped_ver
141
127
  else
142
128
  @line = orig_line
143
-
129
+
144
130
  return :same_ver
145
131
  end
146
132
  end
147
-
148
- return :no_ver
149
133
  end
150
134
  end
151
135
  end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+ # frozen_string_literal: true
3
+
4
+ #--
5
+ # This file is part of Raketeer.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
7
+ #++
8
+
9
+
10
+ require 'raketeer/github_pkg_task'
11
+
12
+
13
+ module Raketeer
14
+ ###
15
+ # @author Jonathan Bradley Whited
16
+ # @since 0.2.8
17
+ ###
18
+ module GitHubPkg
19
+ end
20
+ end
21
+
22
+ Raketeer::GitHubPkgTask.new # @since 0.2.8
@@ -0,0 +1,57 @@
1
+ # encoding: UTF-8
2
+ # frozen_string_literal: true
3
+
4
+ #--
5
+ # This file is part of Raketeer.
6
+ # Copyright (c) 2019-2021 Jonathan Bradley Whited
7
+ #++
8
+
9
+
10
+ require 'rake'
11
+ require 'rake/tasklib'
12
+ require 'raketeer/util'
13
+
14
+
15
+ module Raketeer
16
+ ###
17
+ # @author Jonathan Bradley Whited
18
+ # @since 0.2.8
19
+ ###
20
+ class GitHubPkgTask < Rake::TaskLib
21
+ attr_accessor :deps
22
+ attr_accessor :description
23
+ attr_accessor :name
24
+ attr_accessor :username
25
+
26
+ def initialize(name=:github_pkg)
27
+ super()
28
+
29
+ @deps = [:build]
30
+ @description = "Publish this project's gem(s) to GitHub Packages"
31
+ @name = name
32
+ @username = nil
33
+
34
+ yield self if block_given?
35
+
36
+ @username = Util.find_github_username if @username.nil?
37
+
38
+ raise "#{self.class.name}.username is nil" if @username.nil?
39
+
40
+ define
41
+ end
42
+
43
+ def define
44
+ desc @description
45
+ task @name => Array(@deps) do |task,args|
46
+ sh_cmd = ['gem']
47
+
48
+ sh_cmd.push('push')
49
+ sh_cmd.push('--key','github')
50
+ sh_cmd.push('--host',"https://rubygems.pkg.github.com/#{username}")
51
+ sh_cmd.push(*Dir.glob(File.join('pkg','*.gem'))) # Is this okay for multiple gems?
52
+
53
+ sh(*sh_cmd)
54
+ end
55
+ end
56
+ end
57
+ end