synvert 1.1.0 → 1.1.2
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/lib/synvert/cli.rb +22 -33
- data/lib/synvert/utils.rb +18 -0
- data/lib/synvert/version.rb +1 -1
- data/lib/synvert.rb +1 -0
- data/spec/synvert/snippet_spec.rb +1 -1
- data/spec/synvert/utils_spec.rb +15 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d1c0fbeb63275ae605f0b709a33ee2b0cae147e503d775316f4aac6fb613d98
|
4
|
+
data.tar.gz: d971eaab50b37a77e7b2949bd65e764a1011424da5ecd7b6cae9f74a1e27c7d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b7f15432a9f4e5da206c155df3129d1b583c23098b506cd34b3ba82f6aab96504671600a2c64510e199ddd67a5a00c060f3b774bd4b24b3eec8335c86128c78
|
7
|
+
data.tar.gz: 294a5b5ee299a9e7702a4f0b17d883ddc253d5a8978c609f12d2246ae67489ab7442d1536d34961aec586c58e540537f2c9750d2cb01884c781841d4893ceb1a
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/synvert/cli.rb
CHANGED
@@ -47,12 +47,12 @@ module Synvert
|
|
47
47
|
execute_snippet(@options[:execute_command])
|
48
48
|
when 'test'
|
49
49
|
read_rewriters
|
50
|
-
|
51
|
-
test_snippet(
|
50
|
+
rewriter = eval_snippet(@options[:snippet_name])
|
51
|
+
test_snippet(rewriter)
|
52
52
|
when 'run'
|
53
53
|
read_rewriters
|
54
|
-
|
55
|
-
run_snippet(
|
54
|
+
rewriter = eval_snippet(@options[:snippet_name])
|
55
|
+
run_snippet(rewriter)
|
56
56
|
else
|
57
57
|
# nothing to do
|
58
58
|
end
|
@@ -233,41 +233,38 @@ module Synvert
|
|
233
233
|
end
|
234
234
|
end
|
235
235
|
|
236
|
-
#
|
237
|
-
# it can
|
236
|
+
# eval snippet by name
|
237
|
+
# it can eval by explicit snippet name,
|
238
238
|
# or from local path or http url.
|
239
|
-
def
|
239
|
+
def eval_snippet(snippet_name)
|
240
240
|
if /^http/.match?(snippet_name)
|
241
|
-
uri = URI.parse(snippet_name)
|
241
|
+
uri = URI.parse(Utils.format_url(snippet_name))
|
242
242
|
eval(uri.open.read)
|
243
|
-
get_last_snippet_name
|
244
243
|
elsif File.exists?(snippet_name)
|
245
|
-
|
246
|
-
get_last_snippet_name
|
244
|
+
eval(File.read(snippet_name))
|
247
245
|
else
|
248
246
|
require(File.join(default_snippets_home, 'lib', "#{snippet_name}.rb"))
|
249
|
-
snippet_name.split('/')
|
247
|
+
group, name = snippet_name.split('/')
|
248
|
+
Core::Rewriter.fetch(group, name)
|
250
249
|
end
|
251
250
|
end
|
252
251
|
|
253
|
-
#
|
254
|
-
def
|
255
|
-
|
256
|
-
get_last_snippet_name
|
252
|
+
# eval snippet name by user input
|
253
|
+
def eval_snippet_name_by_input(input)
|
254
|
+
eval(input)
|
257
255
|
end
|
258
256
|
|
259
257
|
# run a snippet
|
260
|
-
def run_snippet(
|
258
|
+
def run_snippet(rewriter)
|
259
|
+
rewriter.process
|
261
260
|
if plain_output?
|
262
|
-
puts "===== #{group}/#{name} started ====="
|
263
|
-
rewriter = Core::Rewriter.call group, name
|
261
|
+
puts "===== #{rewriter.group}/#{rewriter.name} started ====="
|
264
262
|
rewriter.warnings.each do |warning|
|
265
263
|
puts '[Warn] ' + warning.message
|
266
264
|
end
|
267
265
|
puts rewriter.todo if rewriter.todo
|
268
|
-
puts "===== #{group}/#{name} done ====="
|
266
|
+
puts "===== #{rewriter.group}/#{rewriter.name} done ====="
|
269
267
|
elsif json_output?
|
270
|
-
rewriter = Core::Rewriter.call group, name
|
271
268
|
output = {
|
272
269
|
affected_files: rewriter.affected_files.union(rewriter.sub_snippets.sum(Set.new, &:affected_files)).to_a,
|
273
270
|
warnings: rewriter.warnings.union(rewriter.sub_snippets.sum([], &:warnings)),
|
@@ -278,8 +275,7 @@ module Synvert
|
|
278
275
|
end
|
279
276
|
|
280
277
|
# test a snippet
|
281
|
-
def test_snippet(
|
282
|
-
rewriter = Core::Rewriter.fetch(group, name)
|
278
|
+
def test_snippet(rewriter)
|
283
279
|
results = rewriter.test
|
284
280
|
rewriter.sub_snippets.each do |sub_snippet|
|
285
281
|
results += sub_snippet.test_results
|
@@ -289,11 +285,11 @@ module Synvert
|
|
289
285
|
|
290
286
|
# execute snippet
|
291
287
|
def execute_snippet(execute_command)
|
292
|
-
|
288
|
+
rewriter = eval_snippet_name_by_input(STDIN.read)
|
293
289
|
if execute_command == 'test'
|
294
|
-
test_snippet(
|
290
|
+
test_snippet(rewriter)
|
295
291
|
else
|
296
|
-
run_snippet(
|
292
|
+
run_snippet(rewriter)
|
297
293
|
end
|
298
294
|
end
|
299
295
|
|
@@ -356,12 +352,5 @@ module Synvert
|
|
356
352
|
def json_output?
|
357
353
|
@options[:format] == 'json'
|
358
354
|
end
|
359
|
-
|
360
|
-
# get the last registered snippet name
|
361
|
-
def get_last_snippet_name
|
362
|
-
group = Rewriter.availables.keys.last
|
363
|
-
name = Rewriter.availables[group].keys.last
|
364
|
-
return group, name
|
365
|
-
end
|
366
355
|
end
|
367
356
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Synvert
|
2
|
+
module Utils
|
3
|
+
class << self
|
4
|
+
def format_url(url)
|
5
|
+
convert_to_github_raw_url(url)
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def convert_to_github_raw_url(url)
|
11
|
+
if url.include?('//github.com/')
|
12
|
+
url = url.sub('//github.com/', '//raw.githubusercontent.com/').sub('/blob/', '/')
|
13
|
+
end
|
14
|
+
url
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/synvert/version.rb
CHANGED
data/lib/synvert.rb
CHANGED
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
module Synvert
|
6
6
|
describe Snippet do
|
7
|
-
let(:snippets_path) { File.join(File.dirname(__FILE__), '.synvert') }
|
7
|
+
let(:snippets_path) { File.join(File.dirname(__FILE__), '.synvert-ruby') }
|
8
8
|
let(:snippet) { Snippet.new(snippets_path) }
|
9
9
|
after { FileUtils.rmdir(snippets_path) if File.exist?(snippets_path) }
|
10
10
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
module Synvert
|
6
|
+
RSpec.describe Utils do
|
7
|
+
describe '.format_url' do
|
8
|
+
it 'converts github url to github raw url' do
|
9
|
+
url = 'https://github.com/xinminlabs/synvert-snippets-ruby/blob/main/lib/ruby/map_and_flatten_to_flat_map.rb'
|
10
|
+
raw_url = 'https://raw.githubusercontent.com/xinminlabs/synvert-snippets-ruby/main/lib/ruby/map_and_flatten_to_flat_map.rb'
|
11
|
+
expect(described_class.format_url(url)).to eq raw_url
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
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: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: synvert-core
|
@@ -103,9 +103,11 @@ files:
|
|
103
103
|
- lib/synvert.rb
|
104
104
|
- lib/synvert/cli.rb
|
105
105
|
- lib/synvert/snippet.rb
|
106
|
+
- lib/synvert/utils.rb
|
106
107
|
- lib/synvert/version.rb
|
107
108
|
- spec/spec_helper.rb
|
108
109
|
- spec/synvert/snippet_spec.rb
|
110
|
+
- spec/synvert/utils_spec.rb
|
109
111
|
- synvert-ruby.gemspec
|
110
112
|
homepage: https://github.com/xinminlabs/synvert-ruby
|
111
113
|
licenses:
|
@@ -126,10 +128,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
128
|
- !ruby/object:Gem::Version
|
127
129
|
version: '0'
|
128
130
|
requirements: []
|
129
|
-
rubygems_version: 3.3.
|
131
|
+
rubygems_version: 3.3.22
|
130
132
|
signing_key:
|
131
133
|
specification_version: 4
|
132
134
|
summary: synvert = syntax + convert.
|
133
135
|
test_files:
|
134
136
|
- spec/spec_helper.rb
|
135
137
|
- spec/synvert/snippet_spec.rb
|
138
|
+
- spec/synvert/utils_spec.rb
|