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