synvert 0.9.0 → 0.12.0

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
- SHA1:
3
- metadata.gz: 8941e003bae93eb24a188ff2dbcb48dbad8cc2b6
4
- data.tar.gz: e796edccc2f96ff9ea1f3303c51360ffdbdf90a3
2
+ SHA256:
3
+ metadata.gz: e1c67ec2f25a9e357beea399dbdf83f6d4a46a2e3a3729843e2cca128a662b73
4
+ data.tar.gz: 4327ecc60f5d4681c2f03bd6e63c2e854a3f9f278c363a71ef9a48126d82320b
5
5
  SHA512:
6
- metadata.gz: 77e919724aa7ec0508621a38a7a5cea5d85ec05925bf8b0bdacb9e6509cb5ce5593ebc5b96110d90d771d7ef936891e5a6c48de8303e427602d7d11ff350da32
7
- data.tar.gz: 7ec460303474e7f5116983c6e6097cb9338e9f8c40eb93dad50d9978e0a1fa1beda9cd86fa6937588a99e68d17b3769206ef69b08004a3835d758ec26c334b2a
6
+ metadata.gz: ce66beb043128746d3771c38a13887e5bd560246c925c5a1570180878b6b86694a4c83074cb5982adfc21f9a930b13b63434d551050270f92f27e485c3500ac5
7
+ data.tar.gz: 0550f8223f2f21f4639e5c63dc475767a281c710b06291c69783f68a22441cfb0d8f92f068c22d24d436521cab40c5bcc90d9836b951b3e0e27835be45443561
data/.travis.yml CHANGED
@@ -1,5 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.1
3
+ - 2.3
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
7
+ - 2.7
8
+ - 3.0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,24 @@
1
1
  # CHANGELOG
2
2
 
3
- Try to keep same version to gem `synvert-core`.
3
+ ## 0.12.0 (2021-03-01)
4
+
5
+ * Display `synvert-core` and `parser` version
6
+ * Generate a new snippet
7
+
8
+ ## 0.11.1 (2021-02-20)
9
+
10
+ * Use `Synvert::VERSION` instead of `Synvert::Core::VERSION`
11
+
12
+ ## 0.11.0 (2021-02-15)
13
+
14
+ * Add `--list-all` option
15
+ * Add post install message
16
+ * Fix `Synvert::Snippet.fetch_core_version`
17
+
18
+ ## 0.10.0 (2021-02-07)
19
+
20
+ * Use new `Core::Confiruation`
21
+ * Use require instead of eval in order to preserve normal Ruby semantics
4
22
 
5
23
  ## 0.9.0
