synvert 1.0.1 → 1.1.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
- data/.github/workflows/main.yml +24 -10
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +6 -6
- data/README.md +8 -8
- data/lib/synvert/cli.rb +27 -32
- data/lib/synvert/version.rb +1 -1
- data/synvert-ruby.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fca31952aad5373170fb41622c3dc07c11aa605ae8d13fb8770229062f9543b8
|
4
|
+
data.tar.gz: b57362eedac41f759e397dd10cfb0641690844161ae36e26c5cfd4fbd926d70a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7e6e5fe021673fd412a984595258134633d2b5d4612e6e9633568865b3e676d662b597024ab3d7cfcc2d285a8586736a0ca76db33d61c401fe62d7677c48b7c
|
7
|
+
data.tar.gz: 60f4d25764698275cb360ef222e07e3794e4bf33f0cde79fb73c87982f43df8516330b3552a3e6d331d77d773e3777ff62854c6c376054557ac2356717391b78
|
data/.github/workflows/main.yml
CHANGED
@@ -1,17 +1,10 @@
|
|
1
|
-
|
2
|
-
# They are provided by a third-party and are governed by
|
3
|
-
# separate terms of service, privacy policy, and support
|
4
|
-
# documentation.
|
5
|
-
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
-
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
-
|
8
|
-
name: CI
|
1
|
+
name: Test & deploy documentation
|
9
2
|
|
10
3
|
on:
|
11
4
|
push:
|
12
|
-
branches: [
|
5
|
+
branches: [ main ]
|
13
6
|
pull_request:
|
14
|
-
branches: [
|
7
|
+
branches: [ main ]
|
15
8
|
|
16
9
|
jobs:
|
17
10
|
test:
|
@@ -30,3 +23,24 @@ jobs:
|
|
30
23
|
bundler-cache: true
|
31
24
|
- name: Run tests
|
32
25
|
run: bundle exec rake
|
26
|
+
|
27
|
+
deploy:
|
28
|
+
runs-on: ubuntu-latest
|
29
|
+
needs: test
|
30
|
+
name: Update gh-pages to docs
|
31
|
+
steps:
|
32
|
+
- uses: actions/checkout@v2
|
33
|
+
- uses: actions/setup-node@v2
|
34
|
+
with:
|
35
|
+
node-version: 18
|
36
|
+
- name: Install required npm dependencies
|
37
|
+
run: npm install -g markdown-to-html
|
38
|
+
- name: Create docs
|
39
|
+
run: mkdir docs
|
40
|
+
- name: Generate docs
|
41
|
+
run: github-markdown README.md -s https://cdn.simplecss.org/simple-v1.css > docs/index.html
|
42
|
+
- name: Deploy
|
43
|
+
uses: peaceiris/actions-gh-pages@v3
|
44
|
+
with:
|
45
|
+
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
46
|
+
publish_dir: ./docs
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.1.1 (2022-10-05)
|
4
|
+
|
5
|
+
* Fix get_last_snippet_name, eval snippet to get rewriter
|
6
|
+
|
7
|
+
## 1.1.0 (2022-10-03))
|
8
|
+
|
9
|
+
* Fix sub snippet not found
|
10
|
+
* Support sub snippets in `test`
|
11
|
+
|
3
12
|
## 1.0.1 (2022-09-23)
|
4
13
|
|
5
14
|
* Execute with EXECUTE_COMMAND
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
synvert (1.
|
5
|
-
synvert-core (>= 1.
|
4
|
+
synvert (1.1.1)
|
5
|
+
synvert-core (>= 1.9.2)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
@@ -33,10 +33,10 @@ GEM
|
|
33
33
|
concurrent-ruby (~> 1.0)
|
34
34
|
json (2.5.1)
|
35
35
|
minitest (5.16.3)
|
36
|
-
node_mutation (1.4.
|
36
|
+
node_mutation (1.4.4)
|
37
37
|
activesupport (< 7.0.0)
|
38
38
|
erubis
|
39
|
-
node_query (1.
|
39
|
+
node_query (1.7.0)
|
40
40
|
activesupport (< 7.0.0)
|
41
41
|
parser (3.1.2.1)
|
42
42
|
ast (~> 2.4.1)
|
@@ -64,7 +64,7 @@ GEM
|
|
64
64
|
simplecov-html (~> 0.10.0)
|
65
65
|
simplecov-html (0.10.2)
|
66
66
|
sync (0.5.0)
|
67
|
-
synvert-core (1.9.
|
67
|
+
synvert-core (1.9.2)
|
68
68
|
activesupport (< 7.0.0)
|
69
69
|
erubis
|
70
70
|
node_mutation
|
@@ -82,7 +82,7 @@ GEM
|
|
82
82
|
addressable (>= 2.8.0)
|
83
83
|
crack (>= 0.3.2)
|
84
84
|
hashdiff (>= 0.4.0, < 2.0.0)
|
85
|
-
zeitwerk (2.6.
|
85
|
+
zeitwerk (2.6.1)
|
86
86
|
|
87
87
|
PLATFORMS
|
88
88
|
x86_64-darwin-20
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# synvert-ruby
|
2
2
|
|
3
3
|
<img src="https://synvert.net/img/logo_96.png" alt="logo" width="32" height="32" />
|
4
4
|
|
@@ -56,7 +56,7 @@ Usage: synvert-ruby [project_path]
|
|
56
56
|
-v, --version show this version
|
57
57
|
```
|
58
58
|
|
59
|
-
|
59
|
+
### Sync snippets
|
60
60
|
|
61
61
|
[Official Snippets](https://github.com/xinminlabs/synvert-snippets-ruby) are available on github,
|
62
62
|
you can sync them any time you want.
|
@@ -65,17 +65,17 @@ you can sync them any time you want.
|
|
65
65
|
$ synvert-ruby --sync
|
66
66
|
```
|
67
67
|
|
68
|
-
|
68
|
+
### List snippets
|
69
69
|
|
70
70
|
List all available snippets
|
71
71
|
|
72
72
|
```
|
73
73
|
$ synvert-ruby -l
|
74
74
|
|
75
|
-
$ synvert-ruby --list --
|
75
|
+
$ synvert-ruby --list --format json
|
76
76
|
```
|
77
77
|
|
78
|
-
|
78
|
+
### Show a snippet
|
79
79
|
|
80
80
|
Describe what a snippet does.
|
81
81
|
|
@@ -83,7 +83,7 @@ Describe what a snippet does.
|
|
83
83
|
$ synvert-ruby -s factory_bot/use_short_syntax
|
84
84
|
```
|
85
85
|
|
86
|
-
|
86
|
+
### Open a snippet
|
87
87
|
|
88
88
|
Open a snippet in your editor, editor is defined in
|
89
89
|
`ENV['SNIPPET_EDITOR']` or `ENV['EDITOR']`
|
@@ -92,7 +92,7 @@ Open a snippet in your editor, editor is defined in
|
|
92
92
|
$ synvert-ruby -o factory_bot/use_short_syntax
|
93
93
|
```
|
94
94
|
|
95
|
-
|
95
|
+
### Run a snippet
|
96
96
|
|
97
97
|
Run a snippet, analyze and then rewrite code.
|
98
98
|
|
@@ -130,7 +130,7 @@ Show processing files when running a snippet.
|
|
130
130
|
$ synvert-ruby -r factory_bot/use_short_syntax --show-run-process ~/Sites/xinminlabs/synvert-core-ruby
|
131
131
|
```
|
132
132
|
|
133
|
-
|
133
|
+
### Generate a snippet
|
134
134
|
|
135
135
|
Generate a new snippet
|
136
136
|
|
data/lib/synvert/cli.rb
CHANGED
@@ -43,13 +43,16 @@ module Synvert
|
|
43
43
|
when 'generate'
|
44
44
|
generate_snippet
|
45
45
|
when 'execute'
|
46
|
+
read_rewriters
|
46
47
|
execute_snippet(@options[:execute_command])
|
47
48
|
when 'test'
|
48
|
-
|
49
|
-
|
49
|
+
read_rewriters
|
50
|
+
rewriter = eval_snippet(@options[:snippet_name])
|
51
|
+
test_snippet(rewriter)
|
50
52
|
when 'run'
|
51
|
-
|
52
|
-
|
53
|
+
read_rewriters
|
54
|
+
rewriter = eval_snippet(@options[:snippet_name])
|
55
|
+
run_snippet(rewriter)
|
53
56
|
else
|
54
57
|
# nothing to do
|
55
58
|
end
|
@@ -230,41 +233,38 @@ module Synvert
|
|
230
233
|
end
|
231
234
|
end
|
232
235
|
|
233
|
-
#
|
234
|
-
# it can
|
236
|
+
# eval snippet by name
|
237
|
+
# it can eval by explicit snippet name,
|
235
238
|
# or from local path or http url.
|
236
|
-
def
|
239
|
+
def eval_snippet(snippet_name)
|
237
240
|
if /^http/.match?(snippet_name)
|
238
241
|
uri = URI.parse(snippet_name)
|
239
242
|
eval(uri.open.read)
|
240
|
-
get_last_snippet_name
|
241
243
|
elsif File.exists?(snippet_name)
|
242
|
-
|
243
|
-
get_last_snippet_name
|
244
|
+
eval(File.read(snippet_name))
|
244
245
|
else
|
245
246
|
require(File.join(default_snippets_home, 'lib', "#{snippet_name}.rb"))
|
246
|
-
snippet_name.split('/')
|
247
|
+
group, name = snippet_name.split('/')
|
248
|
+
Core::Rewriter.fetch(group, name)
|
247
249
|
end
|
248
250
|
end
|
249
251
|
|
250
|
-
#
|
251
|
-
def
|
252
|
-
|
253
|
-
get_last_snippet_name
|
252
|
+
# eval snippet name by user input
|
253
|
+
def eval_snippet_name_by_input(input)
|
254
|
+
eval(input)
|
254
255
|
end
|
255
256
|
|
256
257
|
# run a snippet
|
257
|
-
def run_snippet(
|
258
|
+
def run_snippet(rewriter)
|
259
|
+
rewriter.process
|
258
260
|
if plain_output?
|
259
|
-
puts "===== #{group}/#{name} started ====="
|
260
|
-
rewriter = Core::Rewriter.call group, name
|
261
|
+
puts "===== #{rewriter.group}/#{rewriter.name} started ====="
|
261
262
|
rewriter.warnings.each do |warning|
|
262
263
|
puts '[Warn] ' + warning.message
|
263
264
|
end
|
264
265
|
puts rewriter.todo if rewriter.todo
|
265
|
-
puts "===== #{group}/#{name} done ====="
|
266
|
+
puts "===== #{rewriter.group}/#{rewriter.name} done ====="
|
266
267
|
elsif json_output?
|
267
|
-
rewriter = Core::Rewriter.call group, name
|
268
268
|
output = {
|
269
269
|
affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum(Set.new, &:affected_files)).to_a,
|
270
270
|
warnings: rewriter.warnings.union(rewriter.sub_snippets.sum([], &:warnings)),
|
@@ -275,19 +275,21 @@ module Synvert
|
|
275
275
|
end
|
276
276
|
|
277
277
|
# test a snippet
|
278
|
-
def test_snippet(
|
279
|
-
rewriter = Core::Rewriter.fetch(group, name)
|
278
|
+
def test_snippet(rewriter)
|
280
279
|
results = rewriter.test
|
280
|
+
rewriter.sub_snippets.each do |sub_snippet|
|
281
|
+
results += sub_snippet.test_results
|
282
|
+
end
|
281
283
|
puts JSON.generate(results)
|
282
284
|
end
|
283
285
|
|
284
286
|
# execute snippet
|
285
287
|
def execute_snippet(execute_command)
|
286
|
-
|
288
|
+
rewriter = eval_snippet_name_by_input(STDIN.read)
|
287
289
|
if execute_command == 'test'
|
288
|
-
test_snippet(
|
290
|
+
test_snippet(rewriter)
|
289
291
|
else
|
290
|
-
run_snippet(
|
292
|
+
run_snippet(rewriter)
|
291
293
|
end
|
292
294
|
end
|
293
295
|
|
@@ -350,12 +352,5 @@ module Synvert
|
|
350
352
|
def json_output?
|
351
353
|
@options[:format] == 'json'
|
352
354
|
end
|
353
|
-
|
354
|
-
# get the last registered snippet name
|
355
|
-
def get_last_snippet_name
|
356
|
-
group = Rewriter.availables.keys.last
|
357
|
-
name = Rewriter.availables[group].keys.last
|
358
|
-
return group, name
|
359
|
-
end
|
360
355
|
end
|
361
356
|
end
|
data/lib/synvert/version.rb
CHANGED
data/synvert-ruby.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
spec.post_install_message = 'Please run `synvert-ruby --sync` first to sync snippets remotely.'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency 'synvert-core', '>= 1.
|
23
|
+
spec.add_runtime_dependency 'synvert-core', '>= 1.9.2'
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler'
|
26
26
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synvert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: synvert-core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.9.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.9.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
requirements: []
|
129
|
-
rubygems_version: 3.3.
|
129
|
+
rubygems_version: 3.3.22
|
130
130
|
signing_key:
|
131
131
|
specification_version: 4
|
132
132
|
summary: synvert = syntax + convert.
|