synvert-core 0.19.0 → 0.20.0
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/.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
|