synvert 0.19.2 → 0.19.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4168dd627a46add1e09b6faa57d839ecddcbed0ab39de07f647175513e63aff
4
- data.tar.gz: 66f24286910b065ffa404e312e09b843cfa311bf5637345819f9062af51d56e2
3
+ metadata.gz: 2b2cb7297283566f1929523ec1bd27886170ce2c8dc8b4ddf6e07a13d9139ba0
4
+ data.tar.gz: 64d388db47dd58a7d40e4a97d7ad954c474b795fd52cfcc39c850e9271b1ad01
5
5
  SHA512:
6
- metadata.gz: 4e18d9c4180772fe62b3ade9d834abf757e51821113804d7ec4c1155b53ef613d4023ee5663b022c42c025c3da33cfe1b24b770a687de7258f81e1910be180a2
7
- data.tar.gz: 368c327ff1f89074939402e283191f33f2b1106a3a2cdcff7e9851323e80ae51f9c5a85cf451b01a30ab00327ab8f2e5bba71f43fcab3b28392e3741102f4b41
6
+ metadata.gz: 8c005363c25b19c5253732c9f262643fab4ea4c928aaf10bcc11aa5672cf55464864cc7518b1f74d81ae7fb1876f075a699beb9d0444b3de05aaee98d5a15725
7
+ data.tar.gz: c6d1bb9f75b6f8a06dfd37e7bf94df5bb9750911bc00c4b9059616dddeb4629e30619b7f1fe38daf6de7f7a806b4f8cc3effd90f740addf9a2f9babb39a04e63
@@ -19,7 +19,7 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  strategy:
21
21
  matrix:
22
- ruby-version: ['2.4', '2.5', '2.6', '2.7', '3.0']
22
+ ruby-version: ['2.6', '2.7', '3.0', '3.1']
23
23
 
24
24
  steps:
25
25
  - uses: actions/checkout@v2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.19.3 (2022-07-18)
4
+
5
+ * Require json
6
+ * update `synvert-core` to 1.5.0
7
+
3
8
  ## 0.19.2 (2021-12-15)
4
9
 
5
10
  * List sub_snippets group and name
data/README.md CHANGED
@@ -2,34 +2,39 @@
2
2
 
3
3
  <img src="https://synvert.xinminlabs.com/img/logo_96.png" alt="logo" width="32" height="32" />
4
4
 
