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 +4 -4
- data/.travis.yml +6 -1
- data/CHANGELOG.md +4 -0
- data/lib/synvert/core/rewriter.rb +13 -5
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/rewriter_spec.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43a4d413d049428517fba9bfe79d57aadec0fa3b98d72a377170888005fe8e50
|
4
|
+
data.tar.gz: c0efe87cdfcbac1e837126f6525c45bfaba5213fee0688ca774666a60ba62851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b81c56d7e16caf4d1409e896dd405a6b6c242df8512da45ca83b43040e74edb34a11b1197e90d6d58e05c5225ff695992d52bbaae0862c45e68ad151791e29b
|
7
|
+
data.tar.gz: 56f14b2292823f227193faf06c727c819b0adcb684f6d3db2429b2cb8cc01cc7a0f9a2147eb98e7c2ea8c23297dcf415a9c27a59ba5ad02b2dbd187b1d08a393
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
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
|
-
|
169
|
-
|
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].
|
data/lib/synvert/core/version.rb
CHANGED
@@ -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.
|
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-
|
11
|
+
date: 2021-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|