synvert-core 0.19.0 → 0.20.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
2
  SHA256:
3
- metadata.gz: e1248f2c7c2721ea6135b6adb3a5d40afc95497c63d91e8b1b508febb6e7d4b1
4
- data.tar.gz: 9e7f64e254dc25e1bf9894559c7586eb6fb96f3aea07bedd09d71a17d930e0fc
3
+ metadata.gz: 43a4d413d049428517fba9bfe79d57aadec0fa3b98d72a377170888005fe8e50
4
+ data.tar.gz: c0efe87cdfcbac1e837126f6525c45bfaba5213fee0688ca774666a60ba62851
5
5
  SHA512:
6
- metadata.gz: a940b5ea3029c9cbc7b10034e3e6eca05370d4015a4c98af28a1eb8b2a825133627f1d25da20e8986d89f52da00c7056893eb9946aff5a017979bc720d097755
7
- data.tar.gz: 37a51398a51fec8cac11b2b3aae8353f5483bfbd7e9485d1b644b8000dea5186036438f1a01b9f4c0d4ce8b940ab6b40261673eb309a663c6f61df45afcf1b45
6
+ metadata.gz: 8b81c56d7e16caf4d1409e896dd405a6b6c242df8512da45ca83b43040e74edb34a11b1197e90d6d58e05c5225ff695992d52bbaae0862c45e68ad151791e29b
7
+ data.tar.gz: 56f14b2292823f227193faf06c727c819b0adcb684f6d3db2429b2cb8cc01cc7a0f9a2147eb98e7c2ea8c23297dcf415a9c27a59ba5ad02b2dbd187b1d08a393
data/.travis.yml CHANGED
@@ -1,3 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.1
3
+ - 2.3
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
7
+ - 2.7
8
+ - 3.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.20.0 (2021-02-15)
4
+
5
+ * Call snippet in sandbox mode
6
+
3
7
  ## 0.19.0 (2021-02-07)
4
8
 
5
9
  * Simplify `Configuration`
@@ -80,13 +80,18 @@ module Synvert::Core
80
80
  #
81
81
  # @param group [String] the rewriter group.
82
82
  # @param name [String] the rewriter name.
83
+ # @param sandbox [Boolean] if run in sandbox mode, default is false.
83
84
  # @return [Synvert::Core::Rewriter] the registered rewriter.
84
85
  # @raise [Synvert::Core::RewriterNotFound] if the registered rewriter is not found.
85
- def call(group, name)
86
+ def call(group, name, sandbox = false)
86
87
  group, name = group.to_s, name.to_s
87
88
  if exist? group, name
88
89
  rewriter = rewriters[group][name]
89
- rewriter.process
90
+ if sandbox
91
+ rewriter.process_with_sandbox
92
+ else
93
+ rewriter.process
94
+ end
90
95
  rewriter
91
96
  else
92
97
  raise RewriterNotFound, "Rewriter #{group}/#{name} not found"
@@ -165,8 +170,11 @@ module Synvert::Core
165
170
  # It will call the block but doesn't change any file.
166
171
  def process_with_sandbox
167
172
  @sandbox = true
168
- process
169
- @sandbox = false
173
+ begin
174
+ process
175
+ ensure
176
+ @sandbox = false
177
+ end
170
178
  end
171
179
 
172
180
  # Add a warning.
@@ -260,7 +268,7 @@ module Synvert::Core
260
268
  # @param group [String] group of another rewriter.
261
269
  # @param name [String] name of another rewriter.
262
270
  def add_snippet(group, name)
263
- @sub_snippets << self.class.call(group.to_s, name.to_s)
271
+ @sub_snippets << self.class.call(group.to_s, name.to_s, @sandbox)
264
272
  end
265
273
 
266
274
  # Parse helper_method dsl, it defines helper method for [Synvert::Core::Rewriter::Instance].
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '0.19.0'
5
+ VERSION = '0.20.0'
6
6
  end
7
7
  end
@@ -230,6 +230,12 @@ module Synvert::Core
230
230
  Rewriter.call 'group', 'rewriter'
231
231
  end
232
232
 
233
+ it 'registers and calls rewriter in sandbox mode' do
234
+ rewriter = Rewriter.new 'group', 'rewriter'
235
+ expect(rewriter).to receive(:process_with_sandbox)
236
+ Rewriter.call 'group', 'rewriter', true
237
+ end
238
+
233
239
  it 'raises RewriterNotFound if rewriter not found' do
234
240
  expect { Rewriter.call 'group', 'rewriter' }.to raise_error(RewriterNotFound)
235
241
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-07 00:00:00.000000000 Z
11
+ date: 2021-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser