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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab295abb4db951a0f0503a8de8b08a3a4ab63a94aebee8013022b9e162008fda
4
- data.tar.gz: 9405de0a2fb2e50eff97377d2781922d0c8799d23e039b42b26bb858efaa8e11
3
+ metadata.gz: 1d1c0fbeb63275ae605f0b709a33ee2b0cae147e503d775316f4aac6fb613d98
4
+ data.tar.gz: d971eaab50b37a77e7b2949bd65e764a1011424da5ecd7b6cae9f74a1e27c7d0
5
5
  SHA512:
6
- metadata.gz: 11f76d1eca1d2f997b7627fc764c9273a0d6c407614c87193d6e29a9130979413779db59d371d46a07c0fcbb619f0ca35340e456a0e20606d91876a5bfa63700
7
- data.tar.gz: d1946063321f8dac68689ef96f0ce4ebef5ebe607c4cadd2440a2955eac8cc02c8ff6c23a5f5a563402a69f46fa003d184f40296faf7d9e53d7d256fa64044e8
6
+ metadata.gz: 0b7f15432a9f4e5da206c155df3129d1b583c23098b506cd34b3ba82f6aab96504671600a2c64510e199ddd67a5a00c060f3b774bd4b24b3eec8335c86128c78
7
+ data.tar.gz: 294a5b5ee299a9e7702a4f0b17d883ddc253d5a8978c609f12d2246ae67489ab7442d1536d34961aec586c58e540537f2c9750d2cb01884c781841d4893ceb1a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.1.2 (2022-10-06)
4
+
5
+ * Convert github url to github raw url
6
+
7
+ ## 1.1.1 (2022-10-05)
8
+
9
+ * Fix get_last_snippet_name, eval snippet to get rewriter
10
+
3
11
  ## 1.1.0 (2022-10-03))
4
12
 
5
13
  * Fix sub snippet not found
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- synvert (1.1.0)
4
+ synvert (1.1.2)
5
5
  synvert-core (>= 1.9.2)
6
6
 
7
7
  GEM
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
- group, name = get_snippet_name(@options[:snippet_name])
51
- test_snippet(group, name)
50
+ rewriter = eval_snippet(@options[:snippet_name])
51
+ test_snippet(rewriter)
52
52
  when 'run'
53
53
  read_rewriters
54
- group, name = get_snippet_name(@options[:snippet_name])
55
- run_snippet(group, name)
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
- # get snippet name
237
- # it can get from explicit snippet name,
236
+ # eval snippet by name
237
+ # it can eval by explicit snippet name,
238
238
  # or from local path or http url.
239
- def get_snippet_name(snippet_name)
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
- require(snippet_name)
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
- # get snippet name by user inputs
254
- def get_snippet_name_by_input(input)
255
- rewriter = eval(input)
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(group, name)
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(group, name)
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
- group, name = get_snippet_name_by_input(STDIN.read)
288
+ rewriter = eval_snippet_name_by_input(STDIN.read)
293
289
  if execute_command == 'test'
294
- test_snippet(group, name)
290
+ test_snippet(rewriter)
295
291
  else
296
- run_snippet(group, name)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Synvert
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.2'
5
5
  end
data/lib/synvert.rb CHANGED
@@ -6,5 +6,6 @@ require 'synvert/core'
6
6
 
7
7
  module Synvert
8
8
  autoload :CLI, 'synvert/cli'
9
+ autoload :Utils, 'synvert/utils'
9
10
  autoload :Snippet, 'synvert/snippet'
10
11
  end
@@ -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.0
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-03 00:00:00.000000000 Z
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.7
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