5
+ [![AwesomeCode Status for xinminlabs/synvert-ruby](https://awesomecode.io/projects/47cd9805-171c-4c61-b927-baa46cd4020a/status)](https://awesomecode.io/repos/xinminlabs/synvert-ruby)
5
6
  ![Main workflow](https://github.com/xinminlabs/synvert-ruby/actions/workflows/main.yml/badge.svg)
6
- [![Coverage Status](https://coveralls.io/repos/xinminlabs/synvert/badge.svg?branch=master)](https://coveralls.io/r/xinminlabs/synvert)
7
7
  [![Gem Version](https://badge.fury.io/rb/synvert.svg)](http://badge.fury.io/rb/synvert)
8
8
 
9
- Synvert = syntax + convert, makes it easy to convert ruby code
10
- automatically.
9
+ `synvert-ruby` is a command tool to rewrite ruby code automatically, it depends on `synvert-core-ruby` and `synvert-snippets-ruby`.
11
10
 
12
- Synvert is composed by synvert-core and synvert-snippets.
11
+ [synvert-core-ruby](https://github.com/xinminlabs/synvert-core-ruby) provides a set of DSLs to rewrite ruby code.
13
12
 
14
- [synvert-core][1] provides a dsl to convert ruby code.
15
-
16
- [synvert-snippets][2] lists all snippets to convert ruby code based on
17
- synvert-core.
13
+ [synvert-snippets-ruby](https://github.com/xinminlabs/synvert-snippets-ruby) provides official snippets to rewrite ruby code.
18
14
 
19
15
  ## Installation
20
16
 
21
- Install it using rubygems
17
+ To install the latest version, run
18
+
22
19
 
23
20
  ```
24
21
  $ gem install synvert
25
22
  ```
26
23
 
27
- then run
24
+ This will also install `synvert-core-ruby`.
25
+
26
+ Before using synvert, you need to sync all official snippets first.
28
27
 
29
28
  ```
30
29
  $ synvert-ruby --sync
31
30
  ```
32
31
 
32
+ Then you can use synvert to rewrite your ruby code, e.g.
33
+
34
+ ```
35
+ $ synvert-ruby -r factory_bot/use_short_syntax
36
+ ```
37
+
33
38
  ## Usage
34
39
 
35
40
  ```
@@ -38,31 +43,78 @@ Usage: synvert-ruby [project_path]
38
43
  -d, --load SNIPPET_PATHS load custom snippets, snippet paths can be local file path or remote http url
39
44
  -l, --list list all available snippets
40
45
  -q, --query QUERY query specified snippets
41
- --skip FILE_PATTERNS skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb
42
- -s, --show SNIPPET_NAME show specified snippet description
46
+ -s, --show SNIPPET_NAME show specified snippet description, SNIPPET_NAME is combined by group and name, e.g. ruby/new_hash_syntax
47
+ -o, --open SNIPPET_NAME Open a snippet
48
+ -g, --generate NEW_SNIPPET_NAME generate a new snippet
43
49
  --sync sync snippets
44
- -r, --run SNIPPET_NAMES run specified snippets
50
+ --execute execute snippet
51
+ -r, --run SNIPPET_NAME run specified snippet, e.g. ruby/new_hash_syntax
52
+ --show-run-process show processing files when running a snippet
53
+ --skip FILE_PATTERNS skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb
54
+ -f, --format FORMAT output format
45
55
  -v, --version show this version
46
56
  ```
47
57
 
48
- e.g.
58
+ #### Sync snippets
59
+
60
+ [Official Snippets](https://github.com/xinminlabs/synvert-snippets-ruby) are available on github,
61
+ you can sync them any time you want.
62
+
63
+ ```
64
+ $ synvert-ruby --sync
65
+ ```
66
+
67
+ #### List snippets
68
+
69
+ List all available snippets
70
+
71
+ ```
72
+ $ synvert-ruby -l
73
+
74
+ $ synvert-ruby --list --form json
75
+ ```
76
+
77
+ #### Show a snippet
78
+
79
+ Describe what a snippet does.
80
+
81
+ ```
82
+ $ synvert-ruby -s factory_bot/use_short_syntax
83
+ ```
84
+
85
+ #### Open a snippet
86
+
87
+ Open a snippet in your editor, editor is defined in
88
+ `ENV['SNIPPET_EDITOR']` or `ENV['EDITOR']`
89
+
90
+ ```
91
+ $ synvert-ruby -o factory_bot/use_short_syntax
92
+ ```
93
+
94
+ #### Run a snippet
95
+
96
+ Run a snippet, analyze and then rewrite code.
97
+
98
+ ```
99
+ $ synvert-ruby -r factory_bot/use_short_syntax ~/Sites/xinminlabs/synvert-core-ruby
100
+ ```
101
+
102
+ Load custom snippet
49
103
 
50
104
  ```
51
- $ synvert-ruby -r factory_girl/use_short_syntax,rails/upgrade_3_2_to_4_0 ~/Sites/railsbp/rails-bestpractices.com
105
+ $ synvert-ruby --load ~/.custom-snippets/my-own-snippet.rb -r my-own-snippet ~/Sites/xinminlabs/synvert-core-ruby
52
106
  ```
53
107
 
54
- ## Documentation
108
+ Show processing files when running a snippet.
55
109
 
56
- [https://synvert.xinminlabs.com][3]
110
+ ```
111
+ $ synvert-ruby -r factory_bot/use_short_syntax --show-run-process ~/Sites/xinminlabs/synvert-core-ruby
112
+ ```
57
113
 
58
- ## Contributing
114
+ #### Generate a snippet
59
115
 
60
- 1. Fork it
61
- 2. Create your feature branch (`git checkout -b my-new-feature`)
62
- 3. Commit your changes (`git commit -am 'Add some feature'`)
63
- 4. Push to the branch (`git push origin my-new-feature`)
64
- 5. Create new Pull Request
116
+ Generate a new snippet
65
117
 
66
- [1]: https://github.com/xinminlabs/synvert-core-ruby/
67
- [2]: https://github.com/xinminlabs/synvert-snippets-ruby/
68
- [3]: https://synvert.xinminlabs.com
118
+ ```
119
+ $ synvert-ruby -g ruby/convert_foo_to_bar
120
+ ```
data/lib/synvert/cli.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'optparse'
4
+ require 'json'
4
5
 
5
6
  module Synvert
6
7
  # Synvert command line interface.
@@ -165,15 +166,11 @@ module Synvert
165
166
  Core::Rewriter.availables.each do |group, rewriters|
166
167
  rewriters.each do |name, rewriter|
167
168
  rewriter.process_with_sandbox
168
- sub_snippets = rewriter.sub_snippets.map { |sub_snippet|
169
- { group: sub_snippet.group, name: sub_snippet.name }
170
- }
171
- item = {
172
- group: group,
173
- name: name,
174
- description: rewriter.description,
175
- sub_snippets: sub_snippets
176
- }
169
+ sub_snippets =
170
+ rewriter.sub_snippets.map { |sub_snippet|
171
+ { group: sub_snippet.group, name: sub_snippet.name }
172
+ }
173
+ item = { group: group, name: name, description: rewriter.description, sub_snippets: sub_snippets }
177
174
  item[:ruby_version] = rewriter.ruby_version.version if rewriter.ruby_version
178
175
  item[:gem_spec] = { name: rewriter.gem_spec.name, version: rewriter.gem_spec.version } if rewriter.gem_spec
179
176
  output << item
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Synvert
4
- VERSION = '0.19.2'
4
+ VERSION = '0.19.3'
5
5
  end
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', '>= 0.61.1'
23
+ spec.add_runtime_dependency 'synvert-core', '>= 1.5.0'
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.19.2
4
+ version: 0.19.3
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-12-15 00:00:00.000000000 Z
11
+ date: 2022-07-18 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.61.1
19
+ version: 1.5.0
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.61.1
26
+ version: 1.5.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  requirements: []
128
- rubygems_version: 3.2.22
128
+ rubygems_version: 3.3.7
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: synvert = syntax + convert.