raketeer 0.2.13 → 0.2.14
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/CHANGELOG.md +27 -35
- data/Gemfile +12 -1
- data/README.md +40 -40
- data/Rakefile +8 -5
- data/lib/raketeer/all.rb +1 -14
- data/lib/raketeer/bump.rb +1 -11
- data/lib/raketeer/bump_task.rb +55 -58
- data/lib/raketeer/bump_ver.rb +6 -19
- data/lib/raketeer/files_bumper.rb +6 -10
- data/lib/raketeer/github_pkg.rb +1 -12
- data/lib/raketeer/github_pkg_task.rb +6 -11
- data/lib/raketeer/irb.rb +1 -11
- data/lib/raketeer/irb_task.rb +5 -11
- data/lib/raketeer/nokogiri_install_tasks.rb +21 -35
- data/lib/raketeer/nokogiri_installs.rb +1 -13
- data/lib/raketeer/run.rb +1 -11
- data/lib/raketeer/run_task.rb +7 -13
- data/lib/raketeer/sem_ver.rb +17 -15
- data/lib/raketeer/util.rb +12 -16
- data/lib/raketeer/version.rb +3 -9
- data/lib/raketeer.rb +2 -7
- data/raketeer.gemspec +21 -26
- metadata +11 -52
data/lib/raketeer/bump_task.rb
CHANGED
@@ -3,12 +3,11 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'date'
|
13
12
|
require 'rake'
|
14
13
|
require 'rake/tasklib'
|
@@ -18,19 +17,16 @@ require 'raketeer/sem_ver'
|
|
18
17
|
require 'raketeer/util'
|
19
18
|
|
20
19
|
module Raketeer
|
21
|
-
|
22
|
-
# @author Jonathan Bradley Whited
|
23
|
-
# @since 0.2.4
|
24
|
-
###
|
20
|
+
# @since 0.2.4
|
25
21
|
class BumpTask < Rake::TaskLib
|
26
22
|
attr_accessor :bump_bundle
|
27
|
-
attr_accessor :bump_files # Looks for a version number
|
23
|
+
attr_accessor :bump_files # Looks for a version number.
|
28
24
|
attr_accessor :bundle_cmd
|
29
|
-
attr_accessor :changelogs # Looks for 'Unreleased' & a Markdown header
|
25
|
+
attr_accessor :changelogs # Looks for 'Unreleased' & a Markdown header.
|
30
26
|
attr_accessor :dry_run
|
31
27
|
attr_accessor :git_msg
|
32
28
|
attr_accessor :name
|
33
|
-
attr_accessor :ruby_files # Looks for {ruby_var}
|
29
|
+
attr_accessor :ruby_files # Looks for {ruby_var}.
|
34
30
|
attr_accessor :ruby_var
|
35
31
|
attr_accessor :strict
|
36
32
|
|
@@ -38,7 +34,7 @@ module Raketeer
|
|
38
34
|
alias_method :dry_run?,:dry_run
|
39
35
|
alias_method :strict?,:strict
|
40
36
|
|
41
|
-
def initialize(name
|
37
|
+
def initialize(name = :bump)
|
42
38
|
super()
|
43
39
|
|
44
40
|
@bump_bundle = false
|
@@ -48,40 +44,40 @@ module Raketeer
|
|
48
44
|
@dry_run = false
|
49
45
|
@git_msg = "git commit -m 'Bump version to v%{version}'"
|
50
46
|
@name = name
|
51
|
-
@ruby_files = Rake::FileList[
|
47
|
+
@ruby_files = Rake::FileList['lib/**/version.rb']
|
52
48
|
@ruby_var = 'VERSION'
|
53
49
|
@strict = false
|
54
50
|
|
55
|
-
yield
|
51
|
+
yield(self) if block_given?
|
56
52
|
define
|
57
53
|
end
|
58
54
|
|
59
55
|
def define
|
60
56
|
desc 'Show/Set/Bump the version'
|
61
|
-
task @name,[:version] do |
|
57
|
+
task @name,[:version] do |_task,args|
|
62
58
|
bump_all(BumpVer.new(
|
63
59
|
version: args.version,
|
64
60
|
major: ENV['major'],
|
65
61
|
minor: ENV['minor'],
|
66
62
|
patch: ENV['patch'],
|
67
63
|
prerelease: ENV['pre'],
|
68
|
-
build_meta: ENV['build']
|
64
|
+
build_meta: ENV['build'],
|
69
65
|
))
|
70
66
|
end
|
71
67
|
|
72
68
|
namespace @name do
|
73
69
|
desc 'Bump/Set the major version'
|
74
|
-
task :major,[:major] do |
|
70
|
+
task :major,[:major] do |_task,args|
|
75
71
|
bump_ver = BumpVer.new(major: args.major)
|
76
72
|
|
77
|
-
# You can't erase the major version (required)
|
73
|
+
# You can't erase the major version (required).
|
78
74
|
bump_ver.major = '+1' if bump_ver.major.nil? || bump_ver.major.empty?
|
79
75
|
|
80
76
|
bump_all(bump_ver)
|
81
77
|
end
|
82
78
|
|
83
79
|
desc 'Bump/Set the minor version'
|
84
|
-
task :minor,[:minor] do |
|
80
|
+
task :minor,[:minor] do |_task,args|
|
85
81
|
bump_ver = BumpVer.new(minor: args.minor)
|
86
82
|
bump_ver.minor = '+1' if bump_ver.minor.nil?
|
87
83
|
|
@@ -89,7 +85,7 @@ module Raketeer
|
|
89
85
|
end
|
90
86
|
|
91
87
|
desc 'Bump/Set the patch version'
|
92
|
-
task :patch,[:patch] do |
|
88
|
+
task :patch,[:patch] do |_task,args|
|
93
89
|
bump_ver = BumpVer.new(patch: args.patch)
|
94
90
|
bump_ver.patch = '+1' if bump_ver.patch.nil?
|
95
91
|
|
@@ -97,7 +93,7 @@ module Raketeer
|
|
97
93
|
end
|
98
94
|
|
99
95
|
desc 'Set/Erase the pre-release version'
|
100
|
-
task :pre,[:pre] do |
|
96
|
+
task :pre,[:pre] do |_task,args|
|
101
97
|
bump_ver = BumpVer.new(prerelease: args.pre)
|
102
98
|
bump_ver.prerelease = '' if bump_ver.prerelease.nil?
|
103
99
|
|
@@ -105,7 +101,7 @@ module Raketeer
|
|
105
101
|
end
|
106
102
|
|
107
103
|
desc 'Set/Erase the build metadata'
|
108
|
-
task :build,[:build] do |
|
104
|
+
task :build,[:build] do |_task,args|
|
109
105
|
bump_ver = BumpVer.new(build_meta: args.build)
|
110
106
|
bump_ver.build_meta = '' if bump_ver.build_meta.nil?
|
111
107
|
|
@@ -130,7 +126,7 @@ module Raketeer
|
|
130
126
|
|
131
127
|
sem_vers = []
|
132
128
|
|
133
|
-
# Order matters for outputting the most accurate version
|
129
|
+
# NOTE: Order matters for outputting the most accurate version.
|
134
130
|
sem_vers << bump_ruby_files(bump_ver)
|
135
131
|
sem_vers << bump_bump_files(bump_ver)
|
136
132
|
sem_vers << bump_changelogs(bump_ver)
|
@@ -151,7 +147,7 @@ module Raketeer
|
|
151
147
|
# should be without making changes.
|
152
148
|
if !@git_msg.nil?
|
153
149
|
puts '[Git]:'
|
154
|
-
puts
|
150
|
+
puts "= #{format(@git_msg,version: sem_vers[0].to_s)}"
|
155
151
|
end
|
156
152
|
end
|
157
153
|
|
@@ -184,7 +180,7 @@ module Raketeer
|
|
184
180
|
sh(*sh_cmd,verbose: false)
|
185
181
|
end
|
186
182
|
|
187
|
-
# @see https://keepachangelog.com/en/1.
|
183
|
+
# @see https://keepachangelog.com/en/1.1.0
|
188
184
|
def bump_changelogs(bump_ver)
|
189
185
|
return nil if @changelogs.empty?
|
190
186
|
|
@@ -205,14 +201,14 @@ module Raketeer
|
|
205
201
|
if bumper.line =~ unreleased_regex
|
206
202
|
next if @unreleased_bumped
|
207
203
|
|
208
|
-
# Match from the end, in case the URL has a number (like '%20')
|
204
|
+
# Match from the end, in case the URL has a number (like '%20').
|
209
205
|
match = bumper.line.match(/(#{SemVer.regex(@strict)})(\.{3}.*)\z/m)
|
210
206
|
|
211
207
|
next if match.nil? || match.length < 3 || (i = match.begin(0)) < 1
|
212
208
|
|
213
209
|
match = [bumper.line[0..i - 1],match[1],match[-1]]
|
214
210
|
|
215
|
-
next if match.any? {|m| m.nil? || m.strip.empty? }
|
211
|
+
next if match.any? { |m| m.nil? || m.strip.empty? }
|
216
212
|
|
217
213
|
orig_line = bumper.line.dup
|
218
214
|
bumper.line = match[1]
|
@@ -237,7 +233,7 @@ module Raketeer
|
|
237
233
|
|
238
234
|
match = [match[1],match[2],match[-1]]
|
239
235
|
|
240
|
-
next if match.any? {|m| m.nil? || m.strip.empty? }
|
236
|
+
next if match.any? { |m| m.nil? || m.strip.empty? }
|
241
237
|
|
242
238
|
orig_line = bumper.line.dup
|
243
239
|
bumper.line = match[1]
|
@@ -253,8 +249,8 @@ module Raketeer
|
|
253
249
|
|
254
250
|
bumper.line = (match[0] << bumper.line)
|
255
251
|
|
256
|
-
# Replace the date with today's date for the new Markdown header, if it exists
|
257
|
-
match[2].sub!(/\d+\s
|
252
|
+
# Replace the date with today's date for the new Markdown header, if it exists.
|
253
|
+
match[2].sub!(/\d+\s*-\s*\d+\s*-\s*\d+(.*)\z/m,"#{Date.today.strftime('%F')}\\1")
|
258
254
|
|
259
255
|
# Fix the link if there is one:
|
260
256
|
# https://github.com/esotericpig/raketeer/compare/v0.2.10...v0.2.11
|
@@ -266,10 +262,11 @@ module Raketeer
|
|
266
262
|
versions_match = match[2].match(versions_regex)
|
267
263
|
|
268
264
|
if versions_match
|
269
|
-
match[2].sub!(
|
265
|
+
match[2].sub!(
|
266
|
+
versions_regex,
|
270
267
|
"#{versions_match[:end_ver]}" \
|
271
268
|
"#{versions_match[:sep]}" \
|
272
|
-
"#{bumper.sem_ver}"
|
269
|
+
"#{bumper.sem_ver}",
|
273
270
|
)
|
274
271
|
end
|
275
272
|
|
@@ -281,7 +278,7 @@ module Raketeer
|
|
281
278
|
bumper.line << "\n\n"
|
282
279
|
end
|
283
280
|
|
284
|
-
# We are adding a new Markdown header, so always set the line back to its original value
|
281
|
+
# We are adding a new Markdown header, so always set the line back to its original value.
|
285
282
|
bumper.line = orig_line
|
286
283
|
end
|
287
284
|
end
|
@@ -299,7 +296,7 @@ module Raketeer
|
|
299
296
|
next if bumper.changes > 0 || !bumper.sem_ver.nil?
|
300
297
|
next if (match = bumper.line.match(version_var_regex)).nil?
|
301
298
|
next if match.length < 4
|
302
|
-
next if match[1..2].any? {|m| m.nil? || m.strip.empty? }
|
299
|
+
next if match[1..2].any? { |m| m.nil? || m.strip.empty? }
|
303
300
|
|
304
301
|
orig_line = bumper.line.dup
|
305
302
|
bumper.line = match[2]
|
@@ -330,32 +327,32 @@ module Raketeer
|
|
330
327
|
end
|
331
328
|
|
332
329
|
def print_help
|
333
|
-
puts
|
334
|
-
rake #{@name} # Print the current version
|
335
|
-
|
336
|
-
# You can run a dry run for any task (will not write to files)
|
337
|
-
rake #{@name} dryrun=true
|
338
|
-
|
339
|
-
rake #{@name}[1.2.3-alpha.4-beta.5] # Set the version manually
|
340
|
-
rake #{@name} major=1 minor=2 patch=3 # Set the version numbers
|
341
|
-
rake #{@name} pre=alpha.4 build=beta.5 # Set the version extensions
|
342
|
-
rake #{@name} major=+1 minor=+1 patch=+1 # Bump the version numbers by 1
|
343
|
-
rake #{@name} major=+2 minor=+3 patch=+4 # Bump the version numbers by X
|
344
|
-
|
345
|
-
rake #{@name}:major # Bump the major version by 1
|
346
|
-
rake #{@name}:major[1] # Set the major version to 1
|
347
|
-
rake #{@name}:major[+2] # Bump the major version by 2
|
348
|
-
rake #{@name}:minor # Bump the minor version by 1
|
349
|
-
rake #{@name}:minor[2] # Set the minor version to 2
|
350
|
-
rake #{@name}:minor[+3] # Bump the minor version by 3
|
351
|
-
rake #{@name}:patch # Bump the patch version by 1
|
352
|
-
rake #{@name}:patch[3] # Set the patch version to 3
|
353
|
-
rake #{@name}:patch[+4] # Bump the patch version by 4
|
354
|
-
rake #{@name}:pre # Erase the pre-release version
|
355
|
-
rake #{@name}:pre[alpha.4] # Set the pre-release version
|
356
|
-
rake #{@name}:build # Erase the build metadata
|
357
|
-
rake #{@name}:build[beta.5] # Set the build metadata
|
358
|
-
rake #{@name}:bundle # Bump the Gemfile.lock version
|
330
|
+
puts <<~HELP
|
331
|
+
rake #{@name} # Print the current version
|
332
|
+
|
333
|
+
# You can run a dry run for any task (will not write to files)
|
334
|
+
rake #{@name} dryrun=true
|
335
|
+
|
336
|
+
rake #{@name}[1.2.3-alpha.4-beta.5] # Set the version manually
|
337
|
+
rake #{@name} major=1 minor=2 patch=3 # Set the version numbers
|
338
|
+
rake #{@name} pre=alpha.4 build=beta.5 # Set the version extensions
|
339
|
+
rake #{@name} major=+1 minor=+1 patch=+1 # Bump the version numbers by 1
|
340
|
+
rake #{@name} major=+2 minor=+3 patch=+4 # Bump the version numbers by X
|
341
|
+
|
342
|
+
rake #{@name}:major # Bump the major version by 1
|
343
|
+
rake #{@name}:major[1] # Set the major version to 1
|
344
|
+
rake #{@name}:major[+2] # Bump the major version by 2
|
345
|
+
rake #{@name}:minor # Bump the minor version by 1
|
346
|
+
rake #{@name}:minor[2] # Set the minor version to 2
|
347
|
+
rake #{@name}:minor[+3] # Bump the minor version by 3
|
348
|
+
rake #{@name}:patch # Bump the patch version by 1
|
349
|
+
rake #{@name}:patch[3] # Set the patch version to 3
|
350
|
+
rake #{@name}:patch[+4] # Bump the patch version by 4
|
351
|
+
rake #{@name}:pre # Erase the pre-release version
|
352
|
+
rake #{@name}:pre[alpha.4] # Set the pre-release version
|
353
|
+
rake #{@name}:build # Erase the build metadata
|
354
|
+
rake #{@name}:build[beta.5] # Set the build metadata
|
355
|
+
rake #{@name}:bundle # Bump the Gemfile.lock version
|
359
356
|
HELP
|
360
357
|
end
|
361
358
|
end
|
data/lib/raketeer/bump_ver.rb
CHANGED
@@ -3,21 +3,17 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'raketeer/sem_ver'
|
13
12
|
|
14
13
|
module Raketeer
|
15
|
-
###
|
16
14
|
# Bump Version
|
17
15
|
#
|
18
|
-
# @
|
19
|
-
# @since 0.2.4
|
20
|
-
###
|
16
|
+
# @since 0.2.4
|
21
17
|
class BumpVer < SemVer
|
22
18
|
def initialize(version: nil,major: nil,minor: nil,patch: nil,prerelease: nil,build_meta: nil)
|
23
19
|
super()
|
@@ -41,7 +37,7 @@ module Raketeer
|
|
41
37
|
end
|
42
38
|
|
43
39
|
def init_str(obj)
|
44
|
-
return obj
|
40
|
+
return obj&.to_s&.strip
|
45
41
|
end
|
46
42
|
|
47
43
|
def bump!(sem_ver)
|
@@ -52,7 +48,7 @@ module Raketeer
|
|
52
48
|
if @major.is_a?(Integer)
|
53
49
|
sem_ver.major = @major
|
54
50
|
elsif @major.empty?
|
55
|
-
sem_ver.major = 0 # There must always be a major version
|
51
|
+
sem_ver.major = 0 # There must always be a major version.
|
56
52
|
else
|
57
53
|
sem_ver.major = 0 if sem_ver.major.nil?
|
58
54
|
|
@@ -105,19 +101,10 @@ module Raketeer
|
|
105
101
|
end
|
106
102
|
|
107
103
|
if !@prerelease.nil?
|
108
|
-
|
109
|
-
sem_ver.prerelease = nil
|
110
|
-
else
|
111
|
-
sem_ver.prerelease = @prerelease
|
112
|
-
end
|
104
|
+
sem_ver.prerelease = @prerelease.empty? ? nil : @prerelease
|
113
105
|
end
|
114
|
-
|
115
106
|
if !@build_meta.nil?
|
116
|
-
|
117
|
-
sem_ver.build_meta = nil
|
118
|
-
else
|
119
|
-
sem_ver.build_meta = @build_meta
|
120
|
-
end
|
107
|
+
sem_ver.build_meta = @build_meta.empty? ? nil : @build_meta
|
121
108
|
end
|
122
109
|
end
|
123
110
|
|
@@ -3,20 +3,16 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'raketeer/bump_ver'
|
13
12
|
require 'raketeer/sem_ver'
|
14
13
|
|
15
14
|
module Raketeer
|
16
|
-
|
17
|
-
# @author Jonathan Bradley Whited
|
18
|
-
# @since 0.2.4
|
19
|
-
###
|
15
|
+
# @since 0.2.4
|
20
16
|
class FilesBumper
|
21
17
|
attr_reader :bump_ver
|
22
18
|
attr_reader :bump_ver_empty
|
@@ -55,7 +51,7 @@ module Raketeer
|
|
55
51
|
@lines << line if push
|
56
52
|
end
|
57
53
|
|
58
|
-
def bump_files
|
54
|
+
def bump_files
|
59
55
|
@files.each do |filename|
|
60
56
|
puts "[#{filename}]:"
|
61
57
|
|
@@ -65,7 +61,7 @@ module Raketeer
|
|
65
61
|
next
|
66
62
|
end
|
67
63
|
|
68
|
-
@changes = 0 # For possible future use
|
64
|
+
@changes = 0 # For possible future use.
|
69
65
|
@lines = []
|
70
66
|
@sem_ver = nil
|
71
67
|
|
@@ -74,7 +70,7 @@ module Raketeer
|
|
74
70
|
File.foreach(filename) do |line|
|
75
71
|
@line = line
|
76
72
|
|
77
|
-
|
73
|
+
yield(self) if !@line.strip.empty?
|
78
74
|
|
79
75
|
@lines << @line
|
80
76
|
end
|
@@ -91,7 +87,7 @@ module Raketeer
|
|
91
87
|
file.puts @lines
|
92
88
|
end
|
93
89
|
|
94
|
-
puts "#{@changes} change#{@changes == 1
|
90
|
+
puts "#{@changes} change#{'s' if @changes == 1} written"
|
95
91
|
end
|
96
92
|
else
|
97
93
|
puts "Nothing written (up-to-date): #{@sem_ver}"
|
data/lib/raketeer/github_pkg.rb
CHANGED
@@ -3,22 +3,11 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'raketeer/github_pkg_task'
|
13
12
|
|
14
|
-
|
15
|
-
module Raketeer
|
16
|
-
###
|
17
|
-
# @author Jonathan Bradley Whited
|
18
|
-
# @since 0.2.8
|
19
|
-
###
|
20
|
-
module GitHubPkg
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
13
|
Raketeer::GitHubPkgTask.new # @since 0.2.8
|
@@ -3,29 +3,24 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'rake'
|
13
12
|
require 'rake/tasklib'
|
14
13
|
require 'raketeer/util'
|
15
14
|
|
16
|
-
|
17
15
|
module Raketeer
|
18
|
-
|
19
|
-
# @author Jonathan Bradley Whited
|
20
|
-
# @since 0.2.8
|
21
|
-
###
|
16
|
+
# @since 0.2.8
|
22
17
|
class GitHubPkgTask < Rake::TaskLib
|
23
18
|
attr_accessor :deps
|
24
19
|
attr_accessor :description
|
25
20
|
attr_accessor :name
|
26
21
|
attr_accessor :username
|
27
22
|
|
28
|
-
def initialize(name
|
23
|
+
def initialize(name = :github_pkg)
|
29
24
|
super()
|
30
25
|
|
31
26
|
@deps = [:build]
|
@@ -33,7 +28,7 @@ module Raketeer
|
|
33
28
|
@name = name
|
34
29
|
@username = nil
|
35
30
|
|
36
|
-
yield
|
31
|
+
yield(self) if block_given?
|
37
32
|
|
38
33
|
@username = Util.find_github_username if @username.nil?
|
39
34
|
|
@@ -44,13 +39,13 @@ module Raketeer
|
|
44
39
|
|
45
40
|
def define
|
46
41
|
desc @description
|
47
|
-
task @name => Array(@deps) do |
|
42
|
+
task @name => Array(@deps) do |_task,_args|
|
48
43
|
sh_cmd = ['gem']
|
49
44
|
|
50
45
|
sh_cmd.push('push')
|
51
46
|
sh_cmd.push('--key','github')
|
52
47
|
sh_cmd.push('--host',"https://rubygems.pkg.github.com/#{username}")
|
53
|
-
sh_cmd.push(*Dir.glob(
|
48
|
+
sh_cmd.push(*Dir.glob('pkg/*.gem')) # TODO: Is this okay for multiple gems?
|
54
49
|
|
55
50
|
sh(*sh_cmd)
|
56
51
|
end
|
data/lib/raketeer/irb.rb
CHANGED
@@ -3,21 +3,11 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'raketeer/irb_task'
|
13
12
|
|
14
|
-
module Raketeer
|
15
|
-
###
|
16
|
-
# @author Jonathan Bradley Whited
|
17
|
-
# @since 0.2.0
|
18
|
-
###
|
19
|
-
module IRB
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
13
|
Raketeer::IRBTask.new # @since 0.2.0
|
data/lib/raketeer/irb_task.rb
CHANGED
@@ -3,23 +3,17 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'rake'
|
13
|
-
|
14
12
|
require 'rake/tasklib'
|
15
|
-
|
16
13
|
require 'raketeer/util'
|
17
14
|
|
18
15
|
module Raketeer
|
19
|
-
|
20
|
-
# @author Jonathan Bradley Whited
|
21
|
-
# @since 0.1.0
|
22
|
-
###
|
16
|
+
# @since 0.1.0
|
23
17
|
class IRBTask < Rake::TaskLib
|
24
18
|
attr_accessor :description
|
25
19
|
attr_accessor :irb_cmd
|
@@ -29,7 +23,7 @@ module Raketeer
|
|
29
23
|
|
30
24
|
alias_method :warning?,:warning
|
31
25
|
|
32
|
-
def initialize(name
|
26
|
+
def initialize(name = :irb)
|
33
27
|
super()
|
34
28
|
|
35
29
|
@description = 'Open an irb session loaded with this library'
|
@@ -41,7 +35,7 @@ module Raketeer
|
|
41
35
|
@irb_cmd.push('-r','rubygems')
|
42
36
|
@irb_cmd.push('-r','bundler/setup')
|
43
37
|
|
44
|
-
yield
|
38
|
+
yield(self) if block_given?
|
45
39
|
|
46
40
|
@irb_cmd.push('-r',@main_module) unless @main_module.nil?
|
47
41
|
@irb_cmd << '-w' if @warning
|
@@ -51,7 +45,7 @@ module Raketeer
|
|
51
45
|
|
52
46
|
def define
|
53
47
|
desc @description
|
54
|
-
task @name do |
|
48
|
+
task @name do |_task,_args|
|
55
49
|
sh(*@irb_cmd)
|
56
50
|
end
|
57
51
|
end
|
@@ -3,21 +3,16 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'rake'
|
13
|
-
|
14
12
|
require 'rake/tasklib'
|
15
13
|
|
16
14
|
module Raketeer
|
17
|
-
|
18
|
-
# @author Jonathan Bradley Whited
|
19
|
-
# @since 0.1.0
|
20
|
-
###
|
15
|
+
# @since 0.1.0
|
21
16
|
class NokogiriInstallTask < Rake::TaskLib
|
22
17
|
attr_accessor :description
|
23
18
|
attr_accessor :install_cmd
|
@@ -40,58 +35,49 @@ module Raketeer
|
|
40
35
|
end
|
41
36
|
end
|
42
37
|
|
43
|
-
def run(
|
38
|
+
def run(_task,_args)
|
44
39
|
sh(*@install_cmd)
|
45
40
|
end
|
46
41
|
end
|
47
42
|
|
48
|
-
|
49
|
-
# @author Jonathan Bradley Whited
|
50
|
-
# @since 0.1.0
|
51
|
-
###
|
43
|
+
# @since 0.1.0
|
52
44
|
class NokogiriAPTTask < NokogiriInstallTask
|
53
|
-
def initialize(name
|
45
|
+
def initialize(name = :nokogiri_apt,&block)
|
54
46
|
super(name)
|
55
47
|
|
56
48
|
@description = 'Install Nokogiri libs for Ubuntu/Debian'
|
57
49
|
|
58
|
-
@install_cmd = %w[
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
@install_cmd << 'zlib1g-dev'
|
50
|
+
@install_cmd = %w[
|
51
|
+
sudo apt install
|
52
|
+
zlib1g-dev liblzma-dev patch
|
53
|
+
build-essential ruby-dev
|
54
|
+
xz-utils libgmp-dev
|
55
|
+
]
|
65
56
|
|
66
57
|
define(&block)
|
67
58
|
end
|
68
59
|
end
|
69
60
|
|
70
|
-
|
71
|
-
# @author Jonathan Bradley Whited
|
72
|
-
# @since 0.1.0
|
73
|
-
###
|
61
|
+
# @since 0.1.0
|
74
62
|
class NokogiriDNFTask < NokogiriInstallTask
|
75
|
-
def initialize(name
|
63
|
+
def initialize(name = :nokogiri_dnf,&block)
|
76
64
|
super(name)
|
77
65
|
|
78
66
|
@description = 'Install Nokogiri libs for Fedora/CentOS/Red Hat'
|
79
67
|
|
80
|
-
@install_cmd = %w[
|
81
|
-
|
82
|
-
|
83
|
-
|
68
|
+
@install_cmd = %w[
|
69
|
+
sudo dnf install
|
70
|
+
zlib-devel xz patch
|
71
|
+
make gcc rpm-build ruby-devel
|
72
|
+
]
|
84
73
|
|
85
74
|
define(&block)
|
86
75
|
end
|
87
76
|
end
|
88
77
|
|
89
|
-
|
90
|
-
# @author Jonathan Bradley Whited
|
91
|
-
# @since 0.1.0
|
92
|
-
###
|
78
|
+
# @since 0.1.0
|
93
79
|
class NokogiriOtherTask < NokogiriInstallTask
|
94
|
-
def initialize(name
|
80
|
+
def initialize(name = :nokogiri_other,&block)
|
95
81
|
super(name)
|
96
82
|
|
97
83
|
@description = 'Install Nokogiri libs for other OSes'
|
@@ -99,7 +85,7 @@ module Raketeer
|
|
99
85
|
define(&block)
|
100
86
|
end
|
101
87
|
|
102
|
-
def run(
|
88
|
+
def run(_task,_args)
|
103
89
|
puts 'Please go to this link for installing Nokogiri on your system:'
|
104
90
|
puts ' https://nokogiri.org/tutorials/installing_nokogiri.html'
|
105
91
|
end
|
@@ -3,25 +3,13 @@
|
|
3
3
|
|
4
4
|
#--
|
5
5
|
# This file is part of Raketeer.
|
6
|
-
# Copyright (c) 2019
|
6
|
+
# Copyright (c) 2019 Bradley Whited
|
7
7
|
#
|
8
8
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
9
9
|
#++
|
10
10
|
|
11
|
-
|
12
11
|
require 'raketeer/nokogiri_install_tasks'
|
13
12
|
|
14
|
-
module Raketeer
|
15
|
-
###
|
16
|
-
# Defines all Nokogiri install tasks in your Rakefile.
|
17
|
-
#
|
18
|
-
# @author Jonathan Bradley Whited
|
19
|
-
# @since 0.1.0
|
20
|
-
###
|
21
|
-
module NokogiriInstalls
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
13
|
Raketeer::NokogiriAPTTask.new # @since 0.1.0
|
26
14
|
Raketeer::NokogiriDNFTask.new # @since 0.1.0
|
27
15
|
Raketeer::NokogiriOtherTask.new # @since 0.1.0
|