synvert 0.14.1 → 0.18.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 +14 -1
- data/README.md +16 -4
- data/lib/synvert/cli.rb +35 -4
- data/lib/synvert/snippet.rb +1 -1
- data/lib/synvert/version.rb +1 -1
- data/spec/synvert/snippet_spec.rb +1 -1
- data/synvert.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: fbc4490f4b48111cb658dbdf8d86f63f881a137fa40ef5c6050fa57d24392e09
|
4
|
+
data.tar.gz: d5ebc66ea45897622f6ed40e7838817c8dada422d92cd8898feadfb471d47bab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a48d72c516eb52854102bb8620585317295b188d50a0dfb1184e2f548eac20489713932a3fadbcd0e56526f5b8f97c045a2d8a783e4c56ed481c56619733151
|
7
|
+
data.tar.gz: ac409e15e3f22fd082f222c19542418af0d78573066302f293fd0b025108bda0e7eaa401eecba6ff0b4bac1a0ffeb2b9958865a960130859d26f79b51f025cd7
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,21 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
## 0.
|
3
|
+
## 0.18.0 (2021-07-14)
|
4
|
+
|
5
|
+
* Execute a snippet
|
6
|
+
|
7
|
+
## 0.17.0 (2021-04-19)
|
8
|
+
|
9
|
+
* Run `git checkout .` before `git pull --rebase`
|
10
|
+
|
11
|
+
## 0.16.0 (2021-03-24)
|
12
|
+
|
13
|
+
* Add `ruby_version` and `gem_spec` to json output
|
14
|
+
|
15
|
+
## 0.15.0 (2021-03-23)
|
4
16
|
|
5
17
|
* Fix reduce on empty array
|
18
|
+
* Update synvert-core when syncing snippets
|
6
19
|
|
7
20
|
## 0.14.0 (2021-03-13)
|
8
21
|
|
data/README.md
CHANGED
@@ -7,8 +7,6 @@
|
|
7
7
|
Synvert = syntax + convert, makes it easy to convert ruby code
|
8
8
|
automatically.
|
9
9
|
|
10
|
-
Synvert is tested against MRI 1.9.3, 2.0.0, 2.1.7 and 2.2.3.
|
11
|
-
|
12
10
|
Synvert is composed by synvert-core and synvert-snippets.
|
13
11
|
|
14
12
|
[synvert-core][1] provides a dsl to convert ruby code.
|
@@ -24,6 +22,12 @@ Install it using rubygems
|
|
24
22
|
$ gem install synvert
|
25
23
|
```
|
26
24
|
|
25
|
+
then run
|
26
|
+
|
27
|
+
```
|
28
|
+
$ synvert --sync
|
29
|
+
```
|
30
|
+
|
27
31
|
## Usage
|
28
32
|
|
29
33
|
```
|
@@ -42,11 +46,19 @@ Usage: synvert [project_path]
|
|
42
46
|
e.g.
|
43
47
|
|
44
48
|
```
|
45
|
-
$ synvert
|
49
|
+
$ synvert -r factory_girl/use_short_syntax,rails/upgrade_3_2_to_4_0 ~/Sites/railsbp/rails-bestpractices.com
|
46
50
|
```
|
47
51
|
|
52
|
+
## Docker
|
53
|
+
|
54
|
+
We have a docker image to run synvert
|
55
|
+
|
48
56
|
```
|
49
|
-
$
|
57
|
+
$ docker pull xinminlabs/awesomecode-synvert
|
58
|
+
|
59
|
+
$ docker run xinminlabs/awesomecode-synvert synvert --list
|
60
|
+
|
61
|
+
$ docker run -v <your project path>:/app xinminlabs/awesomecode-synvert synvert --run default/check_syntax /app
|
50
62
|
```
|
51
63
|
|
52
64
|
## Documentation
|
data/lib/synvert/cli.rb
CHANGED
@@ -40,6 +40,8 @@ module Synvert
|
|
40
40
|
sync_snippets
|
41
41
|
when 'generate'
|
42
42
|
generate_snippet
|
43
|
+
when 'execute'
|
44
|
+
execute_snippet
|
43
45
|
else
|
44
46
|
# run
|
45
47
|
load_rewriters
|
@@ -94,6 +96,9 @@ module Synvert
|
|
94
96
|
opts.on '--sync', 'sync snippets' do
|
95
97
|
@options[:command] = 'sync'
|
96
98
|
end
|
99
|
+
opts.on '--execute', 'execute snippet' do
|
100
|
+
@options[:command] = 'execute'
|
101
|
+
end
|
97
102
|
opts.on '-r', '--run SNIPPET_NAME', 'run specified snippet, e.g. ruby/new_hash_syntax' do |snippet_name|
|
98
103
|
@options[:snippet_name] = snippet_name
|
99
104
|
end
|
@@ -158,12 +163,15 @@ module Synvert
|
|
158
163
|
Core::Rewriter.availables.each do |group, rewriters|
|
159
164
|
rewriters.each do |name, rewriter|
|
160
165
|
rewriter.process_with_sandbox
|
161
|
-
|
166
|
+
item = {
|
162
167
|
group: group,
|
163
168
|
name: name,
|
164
169
|
description: rewriter.description,
|
165
170
|
sub_snippets: rewriter.sub_snippets.map(&:name)
|
166
171
|
}
|
172
|
+
item[:ruby_version] = rewriter.ruby_version.version if rewriter.ruby_version
|
173
|
+
item[:gem_spec] = { name: rewriter.gem_spec.name, version: rewriter.gem_spec.version } if rewriter.gem_spec
|
174
|
+
output << item
|
167
175
|
end
|
168
176
|
end
|
169
177
|
|
@@ -218,7 +226,8 @@ module Synvert
|
|
218
226
|
puts 'synvert snippets are synced'
|
219
227
|
core_version = Snippet.fetch_core_version
|
220
228
|
if Gem::Version.new(core_version) > Gem::Version.new(Synvert::Core::VERSION)
|
221
|
-
puts "synvert-core is updated,
|
229
|
+
puts "synvert-core is updated, installing synvert-core #{core_version}"
|
230
|
+
system('gem install synvert-core')
|
222
231
|
end
|
223
232
|
end
|
224
233
|
|
@@ -238,8 +247,30 @@ module Synvert
|
|
238
247
|
group, name = snippet_name.split('/')
|
239
248
|
rewriter = Core::Rewriter.call group, name
|
240
249
|
output = {
|
241
|
-
affected_files: rewriter.affected_files.union(rewriter.sub_snippets.
|
242
|
-
warnings: rewriter.warnings.union(rewriter.sub_snippets.
|
250
|
+
affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum([], &:affected_files)).to_a,
|
251
|
+
warnings: rewriter.warnings.union(rewriter.sub_snippets.sum([], &:warnings)),
|
252
|
+
todo: rewriter.todo
|
253
|
+
}
|
254
|
+
puts JSON.generate(output)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
# execute snippet
|
259
|
+
def execute_snippet
|
260
|
+
input = STDIN.read
|
261
|
+
if plain_output?
|
262
|
+
puts "===== execute started ====="
|
263
|
+
rewriter = eval(input)
|
264
|
+
rewriter.warnings.each do |warning|
|
265
|
+
puts '[Warn] ' + warning.message
|
266
|
+
end
|
267
|
+
puts rewriter.todo if rewriter.todo
|
268
|
+
puts "===== execute done ====="
|
269
|
+
elsif json_output?
|
270
|
+
rewriter = eval(input)
|
271
|
+
output = {
|
272
|
+
affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum([], &:affected_files)).to_a,
|
273
|
+
warnings: rewriter.warnings.union(rewriter.sub_snippets.sum([], &:warnings)),
|
243
274
|
todo: rewriter.todo
|
244
275
|
}
|
245
276
|
puts JSON.generate(output)
|
data/lib/synvert/snippet.rb
CHANGED
@@ -19,7 +19,7 @@ module Synvert
|
|
19
19
|
def sync
|
20
20
|
if File.exist?(@snippets_path)
|
21
21
|
FileUtils.cd @snippets_path
|
22
|
-
Kernel.system('git pull --rebase')
|
22
|
+
Kernel.system('git checkout .; git pull --rebase')
|
23
23
|
else
|
24
24
|
Kernel.system("git clone https://github.com/xinminlabs/synvert-snippets.git #{@snippets_path}")
|
25
25
|
end
|
data/lib/synvert/version.rb
CHANGED
@@ -27,7 +27,7 @@ module Synvert
|
|
27
27
|
|
28
28
|
it 'git pull snippets' do
|
29
29
|
FileUtils.mkdir snippets_path
|
30
|
-
expect(Kernel).to receive(:system).with('git pull --rebase')
|
30
|
+
expect(Kernel).to receive(:system).with('git checkout .; git pull --rebase')
|
31
31
|
snippet.sync
|
32
32
|
FileUtils.cd File.dirname(__FILE__)
|
33
33
|
end
|
data/synvert.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 --sync` first to sync snippets remotely.'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency 'synvert-core', '>= 0.
|
23
|
+
spec.add_runtime_dependency 'synvert-core', '>= 0.42.1'
|
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: 0.
|
4
|
+
version: 0.18.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: 2021-
|
11
|
+
date: 2021-07-14 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: 0.
|
19
|
+
version: 0.42.1
|
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: 0.
|
26
|
+
version: 0.42.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
|
-
rubygems_version: 3.1.
|
126
|
+
rubygems_version: 3.1.6
|
127
127
|
signing_key:
|
128
128
|
specification_version: 4
|
129
129
|
summary: synvert = syntax + convert.
|