synvert 0.19.3 → 0.20.0
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 +5 -0
- data/README.md +9 -4
- data/lib/synvert/cli.rb +29 -28
- data/lib/synvert/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fb489331d776e367ae6be1c1ab39330b59419b07b9db40e1c6ea215fd612338
|
4
|
+
data.tar.gz: fbbb3fc50e1c05bc67aef081b4490e49f1c839dc24eb76941e2487f2cb240cd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dad0c74122ab91f6a05907af7bca9fb3badbb3a137a6914227508814de3682f6578975bd9a2aa51a577881ccb6c22e837b43b2b36c01769eb703f63b2eb1e9a2
|
7
|
+
data.tar.gz: ff5309c3d2ca47e01be1a02aeb5ab9e3f1f6d0ef1c8ea8dc5fe3e8bcf03afeda5035aebf0c4fc26acf62e44097999294fab431936a665e3726ba9a6314522641
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -40,7 +40,6 @@ $ synvert-ruby -r factory_bot/use_short_syntax
|
|
40
40
|
```
|
41
41
|
$ synvert-ruby -h
|
42
42
|
Usage: synvert-ruby [project_path]
|
43
|
-
-d, --load SNIPPET_PATHS load custom snippets, snippet paths can be local file path or remote http url
|
44
43
|
-l, --list list all available snippets
|
45
44
|
-q, --query QUERY query specified snippets
|
46
45
|
-s, --show SNIPPET_NAME show specified snippet description, SNIPPET_NAME is combined by group and name, e.g. ruby/new_hash_syntax
|
@@ -48,7 +47,7 @@ Usage: synvert-ruby [project_path]
|
|
48
47
|
-g, --generate NEW_SNIPPET_NAME generate a new snippet
|
49
48
|
--sync sync snippets
|
50
49
|
--execute execute snippet
|
51
|
-
-r, --run SNIPPET_NAME run specified snippet, e.g. ruby/new_hash_syntax
|
50
|
+
-r, --run SNIPPET_NAME run specified snippet, e.g. ruby/new_hash_syntax, or remote url, or local file path
|
52
51
|
--show-run-process show processing files when running a snippet
|
53
52
|
--skip FILE_PATTERNS skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb
|
54
53
|
-f, --format FORMAT output format
|
@@ -99,10 +98,16 @@ Run a snippet, analyze and then rewrite code.
|
|
99
98
|
$ synvert-ruby -r factory_bot/use_short_syntax ~/Sites/xinminlabs/synvert-core-ruby
|
100
99
|
```
|
101
100
|
|
102
|
-
|
101
|
+
run a snippet from remote url
|
103
102
|
|
104
103
|
```
|
105
|
-
$ synvert-ruby
|
104
|
+
$ synvert-ruby -r https://raw.githubusercontent.com/xinminlabs/synvert-snippets-ruby/master/lib/factory_bot/use_short_syntax.rb ~/sites/xinminlabs/synvert-core-ruby
|
105
|
+
```
|
106
|
+
|
107
|
+
run a snippet from local path
|
108
|
+
|
109
|
+
```
|
110
|
+
$ synvert-ruby -r ~/.synvert-ruby/lib/factory_bot/use_short_syntax.rb ~/sites/xinminlabs/synvert-core-ruby
|
106
111
|
```
|
107
112
|
|
108
113
|
Show processing files when running a snippet.
|
data/lib/synvert/cli.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'json'
|
5
|
+
require 'uri'
|
6
|
+
require 'open-uri'
|
5
7
|
|
6
8
|
module Synvert
|
7
9
|
# Synvert command line interface.
|
@@ -16,7 +18,7 @@ module Synvert
|
|
16
18
|
|
17
19
|
# Initialize a CLI.
|
18
20
|
def initialize
|
19
|
-
@options = { command: 'run',
|
21
|
+
@options = { command: 'run', format: 'plain' }
|
20
22
|
end
|
21
23
|
|
22
24
|
# Run the CLI.
|
@@ -27,12 +29,12 @@ module Synvert
|
|
27
29
|
|
28
30
|
case @options[:command]
|
29
31
|
when 'list'
|
30
|
-
|
32
|
+
read_rewriters
|
31
33
|
list_available_rewriters
|
32
34
|
when 'open'
|
33
35
|
open_rewriter
|
34
36
|
when 'query'
|
35
|
-
|
37
|
+
read_rewriters
|
36
38
|
query_available_rewriters
|
37
39
|
when 'show'
|
38
40
|
show_rewriter
|
@@ -43,9 +45,19 @@ module Synvert
|
|
43
45
|
when 'execute'
|
44
46
|
execute_snippet
|
45
47
|
else
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
if /^http/.match?(@options[:snippet_name])
|
49
|
+
uri = URI.parse(@options[:snippet_name])
|
50
|
+
eval(uri.open.read)
|
51
|
+
snippet_name = get_last_snippet_name
|
52
|
+
run_snippet(snippet_name)
|
53
|
+
elsif File.exists?(@options[:snippet_name])
|
54
|
+
require(@options[:snippet_name])
|
55
|
+
snippet_name = get_last_snippet_name
|
56
|
+
run_snippet(snippet_name)
|
57
|
+
else
|
58
|
+
read_rewriters
|
59
|
+
run_snippet(@options[:snippet_name])
|
60
|
+
end
|
49
61
|
end
|
50
62
|
true
|
51
63
|
rescue SystemExit
|
@@ -67,11 +79,6 @@ module Synvert
|
|
67
79
|
optparse =
|
68
80
|
OptionParser.new do |opts|
|
69
81
|
opts.banner = 'Usage: synvert-ruby [project_path]'
|
70
|
-
opts.on '-d',
|
71
|
-
'--load SNIPPET_PATHS',
|
72
|
-
'load custom snippets, snippet paths can be local file path or remote http url' do |snippet_paths|
|
73
|
-
@options[:custom_snippet_paths] = snippet_paths.split(',').map(&:strip)
|
74
|
-
end
|
75
82
|
opts.on '-l', '--list', 'list all available snippets' do
|
76
83
|
@options[:command] = 'list'
|
77
84
|
end
|
@@ -99,7 +106,7 @@ module Synvert
|
|
99
106
|
opts.on '--execute', 'execute snippet' do
|
100
107
|
@options[:command] = 'execute'
|
101
108
|
end
|
102
|
-
opts.on '-r', '--run SNIPPET_NAME', 'run specified snippet, e.g. ruby/new_hash_syntax' do |snippet_name|
|
109
|
+
opts.on '-r', '--run SNIPPET_NAME', 'run specified snippet, e.g. ruby/new_hash_syntax, or remote url, or local file path' do |snippet_name|
|
103
110
|
@options[:snippet_name] = snippet_name
|
104
111
|
end
|
105
112
|
opts.on '--show-run-process', 'show processing files when running a snippet' do
|
@@ -129,21 +136,9 @@ module Synvert
|
|
129
136
|
end
|
130
137
|
end
|
131
138
|
|
132
|
-
#
|
133
|
-
def
|
139
|
+
# read all rewriters.
|
140
|
+
def read_rewriters
|
134
141
|
Dir.glob(File.join(default_snippets_home, 'lib/**/*.rb')).each { |file| require file }
|
135
|
-
|
136
|
-
@options[:custom_snippet_paths].each do |snippet_path|
|
137
|
-
if /^http/.match?(snippet_path)
|
138
|
-
uri = URI.parse snippet_path
|
139
|
-
eval(uri.read)
|
140
|
-
else
|
141
|
-
require snippet_path
|
142
|
-
end
|
143
|
-
end
|
144
|
-
rescue StandardError
|
145
|
-
FileUtils.rm_rf default_snippets_home
|
146
|
-
retry
|
147
142
|
end
|
148
143
|
|
149
144
|
# List and print all available rewriters.
|
@@ -234,8 +229,7 @@ module Synvert
|
|
234
229
|
end
|
235
230
|
|
236
231
|
# run snippets
|
237
|
-
def run_snippet
|
238
|
-
snippet_name = @options[:snippet_name]
|
232
|
+
def run_snippet(snippet_name)
|
239
233
|
if plain_output?
|
240
234
|
puts "===== #{snippet_name} started ====="
|
241
235
|
group, name = snippet_name.split('/')
|
@@ -338,5 +332,12 @@ module Synvert
|
|
338
332
|
def json_output?
|
339
333
|
@options[:format] == 'json'
|
340
334
|
end
|
335
|
+
|
336
|
+
# get the last registered snippet name
|
337
|
+
def get_last_snippet_name
|
338
|
+
group = Rewriter.availables.keys.last
|
339
|
+
name = Rewriter.availables[group].keys.last
|
340
|
+
return [group, name].join("/")
|
341
|
+
end
|
341
342
|
end
|
342
343
|
end
|
data/lib/synvert/version.rb
CHANGED
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: 0.
|
4
|
+
version: 0.20.0
|
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-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: synvert-core
|