synvert 0.15.0 → 0.18.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa3d4c32999b086b2c6667043c3ed62fff147badcee5d3346a754fa00d510352
4
- data.tar.gz: d6a24917c14a329e64fb54142c9e65ba33c2b989eca4ba51472692735d7d1682
3
+ metadata.gz: 6b88f72e6317a08babbaa9770e563ba1828efb17524c400dbfa3ea9cdbfdf5aa
4
+ data.tar.gz: f6cec7f9e9188698145bf3ff79b7eaaa4ef79ff4752248d51380cf0838504639
5
5
  SHA512:
6
- metadata.gz: 1857e7e55b03f6664324ad5a7ff1a7ff9a0c6cfcf2fb6c66b6d174080872f404fd41a1e566ab48cdaacfd570b9e6369985258ef24f4edb7d4cec6056e9dafbe7
7
- data.tar.gz: 99291c2413590198482e72b37d159dd99bb528c0d15d31cee3e2abcb86c8e8b1fe67350b4c0f1cf3345d55cc4ba5e2b05d5bddd272743732cae715dcf112e3ff
6
+ metadata.gz: 04b9d963283fa2617efd4d0efe0c793efa2fe392d5c1a797e7aa2919d309790052b600a6ffc7471d08a027fe6e7e30f63f54345d5eeca527a713de13c509bea7
7
+ data.tar.gz: cde9dab396fad919547a47a050bf22d714941b657f6260dd0125035f59f5d8ecb003ecaff260072d2cbf1f13d350c73e09723d34032b4a11cb4979178277db28
@@ -0,0 +1,32 @@
1
+ # This workflow uses actions that are not certified by GitHub.
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
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby-version }}
30
+ bundler-cache: true
31
+ - name: Run tests
32
+ run: bundle exec rake
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.18.1 (2021-07-23)
4
+
5
+ * Fix `affected_files` is Set
6
+
7
+ ## 0.18.0 (2021-07-14)
8
+
9
+ * Execute a snippet
10
+
11
+ ## 0.17.0 (2021-04-19)
12
+
13
+ * Run `git checkout .` before `git pull --rebase`
14
+
15
+ ## 0.16.0 (2021-03-24)
16
+
17
+ * Add `ruby_version` and `gem_spec` to json output
18
+
3
19
  ## 0.15.0 (2021-03-23)
4
20
 
5
21
  * Fix reduce on empty array
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Synvert
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/xinminlabs/synvert.svg)](http://travis-ci.org/xinminlabs/synvert)
3
+ ![Main workflow](https://github.com/xinminlabs/synvert/actions/workflows/main.yml/badge.svg)
4
4
  [![Coverage Status](https://coveralls.io/repos/xinminlabs/synvert/badge.svg?branch=master)](https://coveralls.io/r/xinminlabs/synvert)
5
5
  [![Gem Version](https://badge.fury.io/rb/synvert.svg)](http://badge.fury.io/rb/synvert)
6
6
 
@@ -22,6 +22,12 @@ Install it using rubygems
22
22
  $ gem install synvert
23
23
  ```
24
24
 
25
+ then run
26
+
27
+ ```
28
+ $ synvert --sync
29
+ ```
30
+
25
31
  ## Usage
26
32
 
27
33
  ```
@@ -39,10 +45,6 @@ Usage: synvert [project_path]
39
45
 
40
46
  e.g.
41
47
 
42
- ```
43
- $ synvert --sync
44
- ```
45
-
46
48
  ```
47
49
  $ synvert -r factory_girl/use_short_syntax,rails/upgrade_3_2_to_4_0 ~/Sites/railsbp/rails-bestpractices.com
48
50
  ```
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
- output << {
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
 
@@ -239,7 +247,29 @@ module Synvert
239
247
  group, name = snippet_name.split('/')
240
248
  rewriter = Core::Rewriter.call group, name
241
249
  output = {
242
- affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum([], &:affected_files)).to_a,
250
+ affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum(Set.new, &: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(Set.new, &:affected_files)).to_a,
243
273
  warnings: rewriter.warnings.union(rewriter.sub_snippets.sum([], &:warnings)),
244
274
  todo: rewriter.todo
245
275
  }
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Synvert
4
- VERSION = '0.15.0'
4
+ VERSION = '0.18.1'
5
5
  end
@@ -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.25.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.15.0
4
+ version: 0.18.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: 2021-03-23 00:00:00.000000000 Z
11
+ date: 2021-07-23 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.25.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.25.0
26
+ version: 0.42.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -88,9 +88,9 @@ executables:
88
88
  extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
+ - ".github/workflows/main.yml"
91
92
  - ".gitignore"
92
93
  - ".rspec"
93
- - ".travis.yml"
94
94
  - CHANGELOG.md
95
95
  - Gemfile
96
96
  - LICENSE.txt
@@ -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.4
126
+ rubygems_version: 3.1.6
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: synvert = syntax + convert.
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3
4
- - 2.4
5
- - 2.5
6
- - 2.6
7
- - 2.7
8
- - 3.0