synvert 0.4.0 → 0.10.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 +5 -5
- data/.travis.yml +4 -3
- data/CHANGELOG.md +21 -0
- data/README.md +6 -5
- data/Rakefile +1 -1
- data/lib/synvert.rb +1 -1
- data/lib/synvert/cli.rb +82 -37
- data/lib/synvert/snippet.rb +16 -6
- data/lib/synvert/version.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/synvert/snippet_spec.rb +21 -10
- data/synvert.gemspec +13 -12
- metadata +28 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 430688d602830d6cbccecf277a580969288b875e992dc1447eb108a7ebd0726c
|
4
|
+
data.tar.gz: 6ea78cce8187cea7470bbc043978b318a4f0bd608bf13124cb9ec5f75917fe37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dad3de4c88092bba08138b0b64d70e92fa33ca2d8d4d7acea22d7b5e468e48fb2b08b8531832c985b03f5a4b6c2e0fda5f5aa415aae204c414fc5d14d18646c1
|
7
|
+
data.tar.gz: e500c57544648cb230f43e52658d58c36bde8a13f052c5e66441fc3471c43e867c8693a0b4fde23a9a9c6c69eae28c0d174ef5ddedec499ff6594a676b0beece
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.10.0 (2021-02-07)
|
4
|
+
|
5
|
+
* Use new `Core::Confiruation`
|
6
|
+
* Use require instead of eval in order to preserve normal Ruby semantics
|
7
|
+
|
8
|
+
## 0.9.0
|
9
|
+
|
10
|
+
* Add `-o` or `--open` option` to open a snippet
|
11
|
+
|
12
|
+
## 0.5.3
|
13
|
+
|
14
|
+
* Show warning message if rewriter not found
|
15
|
+
|
16
|
+
## 0.5.0
|
17
|
+
|
18
|
+
* Rewrite cli for rewriter group
|
19
|
+
|
20
|
+
## 0.4.2
|
21
|
+
|
22
|
+
* Tell user to update synvert-core if necessary after syncing snippets.
|
23
|
+
|
3
24
|
## 0.4.0
|
4
25
|
|
5
26
|
* Use synvert-core 0.4.0
|
data/README.md
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
# Synvert
|
2
2
|
|
3
|
-
[](http://travis-ci.org/xinminlabs/synvert)
|
4
|
+
[](https://coveralls.io/r/xinminlabs/synvert)
|
5
|
+
[](http://badge.fury.io/rb/synvert)
|
6
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 and 2.
|
10
|
+
Synvert is tested against MRI 1.9.3, 2.0.0, 2.1.7 and 2.2.3.
|
11
11
|
|
12
12
|
Synvert is composed by synvert-core and synvert-snippets.
|
13
13
|
|
14
14
|
[synvert-core][1] provides a dsl to convert ruby code.
|
15
|
+
|
15
16
|
[synvert-snippets][2] lists all snippets to convert ruby code based on
|
16
17
|
synvert-core.
|
17
18
|
|
@@ -45,7 +46,7 @@ $ synvert --sync
|
|
45
46
|
```
|
46
47
|
|
47
48
|
```
|
48
|
-
$ synvert -r
|
49
|
+
$ synvert -r factory_girl/use_short_syntax,rails/upgrade_3_2_to_4_0 ~/Sites/railsbp/rails-bestpractices.com
|
49
50
|
```
|
50
51
|
|
51
52
|
## Documentation
|
data/Rakefile
CHANGED
data/lib/synvert.rb
CHANGED
data/lib/synvert/cli.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'optparse'
|
3
|
-
require 'open-uri'
|
4
3
|
|
5
4
|
module Synvert
|
6
5
|
# Synvert command line interface.
|
@@ -16,8 +15,6 @@ module Synvert
|
|
16
15
|
# Initialize a CLI.
|
17
16
|
def initialize
|
18
17
|
@options = {command: 'run', custom_snippet_paths: [], snippet_names: []}
|
19
|
-
Core::Configuration.instance.set :skip_files, []
|
20
|
-
Core::Configuration.instance.set :default_snippets_path, File.join(ENV['HOME'], '.synvert')
|
21
18
|
end
|
22
19
|
|
23
20
|
# Run the CLI.
|
@@ -25,19 +22,29 @@ module Synvert
|
|
25
22
|
# @return [Boolean] true if command runs successfully.
|
26
23
|
def run(args)
|
27
24
|
run_option_parser(args)
|
28
|
-
load_rewriters
|
29
25
|
|
30
26
|
case @options[:command]
|
31
|
-
when 'list'
|
32
|
-
|
33
|
-
|
34
|
-
when '
|
35
|
-
|
27
|
+
when 'list'
|
28
|
+
load_rewriters
|
29
|
+
list_available_rewriters
|
30
|
+
when 'open'
|
31
|
+
open_rewriter
|
32
|
+
when 'query'
|
33
|
+
load_rewriters
|
34
|
+
query_available_rewriters
|
35
|
+
when 'show'
|
36
|
+
load_rewriters
|
37
|
+
show_rewriter
|
38
|
+
when 'sync'
|
39
|
+
sync_snippets
|
40
|
+
else # run
|
41
|
+
load_rewriters
|
36
42
|
@options[:snippet_names].each do |snippet_name|
|
37
43
|
puts "===== #{snippet_name} started ====="
|
38
|
-
|
44
|
+
group, name = snippet_name.split('/')
|
45
|
+
rewriter = Core::Rewriter.call group, name
|
39
46
|
rewriter.warnings.each do |warning|
|
40
|
-
puts
|
47
|
+
puts '[Warn] ' + warning.message
|
41
48
|
end
|
42
49
|
puts rewriter.todo if rewriter.todo
|
43
50
|
puts "===== #{snippet_name} done ====="
|
@@ -51,24 +58,27 @@ module Synvert
|
|
51
58
|
puts "file #{e.diagnostic.location.source_buffer.name}"
|
52
59
|
puts "line #{e.diagnostic.location.line}"
|
53
60
|
false
|
54
|
-
rescue
|
55
|
-
|
56
|
-
p e
|
61
|
+
rescue Synvert::Core::RewriterNotFound => e
|
62
|
+
puts e.message
|
57
63
|
false
|
58
64
|
end
|
59
65
|
|
60
|
-
|
66
|
+
private
|
61
67
|
|
62
68
|
# Run OptionParser to parse arguments.
|
63
69
|
def run_option_parser(args)
|
64
70
|
optparse = OptionParser.new do |opts|
|
65
|
-
opts.banner =
|
71
|
+
opts.banner = 'Usage: synvert [project_path]'
|
66
72
|
opts.on '-d', '--load SNIPPET_PATHS', 'load custom snippets, snippet paths can be local file path or remote http url' do |snippet_paths|
|
67
73
|
@options[:custom_snippet_paths] = snippet_paths.split(',').map(&:strip)
|
68
74
|
end
|
69
75
|
opts.on '-l', '--list', 'list all available snippets' do
|
70
76
|
@options[:command] = 'list'
|
71
77
|
end
|
78
|
+
opts.on '-o', '--open SNIPPET_NAME', 'Open a snippet' do |snippet_name|
|
79
|
+
@options[:command] = 'open'
|
80
|
+
@options[:snippet_name] = snippet_name
|
81
|
+
end
|
72
82
|
opts.on '-q', '--query QUERY', 'query specified snippets' do |query|
|
73
83
|
@options[:command] = 'query'
|
74
84
|
@options[:query] = query
|
@@ -76,14 +86,14 @@ module Synvert
|
|
76
86
|
opts.on '--skip FILE_PATTERNS', 'skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb' do |file_patterns|
|
77
87
|
@options[:skip_file_patterns] = file_patterns.split(',')
|
78
88
|
end
|
79
|
-
opts.on '-s', '--show SNIPPET_NAME', 'show specified snippet description' do |snippet_name|
|
89
|
+
opts.on '-s', '--show SNIPPET_NAME', 'show specified snippet description, SNIPPET_NAME is combined by group and name, e.g. ruby/new_hash_syntax' do |snippet_name|
|
80
90
|
@options[:command] = 'show'
|
81
91
|
@options[:snippet_name] = snippet_name
|
82
92
|
end
|
83
93
|
opts.on '--sync', 'sync snippets' do
|
84
94
|
@options[:command] = 'sync'
|
85
95
|
end
|
86
|
-
opts.on '-r', '--run SNIPPET_NAMES', 'run specified snippets' do |snippet_names|
|
96
|
+
opts.on '-r', '--run SNIPPET_NAMES', 'run specified snippets, each SNIPPET_NAME is combined by group and name, e.g. ruby/new_hash_syntax,ruby/new_lambda_syntax' do |snippet_names|
|
87
97
|
@options[:snippet_names] = snippet_names.split(',').map(&:strip)
|
88
98
|
end
|
89
99
|
opts.on '-v', '--version', 'show this version' do
|
@@ -92,48 +102,74 @@ module Synvert
|
|
92
102
|
end
|
93
103
|
end
|
94
104
|
paths = optparse.parse(args)
|
95
|
-
Core::Configuration.
|
105
|
+
Core::Configuration.path = paths.first || Dir.pwd
|
96
106
|
if @options[:skip_file_patterns] && !@options[:skip_file_patterns].empty?
|
97
|
-
skip_files = @options[:skip_file_patterns].map
|
98
|
-
full_file_pattern = File.join(Core::Configuration.
|
107
|
+
skip_files = @options[:skip_file_patterns].map do |file_pattern|
|
108
|
+
full_file_pattern = File.join(Core::Configuration.path, file_pattern)
|
99
109
|
Dir.glob(full_file_pattern)
|
100
|
-
|
101
|
-
Core::Configuration.
|
110
|
+
end.flatten
|
111
|
+
Core::Configuration.skip_files = skip_files
|
102
112
|
end
|
103
113
|
end
|
104
114
|
|
105
115
|
# Load all rewriters.
|
106
116
|
def load_rewriters
|
107
|
-
default_snippets_path
|
108
|
-
Dir.glob(File.join(default_snippets_path, 'lib/**/*.rb')).each { |file| eval(File.read(file)) }
|
117
|
+
Dir.glob(File.join(default_snippets_path, 'lib/**/*.rb')).each { |file| require file }
|
109
118
|
|
110
119
|
@options[:custom_snippet_paths].each do |snippet_path|
|
111
120
|
if snippet_path =~ /^http/
|
112
121
|
uri = URI.parse snippet_path
|
113
122
|
eval(uri.read)
|
114
123
|
else
|
115
|
-
|
124
|
+
require snippet_path
|
116
125
|
end
|
117
126
|
end
|
127
|
+
rescue
|
128
|
+
FileUtils.rm_rf default_snippets_path
|
129
|
+
retry
|
118
130
|
end
|
119
131
|
|
120
132
|
# List and print all available rewriters.
|
121
133
|
def list_available_rewriters
|
122
134
|
if Core::Rewriter.availables.empty?
|
123
|
-
puts
|
135
|
+
puts 'There is no snippet under ~/.synvert, please run `synvert --sync` to fetch snippets.'
|
124
136
|
else
|
125
|
-
Core::Rewriter.availables.each do |
|
126
|
-
|
137
|
+
Core::Rewriter.availables.each do |group, rewriters|
|
138
|
+
puts group
|
139
|
+
rewriters.each do |name, rewriter|
|
140
|
+
puts ' ' + name
|
141
|
+
end
|
127
142
|
end
|
128
143
|
puts
|
129
144
|
end
|
130
145
|
end
|
131
146
|
|
147
|
+
# Open one rewriter.
|
148
|
+
def open_rewriter
|
149
|
+
editor = [ENV['SYNVERT_EDITOR'], ENV['EDITOR']].find { |e| !e.nil? && !e.empty? }
|
150
|
+
return puts 'To open a synvert snippet, set $EDITOR or $SYNVERT_EDITOR' unless editor
|
151
|
+
|
152
|
+
path = File.expand_path(File.join(default_snippets_path, "lib/#{@options[:snippet_name]}.rb"))
|
153
|
+
if File.exist? path
|
154
|
+
system editor, path
|
155
|
+
else
|
156
|
+
puts "Can't run #{editor} #{path}"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
132
160
|
# Query and print available rewriters.
|
133
161
|
def query_available_rewriters
|
134
|
-
Core::Rewriter.availables.each do |
|
135
|
-
if
|
136
|
-
|
162
|
+
Core::Rewriter.availables.each do |group, rewriters|
|
163
|
+
if group.include? @options[:query]
|
164
|
+
puts group
|
165
|
+
rewriters.each do |name, rewriter|
|
166
|
+
puts ' ' + name
|
167
|
+
end
|
168
|
+
elsif rewriters.keys.any? { |name| name.include? @options[:query] }
|
169
|
+
puts group
|
170
|
+
rewriters.each do |name, rewriter|
|
171
|
+
puts ' ' + name if name.include?(@options[:query])
|
172
|
+
end
|
137
173
|
end
|
138
174
|
end
|
139
175
|
puts
|
@@ -141,15 +177,16 @@ module Synvert
|
|
141
177
|
|
142
178
|
# Show and print one rewriter.
|
143
179
|
def show_rewriter
|
144
|
-
|
180
|
+
group, name = @options[:snippet_name].split('/')
|
181
|
+
rewriter = Core::Rewriter.fetch(group, name)
|
145
182
|
if rewriter
|
146
183
|
rewriter.process_with_sandbox
|
147
184
|
puts rewriter.description
|
148
185
|
rewriter.sub_snippets.each do |sub_rewriter|
|
149
186
|
puts
|
150
|
-
puts
|
187
|
+
puts '=' * 80
|
151
188
|
puts "snippet: #{sub_rewriter.name}"
|
152
|
-
puts
|
189
|
+
puts '=' * 80
|
153
190
|
puts sub_rewriter.description
|
154
191
|
end
|
155
192
|
else
|
@@ -159,8 +196,16 @@ module Synvert
|
|
159
196
|
|
160
197
|
# sync snippets
|
161
198
|
def sync_snippets
|
162
|
-
Snippet.sync
|
163
|
-
puts
|
199
|
+
Snippet.new(default_snippets_path).sync
|
200
|
+
puts 'synvert snippets are synced'
|
201
|
+
core_version = Snippet.fetch_core_version
|
202
|
+
if Gem::Version.new(core_version) > Gem::Version.new(Synvert::Core::VERSION)
|
203
|
+
puts "synvert-core is updated, please install synvert-core #{core_version}"
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def default_snippets_path
|
208
|
+
File.join(ENV['HOME'], '.synvert')
|
164
209
|
end
|
165
210
|
end
|
166
211
|
end
|
data/lib/synvert/snippet.rb
CHANGED
@@ -1,17 +1,27 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
require 'open-uri'
|
3
|
+
require 'json'
|
2
4
|
|
3
5
|
module Synvert
|
4
6
|
# Manage synvert snippets.
|
5
7
|
class Snippet
|
8
|
+
def initialize(snippets_path)
|
9
|
+
@snippets_path = snippets_path
|
10
|
+
end
|
11
|
+
|
6
12
|
# synchronize snippets from github.
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
`git pull --rebase --quiet`
|
13
|
+
def sync
|
14
|
+
if File.exist?(@snippets_path)
|
15
|
+
FileUtils.cd @snippets_path
|
16
|
+
Kernel.system('git pull --rebase')
|
12
17
|
else
|
13
|
-
|
18
|
+
Kernel.system("git clone https://github.com/xinminlabs/synvert-snippets.git #{@snippets_path}")
|
14
19
|
end
|
15
20
|
end
|
21
|
+
|
22
|
+
def fetch_core_version
|
23
|
+
content = URI.open('https://rubygems.org/api/v1/versions/synvert-core.json').read
|
24
|
+
JSON.parse(content).first['number']
|
25
|
+
end
|
16
26
|
end
|
17
27
|
end
|
data/lib/synvert/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -2,19 +2,30 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Synvert
|
4
4
|
describe Snippet do
|
5
|
-
let(:
|
6
|
-
|
7
|
-
after { FileUtils.
|
5
|
+
let(:snippets_path) { File.join(File.dirname(__FILE__), '.synvert') }
|
6
|
+
let(:snippet) { Snippet.new(snippets_path) }
|
7
|
+
after { FileUtils.rmdir(snippets_path) if File.exist?(snippets_path) }
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
describe 'sync' do
|
10
|
+
it 'git clones snippets' do
|
11
|
+
expect(Kernel).to receive(:system).with("git clone https://github.com/xinminlabs/synvert-snippets.git #{snippets_path}")
|
12
|
+
snippet.sync
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'git pull snippets' do
|
16
|
+
FileUtils.mkdir snippets_path
|
17
|
+
expect(Kernel).to receive(:system).with('git pull --rebase')
|
18
|
+
snippet.sync
|
19
|
+
FileUtils.cd File.dirname(__FILE__)
|
20
|
+
end
|
12
21
|
end
|
13
22
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
23
|
+
describe 'fetch_core_version' do
|
24
|
+
it 'gets remote version' do
|
25
|
+
stub_request(:get, 'https://rubygems.org/api/v1/versions/synvert-core.json').
|
26
|
+
to_return(:body => '[{"number":"0.4.2"}]')
|
27
|
+
expect(snippet.fetch_core_version).to eq '0.4.2'
|
28
|
+
end
|
18
29
|
end
|
19
30
|
end
|
20
31
|
end
|
data/synvert.gemspec
CHANGED
@@ -4,23 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'synvert/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'synvert'
|
8
8
|
spec.version = Synvert::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.description =
|
12
|
-
spec.summary =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Richard Huang']
|
10
|
+
spec.email = ['flyerhzm@gmail.com']
|
11
|
+
spec.description = 'synvert is used to convert ruby code to better syntax.'
|
12
|
+
spec.summary = 'synvert = syntax + convert.'
|
13
|
+
spec.homepage = 'https://github.com/xinminlabs/synvert'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_runtime_dependency
|
21
|
+
spec.add_runtime_dependency 'synvert-core', '>= 0.19.0'
|
22
22
|
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
23
|
+
spec.add_development_dependency 'bundler'
|
24
|
+
spec.add_development_dependency 'rake'
|
25
|
+
spec.add_development_dependency 'rspec'
|
26
|
+
spec.add_development_dependency 'webmock'
|
26
27
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synvert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: synvert-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.19.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.
|
26
|
+
version: 0.19.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: synvert is used to convert ruby code to better syntax.
|
70
84
|
email:
|
71
85
|
- flyerhzm@gmail.com
|
@@ -94,7 +108,7 @@ homepage: https://github.com/xinminlabs/synvert
|
|
94
108
|
licenses:
|
95
109
|
- MIT
|
96
110
|
metadata: {}
|
97
|
-
post_install_message:
|
111
|
+
post_install_message:
|
98
112
|
rdoc_options: []
|
99
113
|
require_paths:
|
100
114
|
- lib
|
@@ -109,9 +123,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
requirements: []
|
112
|
-
|
113
|
-
|
114
|
-
signing_key:
|
126
|
+
rubygems_version: 3.1.4
|
127
|
+
signing_key:
|
115
128
|
specification_version: 4
|
116
129
|
summary: synvert = syntax + convert.
|
117
130
|
test_files:
|