rake-deveiate 0.11.0 → 0.14.1
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.md +38 -0
- data/README.md +3 -0
- data/data/rake-deveiate/Rakefile.erb +8 -0
- data/data/rake-deveiate/global.rake +21 -0
- data/lib/rake/deveiate.rb +89 -6
- data/lib/rake/deveiate/checks.rb +1 -1
- data/lib/rake/deveiate/fixup.rb +256 -0
- data/lib/rake/deveiate/generate.rb +21 -2
- data/lib/rake/deveiate/hg.rb +1 -1
- metadata +37 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 762cab05ba4a8d7497af5395d492da9039bfc929b1a1cd423710a769d76f5961
|
4
|
+
data.tar.gz: 7fa33393fd538004b48176aa6b7d5f05196a9b2c94d645cd75c920b4a8ae3631
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56f2cc7d30f5cfbf51e6a27a984b606407b41d076ba2cc5c26e475c26173cdb72505f30fefd5fed3a5e6c9fad0dbf272f73adf9d93786282e2163bbdbc70ef44
|
7
|
+
data.tar.gz: e1d1235a86e52ec19eb9b1653b45cd6fcf753662d14b3409cf42de995aaeb82b6a05756cf512dea922a2e6ed615f01d2ae23adf11d1a2500dca937fd95655577
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.md
CHANGED
@@ -1,6 +1,44 @@
|
|
1
1
|
# Release History for rake-deveiate
|
2
2
|
|
3
3
|
---
|
4
|
+
## v0.14.1 [2020-10-01] Michael Granger <ged@FaerieMUD.org>
|
5
|
+
|
6
|
+
Improvements:
|
7
|
+
|
8
|
+
- Support changes in latest tty-editor.
|
9
|
+
|
10
|
+
|
11
|
+
## v0.14.0 [2020-04-02] Michael Granger <ged@FaerieMUD.org>
|
12
|
+
|
13
|
+
Improvements:
|
14
|
+
|
15
|
+
- Handle gem names like 'ruby-pf', fixup untracked gem deps files
|
16
|
+
|
17
|
+
|
18
|
+
## v0.13.0 [2020-03-09] Michael Granger <ged@FaerieMUD.org>
|
19
|
+
|
20
|
+
Improvements:
|
21
|
+
|
22
|
+
- Allow file that version is read from to be overridden
|
23
|
+
|
24
|
+
Bugfixes:
|
25
|
+
|
26
|
+
- Bump the hglib dependency
|
27
|
+
|
28
|
+
|
29
|
+
## v0.12.1 [2020-03-04] Michael Granger <ged@FaerieMUD.org>
|
30
|
+
|
31
|
+
Bugfixes:
|
32
|
+
|
33
|
+
- Stop truncating the description extracted from the README.
|
34
|
+
|
35
|
+
|
36
|
+
## v0.12.0 [2020-03-04] Michael Granger <ged@FaerieMUD.org>
|
37
|
+
|
38
|
+
Improvements:
|
39
|
+
|
40
|
+
- Add fixup tasks, example global rakefile
|
41
|
+
|
4
42
|
|
5
43
|
## v0.11.0 [2020-02-26] Michael Granger <ged@FaerieMUD.org>
|
6
44
|
|
data/README.md
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rake/deveiate'
|
6
|
+
rescue LoadError => err
|
7
|
+
msg = err.respond_to?( :full_message ) ?
|
8
|
+
err.full_message( highlight: true, order: :bottom ) :
|
9
|
+
err.message
|
10
|
+
warn "%p while loading rake-deveiate: %s" % [ err.class, msg ]
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
if defined?( Rake::DevEiate ) && !Rake::DevEiate.already_setup?
|
15
|
+
default_name = File.basename( Dir.pwd ).downcase
|
16
|
+
|
17
|
+
Rake::DevEiate.setup( default_name )
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
|
data/lib/rake/deveiate.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'pathname'
|
5
5
|
require 'etc'
|
6
|
+
require 'tempfile'
|
6
7
|
|
7
8
|
begin
|
8
9
|
gem 'rdoc'
|
@@ -34,7 +35,7 @@ class Rake::DevEiate < Rake::TaskLib
|
|
34
35
|
VERSION_PATTERN = /VERSION\s*=\s*(?<quote>['"])(?<version>\d+(\.\d+){2}.*)\k<quote>/
|
35
36
|
|
36
37
|
# The version of this library
|
37
|
-
VERSION = '0.
|
38
|
+
VERSION = '0.14.1'
|
38
39
|
|
39
40
|
# The server to release to by default
|
40
41
|
DEFAULT_GEMSERVER = 'https://rubygems.org/'
|
@@ -45,6 +46,10 @@ class Rake::DevEiate < Rake::TaskLib
|
|
45
46
|
# The version to use if one cannot be read from the source
|
46
47
|
DEFAULT_VERSION = '0.1.0'
|
47
48
|
|
49
|
+
# Words in the package/gem name that should not be included in deriving paths,
|
50
|
+
# file names, etc.
|
51
|
+
PACKAGE_IGNORE_WORDS = %w[ruby]
|
52
|
+
|
48
53
|
# Paths
|
49
54
|
PROJECT_DIR = Pathname( '.' )
|
50
55
|
|
@@ -72,6 +77,10 @@ class Rake::DevEiate < Rake::TaskLib
|
|
72
77
|
]
|
73
78
|
DEFAULT_PROJECT_FILES.exclude( 'Manifest*.txt' )
|
74
79
|
|
80
|
+
# Environment variable overrides for settings
|
81
|
+
ENV_SETTING_NAME = {
|
82
|
+
version_from: 'VERSION_FROM',
|
83
|
+
}
|
75
84
|
|
76
85
|
|
77
86
|
# The default license for the project in SPDX form: https://spdx.org/licenses
|
@@ -126,22 +135,29 @@ class Rake::DevEiate < Rake::TaskLib
|
|
126
135
|
end
|
127
136
|
|
128
137
|
|
138
|
+
### Returns +true+ if Rake::DevEiate has already been set up.
|
139
|
+
def self::already_setup?
|
140
|
+
Rake::Task.task_defined?( 'deveiate' )
|
141
|
+
end
|
142
|
+
|
129
143
|
|
130
144
|
### Create the devEiate tasks for a gem with the given +name+.
|
131
145
|
def initialize( name, **options, &block )
|
132
146
|
@name = validate_gemname( name )
|
133
147
|
@options = options
|
134
148
|
|
149
|
+
@rakefile = PROJECT_DIR + 'Rakefile'
|
135
150
|
@manifest_file = DEFAULT_MANIFEST_FILE.dup
|
136
151
|
@project_files = self.read_manifest
|
137
152
|
@executables = self.find_executables
|
138
|
-
@version = self.find_version || DEFAULT_VERSION
|
139
153
|
@readme_file = self.find_readme
|
140
154
|
@history_file = self.find_history_file
|
141
155
|
@readme = self.parse_readme
|
142
156
|
@rdoc_files = self.make_rdoc_filelist
|
143
157
|
@cert_files = Rake::FileList[ CERTS_DIR + '*.pem' ]
|
144
158
|
@licenses = [ DEFAULT_LICENSE ]
|
159
|
+
@version_from = env( :version_from, as_pathname: true ) ||
|
160
|
+
LIB_DIR + "%s.rb" % [ version_file_from(name) ]
|
145
161
|
|
146
162
|
@docs_dir = DOCS_DIR.dup
|
147
163
|
|
@@ -152,6 +168,7 @@ class Rake::DevEiate < Rake::TaskLib
|
|
152
168
|
@summary = nil
|
153
169
|
@dependencies = self.find_dependencies
|
154
170
|
|
171
|
+
@version = nil
|
155
172
|
@publish_to = nil
|
156
173
|
@required_ruby_version = nil
|
157
174
|
|
@@ -202,6 +219,14 @@ class Rake::DevEiate < Rake::TaskLib
|
|
202
219
|
# The title of the library for things like docs, gemspec, etc.
|
203
220
|
attr_accessor :title
|
204
221
|
|
222
|
+
##
|
223
|
+
# The pathname of the file to read the version from
|
224
|
+
attr_pathname :version_from
|
225
|
+
|
226
|
+
##
|
227
|
+
# The project's Rakefile
|
228
|
+
attr_pathname :rakefile
|
229
|
+
|
205
230
|
##
|
206
231
|
# The file that will be the main page of documentation
|
207
232
|
attr_pathname :readme_file
|
@@ -304,6 +329,13 @@ class Rake::DevEiate < Rake::TaskLib
|
|
304
329
|
|
305
330
|
### Set up a simple default task
|
306
331
|
def define_default_tasks
|
332
|
+
|
333
|
+
# task used to indicate that rake-deveiate has already been setup once; for
|
334
|
+
# global rakefiles.
|
335
|
+
task :deveiate do
|
336
|
+
# no-op
|
337
|
+
end
|
338
|
+
|
307
339
|
desc "The task that runs by default"
|
308
340
|
task( :default => :spec )
|
309
341
|
|
@@ -403,7 +435,7 @@ class Rake::DevEiate < Rake::TaskLib
|
|
403
435
|
def extract_description
|
404
436
|
parts = self.readme&.parts or return nil
|
405
437
|
desc_para = parts.find {|part| part.is_a?(RDoc::Markup::Paragraph) }&.text or return nil
|
406
|
-
formatter = RDoc::Markup::
|
438
|
+
formatter = RDoc::Markup::ToHtml.new( RDoc::Options.new )
|
407
439
|
html = formatter.convert( desc_para )
|
408
440
|
|
409
441
|
return html.gsub( /<.*?>/, '' ).strip
|
@@ -469,10 +501,17 @@ class Rake::DevEiate < Rake::TaskLib
|
|
469
501
|
end
|
470
502
|
|
471
503
|
|
504
|
+
### Return the project version as a Gem::Version, reading it from the
|
505
|
+
### #version_from file if it's not set yet.
|
506
|
+
def version
|
507
|
+
return @version ||= self.find_version
|
508
|
+
end
|
509
|
+
|
510
|
+
|
472
511
|
### Find the file that contains the VERSION constant and return it as a
|
473
512
|
### Gem::Version.
|
474
513
|
def find_version
|
475
|
-
version_file =
|
514
|
+
version_file = self.version_from
|
476
515
|
|
477
516
|
unless version_file.readable?
|
478
517
|
self.prompt.warn "Version could not be read from %s" % [ version_file ]
|
@@ -631,9 +670,13 @@ class Rake::DevEiate < Rake::TaskLib
|
|
631
670
|
case File.extname( filename )
|
632
671
|
when '.md' then return '#'
|
633
672
|
when '.rdoc' then return '='
|
634
|
-
|
635
|
-
|
673
|
+
when ''
|
674
|
+
if filename == 'Rakefile'
|
675
|
+
return '#'
|
676
|
+
end
|
636
677
|
end
|
678
|
+
|
679
|
+
raise "Don't know what header character is appropriate for %s" % [ filename ]
|
637
680
|
end
|
638
681
|
|
639
682
|
|
@@ -661,6 +704,26 @@ class Rake::DevEiate < Rake::TaskLib
|
|
661
704
|
end
|
662
705
|
|
663
706
|
|
707
|
+
### Yield an IO to the block open to a file that will replace +filename+ if the
|
708
|
+
### block returns successfully.
|
709
|
+
def write_replacement_file( filename, **opts )
|
710
|
+
path = Pathname( filename ).expand_path
|
711
|
+
mode = path.stat.mode
|
712
|
+
owner = path.stat.uid
|
713
|
+
group = path.stat.gid
|
714
|
+
|
715
|
+
tmpfile = Tempfile.create( path.basename.to_s, **opts ) do |fh|
|
716
|
+
yield( fh )
|
717
|
+
|
718
|
+
newfile = Pathname( fh.path ).expand_path
|
719
|
+
newfile.rename( path )
|
720
|
+
|
721
|
+
path.chown( owner, group )
|
722
|
+
path.chmod( mode )
|
723
|
+
end
|
724
|
+
end
|
725
|
+
|
726
|
+
|
664
727
|
### Output debugging information about documentation.
|
665
728
|
def output_documentation_debugging
|
666
729
|
summary = self.extract_summary
|
@@ -736,4 +799,24 @@ class Rake::DevEiate < Rake::TaskLib
|
|
736
799
|
return nil
|
737
800
|
end
|
738
801
|
|
802
|
+
|
803
|
+
### Convenience mapping -- fetch a value for the setting of the given +name+
|
804
|
+
### from the appropriate environment variable. Returns +nil+ if that variable is
|
805
|
+
### undefined or blank.
|
806
|
+
def env( name, as_pathname: false )
|
807
|
+
env_name = ENV_SETTING_NAME[ name ] or return nil
|
808
|
+
val = ENV[ env_name ] or return nil
|
809
|
+
return val unless as_pathname
|
810
|
+
return PROJECT_DIR + val
|
811
|
+
end
|
812
|
+
|
813
|
+
|
814
|
+
### Return the path to the file that should contain the VERSION constant.
|
815
|
+
def version_file_from( name )
|
816
|
+
return name.
|
817
|
+
split( /-/ ).
|
818
|
+
reject {|word| PACKAGE_IGNORE_WORDS.include?(word) }.
|
819
|
+
join( '/' )
|
820
|
+
end
|
821
|
+
|
739
822
|
end # class Rake::DevEiate
|
data/lib/rake/deveiate/checks.rb
CHANGED
@@ -0,0 +1,256 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'rake'
|
5
|
+
require 'hglib'
|
6
|
+
|
7
|
+
require 'rake/deveiate' unless defined?( Rake::DevEiate )
|
8
|
+
|
9
|
+
|
10
|
+
# Fixup and conversion tasks
|
11
|
+
module Rake::DevEiate::Fixup
|
12
|
+
extend Rake::DSL
|
13
|
+
|
14
|
+
|
15
|
+
# Pattern for matching lines in the Manifest that shouldn't be there
|
16
|
+
MANIFEST_CRUFT_LINE = %r{
|
17
|
+
^(?: # Match whole lines
|
18
|
+
changelog
|
19
|
+
)$
|
20
|
+
}xim
|
21
|
+
|
22
|
+
# Pathnames of Bundler-related files
|
23
|
+
BUNDLER_FILES = [
|
24
|
+
Rake::DevEiate::PROJECT_DIR + 'Gemfile',
|
25
|
+
Rake::DevEiate::PROJECT_DIR + 'Gemfile.lock',
|
26
|
+
Rake::DevEiate::PROJECT_DIR + 'Gemfile.devel',
|
27
|
+
Rake::DevEiate::PROJECT_DIR + 'Gemfile.devel.lock',
|
28
|
+
]
|
29
|
+
|
30
|
+
# Pathnames of legacy dependency files
|
31
|
+
LEGACY_DEPSFILES = [
|
32
|
+
Rake::DevEiate::PROJECT_DIR + '.gems',
|
33
|
+
Rake::DevEiate::PROJECT_DIR + '.rvm.gems',
|
34
|
+
]
|
35
|
+
|
36
|
+
# Gems to add to the 'development' group of the deps file
|
37
|
+
DEV_GEMDEPS = %w[
|
38
|
+
rake-deveiate
|
39
|
+
rdoc-generator-fivefish
|
40
|
+
]
|
41
|
+
|
42
|
+
|
43
|
+
### Define fixup tasks
|
44
|
+
def define_tasks
|
45
|
+
super if defined?( super )
|
46
|
+
|
47
|
+
self.define_hoe_fixup_tasks
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
### Set up tasks that check for poor whitespace discipline
|
52
|
+
def define_hoe_fixup_tasks
|
53
|
+
|
54
|
+
desc "Perform various fixup tasks on the current project."
|
55
|
+
task :fixup => 'fixup:all'
|
56
|
+
|
57
|
+
namespace :fixup do
|
58
|
+
|
59
|
+
task :all => [
|
60
|
+
:rakefile,
|
61
|
+
:manifest,
|
62
|
+
:bundler,
|
63
|
+
:depsfiles,
|
64
|
+
]
|
65
|
+
|
66
|
+
desc "Remove hoe from the Rakefile and re-generate it"
|
67
|
+
task :rakefile, &method( :do_fixup_rakefile )
|
68
|
+
|
69
|
+
|
70
|
+
desc "Clean up cruft from the manifest file"
|
71
|
+
task :manifest, &method( :do_fixup_manifest )
|
72
|
+
|
73
|
+
|
74
|
+
desc "Remove Bundler-related files"
|
75
|
+
task :bundler, &method( :do_fixup_bundler )
|
76
|
+
|
77
|
+
|
78
|
+
desc "Fix up dependencies file/s"
|
79
|
+
task :depsfiles, &method( :do_fixup_legacy_depsfiles )
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
task :fixup_debug, &method( :do_fixup_debug )
|
84
|
+
task :debug => :fixup_debug
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
### Task function -- output debugging for fixup tasks.
|
90
|
+
def do_fixup_debug( task, args )
|
91
|
+
fixups = []
|
92
|
+
|
93
|
+
fixups << "De-hoeify the Rakefile" if self.rakefile_needs_hoe_fixup?
|
94
|
+
fixups << "Remove cruft from the manifest" if self.manifest_needs_fixup?
|
95
|
+
fixups << "Remove bundler files" if self.bundler_files_present?
|
96
|
+
fixups << "Convert legacy dependency files" if self.legacy_deps_files_present?
|
97
|
+
|
98
|
+
self.prompt.say( "Fixups available:", color: :bright_green )
|
99
|
+
|
100
|
+
if fixups.empty?
|
101
|
+
self.prompt.say( "None; project looks clean." )
|
102
|
+
else
|
103
|
+
fixups.each do |desc|
|
104
|
+
self.prompt.say "[ ] %s" % [ desc ]
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
self.prompt.say( "\n" )
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
### Return +true+ if the Rakefile in the current project directory needs to be
|
113
|
+
### cleaned up.
|
114
|
+
def rakefile_needs_hoe_fixup?
|
115
|
+
return false unless self.rakefile.exist? && !self.rakefile.zero?
|
116
|
+
return self.rakefile.read.split( /^__END__/m, 2 ).first.match?( /hoe/i )
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
### Returns +true+ if the manifest file has crufty lines in it.
|
121
|
+
def manifest_needs_fixup?
|
122
|
+
return false unless self.manifest_file.exist?
|
123
|
+
return self.manifest_file.each_line.any?( MANIFEST_CRUFT_LINE )
|
124
|
+
end
|
125
|
+
|
126
|
+
|
127
|
+
### Return +true+ if there are Bundler-related files in the project.
|
128
|
+
def bundler_files_present?
|
129
|
+
return BUNDLER_FILES.any?( &:exist? )
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
### Return +true+ if there are legacy dependency files in the project
|
134
|
+
def legacy_deps_files_present?
|
135
|
+
return LEGACY_DEPSFILES.any?( &:exist? )
|
136
|
+
end
|
137
|
+
|
138
|
+
|
139
|
+
### Replace the current Rakefile with a generated one of it is a Hoe-based one.
|
140
|
+
def do_fixup_rakefile( task, * )
|
141
|
+
unless self.rakefile_needs_hoe_fixup?
|
142
|
+
self.trace "Not a hoe-based Rakefile; skipping"
|
143
|
+
return
|
144
|
+
end
|
145
|
+
|
146
|
+
original = self.rakefile.read
|
147
|
+
|
148
|
+
self.write_replacement_file( self.rakefile, encoding: 'utf-8' ) do |fh|
|
149
|
+
|
150
|
+
self.trace "Re-generating Rakefile from a template"
|
151
|
+
template = Rake::DevEiate::Generate::RAKEFILE_TEMPLATE
|
152
|
+
boilerplate = self.load_and_render_template( template, 'Rakefile' )
|
153
|
+
fh.print( boilerplate )
|
154
|
+
|
155
|
+
self.trace "Appending the old Rakefile contents in an END section"
|
156
|
+
fh.puts
|
157
|
+
fh.puts "__END__"
|
158
|
+
fh.puts
|
159
|
+
fh.print( original )
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
|
164
|
+
### Clean up cruft from the manifest file.
|
165
|
+
def do_fixup_manifest( task, * )
|
166
|
+
unless self.manifest_needs_fixup?
|
167
|
+
self.trace "Manifest is clean; skipping"
|
168
|
+
return
|
169
|
+
end
|
170
|
+
|
171
|
+
self.write_replacement_file( self.manifest_file, encoding: 'utf-8' ) do |fh|
|
172
|
+
self.trace "Removing cruft from the manifest"
|
173
|
+
self.manifest_file.each_line do |line|
|
174
|
+
next if line.match?( MANIFEST_CRUFT_LINE )
|
175
|
+
fh.puts( line )
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
|
181
|
+
### Remove any bundler-related files.
|
182
|
+
def do_fixup_bundler( task, * )
|
183
|
+
BUNDLER_FILES.each do |file|
|
184
|
+
next unless file.exist?
|
185
|
+
self.trace "Removing bundler file %s..." % [ file ]
|
186
|
+
self.hg.rm( file, force: true )
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
|
191
|
+
### Convert legacy dependency files to the newer form.
|
192
|
+
def do_fixup_legacy_depsfiles( task, * )
|
193
|
+
unless self.legacy_deps_files_present?
|
194
|
+
self.trace "No legacy dependency files; skipping"
|
195
|
+
return
|
196
|
+
end
|
197
|
+
|
198
|
+
new_depsfile = Rake::DevEiate::GEMDEPS_FILE
|
199
|
+
|
200
|
+
LEGACY_DEPSFILES.each do |depsfile|
|
201
|
+
next unless depsfile.readable?
|
202
|
+
|
203
|
+
if new_depsfile.exist?
|
204
|
+
self.hg.rm( depsfile )
|
205
|
+
else
|
206
|
+
depnames = depsfile.each_line.map do |line|
|
207
|
+
line.split( /\s+/, 2 ).first
|
208
|
+
end
|
209
|
+
|
210
|
+
raise "Failed to read dependencies from %s!" % [ depsfile ] if depnames.empty?
|
211
|
+
|
212
|
+
if self.hg.tracked?( depsfile )
|
213
|
+
self.trace "Recording move of %s to %s" % [ depsfile, new_depsfile ]
|
214
|
+
self.hg.mv( depsfile, new_depsfile )
|
215
|
+
else
|
216
|
+
depsfile.rename( new_depsfile )
|
217
|
+
end
|
218
|
+
|
219
|
+
newest_deps = self.find_latest_versions( *depnames ).
|
220
|
+
reject {|tuple| tuple.name.include?('hoe') }
|
221
|
+
dev_deps = self.find_latest_versions( *DEV_GEMDEPS )
|
222
|
+
|
223
|
+
self.write_replacement_file( new_depsfile, encoding: 'utf-8' ) do |fh|
|
224
|
+
fh.puts "source 'https://rubygems.org/'"
|
225
|
+
fh.puts
|
226
|
+
|
227
|
+
newest_deps.each do |dep|
|
228
|
+
fh.puts "gem '%s', '%s'" %
|
229
|
+
[ dep.name, dep.version.approximate_recommendation ]
|
230
|
+
end
|
231
|
+
|
232
|
+
fh.puts
|
233
|
+
fh.puts "group :development do"
|
234
|
+
dev_deps.each do |dep|
|
235
|
+
fh.puts "\tgem '%s', '%s'" %
|
236
|
+
[ dep.name, dep.version.approximate_recommendation ]
|
237
|
+
end
|
238
|
+
fh.puts "end"
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
|
245
|
+
### Find the latest version for the specified +gemnames+ and return them as Gem::Specifiations
|
246
|
+
def find_latest_versions( *gemnames )
|
247
|
+
pattern = /\A#{Regexp.union(gemnames)}\Z/
|
248
|
+
fetcher = Gem::SpecFetcher.fetcher
|
249
|
+
return fetcher.
|
250
|
+
detect( :latest ) {|tuple| pattern =~ tuple.name && tuple.platform == 'ruby' }.
|
251
|
+
transpose.first
|
252
|
+
end
|
253
|
+
|
254
|
+
end # module Rake::DevEiate::Fixups
|
255
|
+
|
256
|
+
|
@@ -12,6 +12,7 @@ module Rake::DevEiate::Generate
|
|
12
12
|
|
13
13
|
|
14
14
|
# Template files
|
15
|
+
RAKEFILE_TEMPLATE = 'Rakefile.erb'
|
15
16
|
README_TEMPLATE = 'README.erb'
|
16
17
|
HISTORY_TEMPLATE = 'History.erb'
|
17
18
|
|
@@ -27,12 +28,14 @@ module Rake::DevEiate::Generate
|
|
27
28
|
def define_tasks
|
28
29
|
super if defined?( super )
|
29
30
|
|
31
|
+
file( self.rakefile.to_s )
|
30
32
|
file( self.readme_file.to_s )
|
31
33
|
file( self.history_file.to_s )
|
32
34
|
file( self.manifest_file.to_s )
|
33
35
|
file( RUBY_VERSION_FILE.to_s )
|
34
36
|
file( GEMSET_FILE.to_s )
|
35
37
|
|
38
|
+
task( self.rakefile, &method(:do_generate_rakefile) )
|
36
39
|
task( self.readme_file, &method(:do_generate_readme_file) )
|
37
40
|
task( self.history_file, &method(:do_generate_history_file) )
|
38
41
|
task( self.manifest_file, &method(:do_generate_manifest_file) )
|
@@ -41,6 +44,7 @@ module Rake::DevEiate::Generate
|
|
41
44
|
|
42
45
|
desc "Generate any missing project files."
|
43
46
|
task :generate => [
|
47
|
+
self.rakefile,
|
44
48
|
self.readme_file,
|
45
49
|
self.history_file,
|
46
50
|
self.manifest_file,
|
@@ -48,11 +52,26 @@ module Rake::DevEiate::Generate
|
|
48
52
|
GEMSET_FILE,
|
49
53
|
]
|
50
54
|
|
55
|
+
# Abstract named tasks; mostly for invoking programmatically
|
56
|
+
namespace :generate do
|
57
|
+
task :rakefile => self.rakefile
|
58
|
+
task :readme => self.readme_file
|
59
|
+
task :history_file => self.history_file
|
60
|
+
task :manifest => self.manifest_file
|
61
|
+
task :ruby_version_file => RUBY_VERSION_FILE
|
62
|
+
task :gemset_file => GEMSET_FILE
|
63
|
+
end
|
64
|
+
|
51
65
|
desc "Diff the manifest file against the default set of project files."
|
52
66
|
task( :diff_manifest, &method(:do_diff_manifest) )
|
53
67
|
end
|
54
68
|
|
55
69
|
|
70
|
+
### Generate a Rakefile if one doesn't already exist. Error if one does.
|
71
|
+
def do_generate_rakefile( task, args )
|
72
|
+
self.generate_from_template( task.name, RAKEFILE_TEMPLATE )
|
73
|
+
end
|
74
|
+
|
56
75
|
|
57
76
|
### Generate a README file if one doesn't already exist. Error if one does.
|
58
77
|
def do_generate_readme_file( task, args )
|
@@ -110,11 +129,11 @@ module Rake::DevEiate::Generate
|
|
110
129
|
def generate_from_template( filename, template_path )
|
111
130
|
self.prompt.ok "Generating #{filename}..."
|
112
131
|
File.open( filename, FILE_CREATION_FLAGS, 0644, encoding: 'utf-8' ) do |io|
|
113
|
-
result = self.load_and_render_template( template_path )
|
132
|
+
result = self.load_and_render_template( template_path, filename )
|
114
133
|
io.print( result )
|
115
134
|
end
|
116
135
|
end
|
117
136
|
|
118
|
-
end # module Rake::DevEiate::
|
137
|
+
end # module Rake::DevEiate::Generate
|
119
138
|
|
120
139
|
|
data/lib/rake/deveiate/hg.rb
CHANGED
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-deveiate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
34
34
|
jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
|
35
35
|
XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
|
36
36
|
-----END CERTIFICATE-----
|
37
|
-
date: 2020-
|
37
|
+
date: 2020-10-01 00:00:00.000000000 Z
|
38
38
|
dependencies:
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: rake
|
@@ -78,20 +78,40 @@ dependencies:
|
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '3.8'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: simplecov
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.18'
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0.18'
|
81
95
|
- !ruby/object:Gem::Dependency
|
82
96
|
name: hglib
|
83
97
|
requirement: !ruby/object:Gem::Requirement
|
84
98
|
requirements:
|
85
99
|
- - "~>"
|
86
100
|
- !ruby/object:Gem::Version
|
87
|
-
version: '0.
|
101
|
+
version: '0.10'
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.10.1
|
88
105
|
type: :runtime
|
89
106
|
prerelease: false
|
90
107
|
version_requirements: !ruby/object:Gem::Requirement
|
91
108
|
requirements:
|
92
109
|
- - "~>"
|
93
110
|
- !ruby/object:Gem::Version
|
94
|
-
version: '0.
|
111
|
+
version: '0.10'
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 0.10.1
|
95
115
|
- !ruby/object:Gem::Dependency
|
96
116
|
name: tty-prompt
|
97
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,14 +132,14 @@ dependencies:
|
|
112
132
|
requirements:
|
113
133
|
- - "~>"
|
114
134
|
- !ruby/object:Gem::Version
|
115
|
-
version: '0.
|
135
|
+
version: '0.6'
|
116
136
|
type: :runtime
|
117
137
|
prerelease: false
|
118
138
|
version_requirements: !ruby/object:Gem::Requirement
|
119
139
|
requirements:
|
120
140
|
- - "~>"
|
121
141
|
- !ruby/object:Gem::Version
|
122
|
-
version: '0.
|
142
|
+
version: '0.6'
|
123
143
|
- !ruby/object:Gem::Dependency
|
124
144
|
name: tty-table
|
125
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,7 +183,9 @@ dependencies:
|
|
163
183
|
- !ruby/object:Gem::Version
|
164
184
|
version: '0.4'
|
165
185
|
description: This is a collection of Rake tasks I use for development. I distribute
|
166
|
-
them as a gem mostly so people
|
186
|
+
them as a gem mostly so people who wish to contribute to the other Open Source libraries
|
187
|
+
I maintain can do so easily, but of course you're welcome to use them yourself
|
188
|
+
if you find them useful.
|
167
189
|
email:
|
168
190
|
- ged@FaerieMUD.org
|
169
191
|
executables: []
|
@@ -174,9 +196,12 @@ files:
|
|
174
196
|
- README.md
|
175
197
|
- data/rake-deveiate/History.erb
|
176
198
|
- data/rake-deveiate/README.erb
|
199
|
+
- data/rake-deveiate/Rakefile.erb
|
200
|
+
- data/rake-deveiate/global.rake
|
177
201
|
- lib/rake/deveiate.rb
|
178
202
|
- lib/rake/deveiate/checks.rb
|
179
203
|
- lib/rake/deveiate/docs.rb
|
204
|
+
- lib/rake/deveiate/fixup.rb
|
180
205
|
- lib/rake/deveiate/gem_dep_finder.rb
|
181
206
|
- lib/rake/deveiate/gemspec.rb
|
182
207
|
- lib/rake/deveiate/generate.rb
|
@@ -191,7 +216,9 @@ metadata:
|
|
191
216
|
homepage_uri: https://hg.sr.ht/~ged/rake-deveiate
|
192
217
|
documentation_uri: https://deveiate.org/code/rake-deveiate/
|
193
218
|
changelog_uri: https://deveiate.org/code/rake-deveiate/History_md.html
|
194
|
-
|
219
|
+
source_uri: https://hg.sr.ht/~ged/rake-deveiate/browse
|
220
|
+
bug_tracker_uri: https://todo.sr.ht/~ged/rake-deveiate/browse
|
221
|
+
post_install_message:
|
195
222
|
rdoc_options: []
|
196
223
|
require_paths:
|
197
224
|
- lib
|
@@ -207,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
234
|
version: '0'
|
208
235
|
requirements: []
|
209
236
|
rubygems_version: 3.1.2
|
210
|
-
signing_key:
|
237
|
+
signing_key:
|
211
238
|
specification_version: 4
|
212
239
|
summary: This is a collection of Rake tasks I use for development.
|
213
240
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|