6
24
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in synvert.gemspec
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Synvert
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/xinminlabs/synvert.png)](http://travis-ci.org/xinminlabs/synvert)
4
- [![Coverage Status](https://coveralls.io/repos/xinminlabs/synvert/badge.png?branch=master)](https://coveralls.io/r/xinminlabs/synvert)
5
- [![Gem Version](https://badge.fury.io/rb/synvert.png)](http://badge.fury.io/rb/synvert)
3
+ [![Build Status](https://secure.travis-ci.org/xinminlabs/synvert.svg)](http://travis-ci.org/xinminlabs/synvert)
4
+ [![Coverage Status](https://coveralls.io/repos/xinminlabs/synvert/badge.svg?branch=master)](https://coveralls.io/r/xinminlabs/synvert)
5
+ [![Gem Version](https://badge.fury.io/rb/synvert.svg)](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.1.1.
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
 
data/Rakefile CHANGED
@@ -1,4 +1,6 @@
1
- require "bundler/gem_tasks"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
data/bin/synvert CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # coding: utf-8
2
+ # frozen_string_literal: true
3
3
 
4
- $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
4
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
5
5
  require 'synvert'
6
6
 
7
7
  result = Synvert::CLI.run
data/lib/synvert.rb CHANGED
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- require "synvert/version"
1
+ # frozen_string_literal: true
2
+
3
+ require 'synvert/version'
3
4
  require 'bundler'
4
5
  require 'synvert/core'
5
6
 
data/lib/synvert/cli.rb CHANGED
@@ -1,4 +1,5 @@
1
- # coding: utf-8
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.
@@ -29,6 +28,9 @@ module Synvert
29
28
  when 'list'
30
29
  load_rewriters
31
30
  list_available_rewriters
31
+ when 'list-all'
32
+ load_rewriters
33
+ list_all_rewriters_in_json
32
34
  when 'open'
33
35
  open_rewriter
34
36
  when 'query'
@@ -39,14 +41,17 @@ module Synvert
39
41
  show_rewriter
40
42
  when 'sync'
41
43
  sync_snippets
44
+ when 'generate'
45
+ generate_snippet
42
46
  else
47
+ # run
43
48
  load_rewriters
44
49
  @options[:snippet_names].each do |snippet_name|
45
50
  puts "===== #{snippet_name} started ====="
46
51
  group, name = snippet_name.split('/')
47
52
  rewriter = Core::Rewriter.call group, name
48
53
  rewriter.warnings.each do |warning|
49
- puts "[Warn] " + warning.message
54
+ puts '[Warn] ' + warning.message
50
55
  end
51
56
  puts rewriter.todo if rewriter.todo
52
57
  puts "===== #{snippet_name} done ====="
@@ -69,64 +74,82 @@ module Synvert
69
74
 
70
75
  # Run OptionParser to parse arguments.
71
76
  def run_option_parser(args)
72
- optparse = OptionParser.new do |opts|
73
- opts.banner = "Usage: synvert [project_path]"
74
- opts.on '-d', '--load SNIPPET_PATHS', 'load custom snippets, snippet paths can be local file path or remote http url' do |snippet_paths|
75
- @options[:custom_snippet_paths] = snippet_paths.split(',').map(&:strip)
76
- end
77
- opts.on '-l', '--list', 'list all available snippets' do
78
- @options[:command] = 'list'
79
- end
80
- opts.on '-o', '--open SNIPPET_NAME', 'Open a snippet' do |snippet_name|
81
- @options[:command] = 'open'
82
- @options[:snippet_name] = snippet_name
83
- end
84
- opts.on '-q', '--query QUERY', 'query specified snippets' do |query|
85
- @options[:command] = 'query'
86
- @options[:query] = query
87
- end
88
- 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|
89
- @options[:skip_file_patterns] = file_patterns.split(',')
90
- end
91
- 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|
92
- @options[:command] = 'show'
93
- @options[:snippet_name] = snippet_name
94
- end
95
- opts.on '--sync', 'sync snippets' do
96
- @options[:command] = 'sync'
97
- end
98
- 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|
99
- @options[:snippet_names] = snippet_names.split(',').map(&:strip)
100
- end
101
- opts.on '-v', '--version', 'show this version' do
102
- puts Core::VERSION
103
- exit
77
+ optparse =
78
+ OptionParser.new do |opts|
79
+ opts.banner = 'Usage: synvert [project_path]'
80
+ opts.on '-d',
81
+ '--load SNIPPET_PATHS',
82
+ 'load custom snippets, snippet paths can be local file path or remote http url' do |snippet_paths|
83
+ @options[:custom_snippet_paths] = snippet_paths.split(',').map(&:strip)
84
+ end
85
+ opts.on '--list-all', 'list all available snippets name and description in json format' do
86
+ @options[:command] = 'list-all'
87
+ end
88
+ opts.on '-l', '--list', 'list all available snippets' do
89
+ @options[:command] = 'list'
90
+ end
91
+ opts.on '-o', '--open SNIPPET_NAME', 'Open a snippet' do |snippet_name|
92
+ @options[:command] = 'open'
93
+ @options[:snippet_name] = snippet_name
94
+ end
95
+ opts.on '-q', '--query QUERY', 'query specified snippets' do |query|
96
+ @options[:command] = 'query'
97
+ @options[:query] = query
98
+ end
99
+ opts.on '--skip FILE_PATTERNS',
100
+ 'skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb' do |file_patterns|
101
+ @options[:skip_file_patterns] = file_patterns.split(',')
102
+ end
103
+ opts.on '-s',
104
+ '--show SNIPPET_NAME',
105
+ 'show specified snippet description, SNIPPET_NAME is combined by group and name, e.g. ruby/new_hash_syntax' do |snippet_name|
106
+ @options[:command] = 'show'
107
+ @options[:snippet_name] = snippet_name
108
+ end
109
+ opts.on '--sync', 'sync snippets' do
110
+ @options[:command] = 'sync'
111
+ end
112
+ opts.on '-r',
113
+ '--run SNIPPET_NAMES',
114
+ '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|
115
+ @options[:snippet_names] = snippet_names.split(',').map(&:strip)
116
+ end
117
+ opts.on '-g',
118
+ '--generate NEW_SNIPPET_NAME',
119
+ 'generate a new snippet' do |name|
120
+ @options[:command] = 'generate'
121
+ @options[:snippet_name] = name
122
+ end
123
+ opts.on '-v', '--version', 'show this version' do
124
+ puts "#{VERSION} (with synvert-core #{Core::VERSION} and parser #{Parser::VERSION})"
125
+ exit
126
+ end
104
127
  end
105
- end
106
128
  paths = optparse.parse(args)
107
- Core::Configuration.instance.set :path, paths.first || Dir.pwd
129
+ Core::Configuration.path = paths.first || Dir.pwd
108
130
  if @options[:skip_file_patterns] && !@options[:skip_file_patterns].empty?
109
- skip_files = @options[:skip_file_patterns].map { |file_pattern|
110
- full_file_pattern = File.join(Core::Configuration.instance.get(:path), file_pattern)
111
- Dir.glob(full_file_pattern)
112
- }.flatten
113
- Core::Configuration.instance.set :skip_files, skip_files
131
+ skip_files =
132
+ @options[:skip_file_patterns].map do |file_pattern|
133
+ full_file_pattern = File.join(Core::Configuration.path, file_pattern)
134
+ Dir.glob(full_file_pattern)
135
+ end.flatten
136
+ Core::Configuration.skip_files = skip_files
114
137
  end
115
138
  end
116
139
 
117
140
  # Load all rewriters.
118
141
  def load_rewriters
119
- Dir.glob(File.join(default_snippets_path, 'lib/**/*.rb')).each { |file| eval(File.read(file)) }
142
+ Dir.glob(File.join(default_snippets_path, 'lib/**/*.rb')).each { |file| require file }
120
143
 
121
144
  @options[:custom_snippet_paths].each do |snippet_path|
122
- if snippet_path =~ /^http/
145
+ if /^http/.match?(snippet_path)
123
146
  uri = URI.parse snippet_path
124
147
  eval(uri.read)
125
148
  else
126
- eval(File.read(snippet_path))
149
+ require snippet_path
127
150
  end
128
151
  end
129
- rescue
152
+ rescue StandardError
130
153
  FileUtils.rm_rf default_snippets_path
131
154
  retry
132
155
  end
@@ -134,22 +157,44 @@ module Synvert
134
157
  # List and print all available rewriters.
135
158
  def list_available_rewriters
136
159
  if Core::Rewriter.availables.empty?
137
- puts "There is no snippet under ~/.synvert, please run `synvert --sync` to fetch snippets."
160
+ puts 'There is no snippet under ~/.synvert, please run `synvert --sync` to fetch snippets.'
138
161
  else
139
162
  Core::Rewriter.availables.each do |group, rewriters|
140
163
  puts group
141
- rewriters.each do |name, rewriter|
142
- puts " " + name
164
+ rewriters.each do |name, _rewriter|
165
+ puts ' ' + name
143
166
  end
144
167
  end
145
168
  puts
146
169
  end
147
170
  end
148
171
 
172
+ def list_all_rewriters_in_json
173
+ if Core::Rewriter.availables.empty?
174
+ puts 'There is no snippet under ~/.synvert, please run `synvert --sync` to fetch snippets.'
175
+ return
176
+ end
177
+
178
+ output = []
179
+ Core::Rewriter.availables.each do |group, rewriters|
180
+ rewriters.each do |name, rewriter|
181
+ rewriter.process_with_sandbox
182
+ output << {
183
+ group: group,
184
+ name: name,
185
+ description: rewriter.description,
186
+ sub_snippets: rewriter.sub_snippets.map(&:name)
187
+ }
188
+ end
189
+ end
190
+
191
+ puts JSON.generate(output)
192
+ end
193
+
149
194
  # Open one rewriter.
150
195
  def open_rewriter
151
196
  editor = [ENV['SYNVERT_EDITOR'], ENV['EDITOR']].find { |e| !e.nil? && !e.empty? }
152
- return puts "To open a synvert snippet, set $EDITOR or $SYNVERT_EDITOR" unless editor
197
+ return puts 'To open a synvert snippet, set $EDITOR or $SYNVERT_EDITOR' unless editor
153
198
 
154
199
  path = File.expand_path(File.join(default_snippets_path, "lib/#{@options[:snippet_name]}.rb"))
155
200
  if File.exist? path
@@ -164,13 +209,13 @@ module Synvert
164
209
  Core::Rewriter.availables.each do |group, rewriters|
165
210
  if group.include? @options[:query]
166
211
  puts group
167
- rewriters.each do |name, rewriter|
168
- puts " " + name
212
+ rewriters.each do |name, _rewriter|
213
+ puts ' ' + name
169
214
  end
170
215
  elsif rewriters.keys.any? { |name| name.include? @options[:query] }
171
216
  puts group
172
- rewriters.each do |name, rewriter|
173
- puts " " + name if name.include?(@options[:query])
217
+ rewriters.each do |name, _rewriter|
218
+ puts ' ' + name if name.include?(@options[:query])
174
219
  end
175
220
  end
176
221
  end
@@ -186,9 +231,9 @@ module Synvert
186
231
  puts rewriter.description
187
232
  rewriter.sub_snippets.each do |sub_rewriter|
188
233
  puts
189
- puts "=" * 80
234
+ puts '=' * 80
190
235
  puts "snippet: #{sub_rewriter.name}"
191
- puts "=" * 80
236
+ puts '=' * 80
192
237
  puts sub_rewriter.description
193
238
  end
194
239
  else
@@ -198,16 +243,64 @@ module Synvert
198
243
 
199
244
  # sync snippets
200
245
  def sync_snippets
201
- Snippet.sync
202
- puts "synvert snippets are synced"
246
+ Snippet.new(default_snippets_path).sync
247
+ puts 'synvert snippets are synced'
203
248
  core_version = Snippet.fetch_core_version
204
249
  if Gem::Version.new(core_version) > Gem::Version.new(Synvert::Core::VERSION)
205
250
  puts "synvert-core is updated, please install synvert-core #{core_version}"
206
251
  end
207
252
  end
208
253
 
254
+ # generate a new snippet
255
+ def generate_snippet
256
+ group, name = @options[:snippet_name].split('/')
257
+ FileUtils.mkdir_p("lib/#{group}")
258
+ FileUtils.mkdir_p("spec/#{group}")
259
+ lib_content = <<~EOF
260
+ # frozen_string_literal: true
261
+
262
+ Synvert::Rewriter.new '#{group}', '#{name}' do
263
+ description <<~EOS
264
+ It convert Foo to Bar
265
+
266
+ ```ruby
267
+ Foo
268
+ ```
269
+
270
+ =>
271
+
272
+ ```ruby
273
+ Bar
274
+ ```
275
+ EOS
276
+
277
+ within_files '**/*.rb' do
278
+ with_node type: 'const', to_source: 'Foo' do
279
+ replace_with 'Bar'
280
+ end
281
+ end
282
+ end
283
+ EOF
284
+ spec_content = <<~EOF
285
+ # frozen_string_literal: true
286
+
287
+ require 'spec_helper'
288
+
289
+ RSpec.describe 'Convert Foo to Bar' do
290
+ let(:rewriter_name) { '#{group}/#{name}' }
291
+ let(:fake_file_path) { 'foobar.rb' }
292
+ let(:test_content) { 'Foo' }
293
+ let(:test_rewritten_content) { 'Bar' }
294
+
295
+ include_examples 'convertable'
296
+ end
297
+ EOF
298
+ File.write("lib/#{group}/#{name}.rb", lib_content)
299
+ File.write("spec/#{group}/#{name}_spec.rb", spec_content)
300
+ end
301
+
209
302
  def default_snippets_path
210
- Core::Configuration.instance.get :default_snippets_path
303
+ File.join(ENV['HOME'], '.synvert')
211
304
  end
212
305
  end
213
306
  end
@@ -1,24 +1,28 @@
1
- # coding: utf-8
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 self.sync
10
- snippets_path = Core::Configuration.instance.get :default_snippets_path
11
- if File.exist?(snippets_path)
12
- FileUtils.cd snippets_path
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
@@ -1,5 +1,5 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Synvert
4
- VERSION = "0.9.0"
4
+ VERSION = '0.12.0'
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,6 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
4
 
3
5
  require 'synvert'
4
6
  require 'webmock/rspec'
@@ -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
- describe "sync" do
6
- let(:default_snippets_path) { File.join(File.dirname(__FILE__), '.synvert') }
7
- before { Core::Configuration.instance.set :default_snippets_path, default_snippets_path }
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
 
10
- it 'git clones snippets' do
11
- expect(Snippet).to receive(:system).with("git clone https://github.com/xinminlabs/synvert-snippets.git #{default_snippets_path}")
12
- Snippet.sync
11
+ describe '.fetch_core_version' do
12
+ it 'gets remote version' do
13
+ stub_request(:get, 'https://rubygems.org/api/v1/versions/synvert-core.json').to_return(
14
+ body: '[{"number":"0.4.2"}]'
15
+ )
16
+ expect(Snippet.fetch_core_version).to eq '0.4.2'
13
17
  end
18
+ end
14
19
 
15
- it 'git pull snippets' do
16
- FileUtils.mkdir default_snippets_path
17
- expect(Snippet).to receive(:system).with("git pull --rebase")
18
- Snippet.sync
20
+ describe 'sync' do
21
+ it 'git clones snippets' do
22
+ expect(Kernel).to receive(:system).with(
23
+ "git clone https://github.com/xinminlabs/synvert-snippets.git #{snippets_path}"
24
+ )
25
+ snippet.sync
19
26
  end
20
- end
21
27
 
22
- describe "fetch_core_version" do
23
- it 'gets remote version' do
24
- stub_request(:get, "https://rubygems.org/api/v1/versions/synvert-core.json").
25
- to_return(:body => '[{"number":"0.4.2"}]')
26
- expect(Snippet.fetch_core_version).to eq "0.4.2"
28
+ it 'git pull snippets' do
29
+ FileUtils.mkdir snippets_path
30
+ expect(Kernel).to receive(:system).with('git pull --rebase')
31
+ snippet.sync
32
+ FileUtils.cd File.dirname(__FILE__)
27
33
  end
28
34
  end
29
35
  end
data/synvert.gemspec CHANGED
@@ -1,27 +1,29 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
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 = "synvert"
8
+ spec.name = 'synvert'
8
9
  spec.version = Synvert::VERSION
9
- spec.authors = ["Richard Huang"]
10
- spec.email = ["flyerhzm@gmail.com"]
11
- spec.description = %q{synvert is used to convert ruby code to better syntax.}
12
- spec.summary = %q{synvert = syntax + convert.}
13
- spec.homepage = "https://github.com/xinminlabs/synvert"
14
- spec.license = "MIT"
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 = ["lib"]
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 "synvert-core", ">= 0.5.3"
23
+ spec.add_runtime_dependency 'synvert-core', '>= 0.20.1'
22
24
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rspec"
26
- spec.add_development_dependency "webmock"
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.9.0
4
+ version: 0.12.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: 2015-10-23 00:00:00.000000000 Z
11
+ date: 2021-03-01 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.5.3
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.5.3
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: '1.3'
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: '1.3'
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
- rubyforge_project:
127
- rubygems_version: 2.4.5.1
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: