bake-modernize 0.2.0 → 0.4.2
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/bake/modernize.rb +1 -1
- data/bake/modernize/actions.rb +56 -0
- data/bake/modernize/editorconfig.rb +17 -0
- data/bake/modernize/gemspec.rb +5 -3
- data/lib/bake/modernize/version.rb +1 -1
- data/template/actions/.github/workflows/development.yml +1 -3
- data/template/editorconfig/.editorconfig +0 -1
- metadata +39 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 938d06d57d2422577b066ceec51607328cee09d1fb6fcb3c8c3b14eaefd3d4c9
|
4
|
+
data.tar.gz: f616bcef5db5a629b6c65409116fcaeb14f60ebbf9b83e2cecfde1269fe07bae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b82a18f4cc498e32c801a33f9fab64fc9e4b4ec349e8eff81a95e6655a8703ef0769794b06d38e8f6b9b478b402187db84f21791d1768b70c0d08c3328a1c011
|
7
|
+
data.tar.gz: e3440625fafda1bb0f38c483b95a29780e854784a8b277344841df21aac3af527fe924ab863abac3be8f34d4bccb124d97c85cc05fddc1377ab60a82df3da35d
|
data/bake/modernize.rb
CHANGED
data/bake/modernize/actions.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
|
2
2
|
require 'bake/modernize'
|
3
|
+
require 'rugged'
|
4
|
+
require 'markly'
|
3
5
|
|
4
6
|
def actions
|
5
7
|
update(root: Dir.pwd)
|
@@ -14,4 +16,58 @@ def update(root:)
|
|
14
16
|
|
15
17
|
template_root = Bake::Modernize.template_path_for('actions')
|
16
18
|
Bake::Modernize.copy_template(template_root, root)
|
19
|
+
|
20
|
+
readme_path = File.expand_path("README.md", root)
|
21
|
+
repository_url = self.repository_url(root)
|
22
|
+
self.update_badges(readme_path, repository_url)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def repository_url(root)
|
28
|
+
repository = Rugged::Repository.discover(root)
|
29
|
+
git_url = repository.remotes['origin'].url
|
30
|
+
|
31
|
+
if match = git_url.match(/@(?<url>.*?):(?<path>.*?)(\.git)?\z/)
|
32
|
+
return "https://#{match[:url]}/#{match[:path]}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def badge_for(repository_url = self.repository_url)
|
37
|
+
"[](#{repository_url}/actions?workflow=Development)"
|
38
|
+
end
|
39
|
+
|
40
|
+
def badge?(node)
|
41
|
+
return false unless node.type == :link
|
42
|
+
return node.all?{|child| child.type == :image}
|
43
|
+
end
|
44
|
+
|
45
|
+
def badges?(node)
|
46
|
+
node.any?{|child| badge?(child)}
|
47
|
+
end
|
48
|
+
|
49
|
+
def update_badges(readme_path, repository_url)
|
50
|
+
root = Markly.parse(File.read(readme_path))
|
51
|
+
|
52
|
+
node = root.first_child
|
53
|
+
|
54
|
+
# Skip heading:
|
55
|
+
node = node.next if node.type == :header
|
56
|
+
|
57
|
+
replacement = Markly.parse(badge_for(repository_url))
|
58
|
+
|
59
|
+
# We are looking for the first paragraph which contains only links, which contain one image.
|
60
|
+
while node
|
61
|
+
if badges?(node)
|
62
|
+
node = node.replace(replacement.first_child)
|
63
|
+
break
|
64
|
+
elsif node.type == :header
|
65
|
+
node.insert_before(replacement.first_child)
|
66
|
+
break
|
67
|
+
end
|
68
|
+
|
69
|
+
node = node.next
|
70
|
+
end
|
71
|
+
|
72
|
+
File.write(readme_path, root.to_markdown(width: 0))
|
17
73
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
require 'bake/modernize'
|
3
|
+
|
4
|
+
def editorconfig
|
5
|
+
update(root: Dir.pwd)
|
6
|
+
end
|
7
|
+
|
8
|
+
def update(root:)
|
9
|
+
editorconfig_path = File.expand_path(".editorconfig", root)
|
10
|
+
|
11
|
+
if File.exist?(editorconfig_path)
|
12
|
+
FileUtils.rm_rf(editorconfig_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
template_root = Bake::Modernize.template_path_for('editorconfig')
|
16
|
+
Bake::Modernize.copy_template(template_root, root)
|
17
|
+
end
|
data/bake/modernize/gemspec.rb
CHANGED
@@ -70,8 +70,10 @@ def update(path: self.default_gemspec_path, output: $stdout)
|
|
70
70
|
end
|
71
71
|
|
72
72
|
if required_ruby_version = spec.required_ruby_version
|
73
|
-
|
74
|
-
|
73
|
+
unless required_ruby_version.none?
|
74
|
+
output.puts "\t"
|
75
|
+
output.puts "\tspec.required_ruby_version = #{required_ruby_version.to_s.inspect}"
|
76
|
+
end
|
75
77
|
end
|
76
78
|
|
77
79
|
if spec.dependencies.any?
|
@@ -155,7 +157,7 @@ end
|
|
155
157
|
GITHUB_PROJECT = /github.com\/(?<account>.*?)\/(?<project>.*?)\/?/
|
156
158
|
|
157
159
|
def detect_funding_uri(spec)
|
158
|
-
if match = spec.homepage
|
160
|
+
if match = spec.homepage&.match(GITHUB_PROJECT)
|
159
161
|
account = match[:account]
|
160
162
|
|
161
163
|
funding_uri = "https://github.com/sponsors/#{account}/"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bake-modernize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async-http
|
@@ -53,7 +53,35 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.6'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: markly
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rugged
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - ">="
|
@@ -66,14 +94,15 @@ dependencies:
|
|
66
94
|
- - ">="
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '0'
|
69
|
-
description:
|
70
|
-
email:
|
97
|
+
description:
|
98
|
+
email:
|
71
99
|
executables: []
|
72
100
|
extensions: []
|
73
101
|
extra_rdoc_files: []
|
74
102
|
files:
|
75
103
|
- bake/modernize.rb
|
76
104
|
- bake/modernize/actions.rb
|
105
|
+
- bake/modernize/editorconfig.rb
|
77
106
|
- bake/modernize/gemfile.rb
|
78
107
|
- bake/modernize/gemspec.rb
|
79
108
|
- lib/bake/modernize.rb
|
@@ -86,15 +115,15 @@ licenses:
|
|
86
115
|
- MIT
|
87
116
|
metadata:
|
88
117
|
funding_uri: https://github.com/sponsors/ioquatix/
|
89
|
-
post_install_message:
|
118
|
+
post_install_message:
|
90
119
|
rdoc_options: []
|
91
120
|
require_paths:
|
92
121
|
- lib
|
93
122
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
123
|
requirements:
|
95
|
-
- - "
|
124
|
+
- - ">="
|
96
125
|
- !ruby/object:Gem::Version
|
97
|
-
version: '
|
126
|
+
version: '0'
|
98
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
128
|
requirements:
|
100
129
|
- - ">="
|
@@ -102,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
131
|
version: '0'
|
103
132
|
requirements: []
|
104
133
|
rubygems_version: 3.1.2
|
105
|
-
signing_key:
|
134
|
+
signing_key:
|
106
135
|
specification_version: 4
|
107
136
|
summary: Automatically modernize parts of your project/gem.
|
108
137
|
test_files: []
|