synvert-core 0.5.2 → 0.5.3

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
  SHA1:
3
- metadata.gz: b3826c2b5eaae969299d3b3d05329c69a6b3dc19
4
- data.tar.gz: c3bb0dc79380ad6c76c449ffef5f9addbe997b8f
3
+ metadata.gz: fa1fe37f86bbf786414a8e6f5190599bf5ee1e54
4
+ data.tar.gz: 818ff996234d1fb5400afdd9740c777ee7a3a691
5
5
  SHA512:
6
- metadata.gz: f7f4fc704f75f3bd1c91d201ae6b6f6b82ac9e47899fa17ffd709f56861712166a50de011e6935630762c7002b2d9b9faa560c29aa9032ddc7bceed6e887c5d4
7
- data.tar.gz: b259c712216db4b01ee3702f04a997e8f444b083bcd9580a087d5f608582dffc3d9063a3e916fddc9010649bb33d4da817ef476442c87d0373c5fc1748eda02d
6
+ metadata.gz: 4f12b89003300b961506a631fadb4981877dd49e012866ca742dc5af0f86a71aa2db00c2835939e21da96c95af55b4f71d2dcda55eb5ebb5b038cb32c158bfdd
7
+ data.tar.gz: 4efb84e75b9fb0c313596004b757d78cf40356c8aaae3b8a1d470eabd7f9ef4c92f9e856352ec7e1535db3fad8f0322958a245c9580506a710e129bea5a0eaed
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.5.3
4
+
5
+ * Raise RewriterNotFound if rewriter not found
6
+
3
7
  ## 0.5.2
4
8
 
5
9
  * Add body for :defs node
@@ -46,6 +46,7 @@ module Synvert::Core
46
46
  # @param name [String] the unique rewriter name.
47
47
  # @param rewriter [Synvert::Core::Rewriter] the rewriter to register.
48
48
  def register(group, name, rewriter)
49
+ group, name = group.to_s, name.to_s
49
50
  @rewriters ||= {}
50
51
  @rewriters[group] ||= {}
51
52
  @rewriters[group][name] = rewriter
@@ -56,8 +57,14 @@ module Synvert::Core
56
57
  # @param group [String] rewrtier group.
57
58
  # @param name [String] rewrtier name.
58
59
  # @return [Synvert::Core::Rewriter] the matching rewriter.
60
+ # @raise [Synvert::Core::RewriterNotFound] if the registered rewriter is not found.
59
61
  def fetch(group, name)
60
- @rewriters[group][name]
62
+ group, name = group.to_s, name.to_s
63
+ if exist? group, name
64
+ @rewriters[group][name]
65
+ else
66
+ raise RewriterNotFound.new "Rewriter #{group} #{name} not found"
67
+ end
61
68
  end
62
69
 
63
70
  # Get a registered rewriter by group and name, then process that rewriter.
@@ -67,11 +74,27 @@ module Synvert::Core
67
74
  # @return [Synvert::Core::Rewriter] the registered rewriter.
68
75
  # @raise [Synvert::Core::RewriterNotFound] if the registered rewriter is not found.
69
76
  def call(group, name)
70
- if (rewriter = @rewriters[group][name])
77
+ group, name = group.to_s, name.to_s
78
+ if exist? group, name
79
+ rewriter = @rewriters[group][name]
71
80
  rewriter.process
72
81
  rewriter
73
82
  else
74
- raise RewriterNotFound.new "Rewriter #{group} #{name} not found"
83
+ raise RewriterNotFound.new "Rewriter #{group}/#{name} not found"
84
+ end
85
+ end
86
+
87
+ # Check if one rewriter exist.
88
+ #
89
+ # @param group [String] the rewriter group.
90
+ # @param name [String] the rewriter name.
91
+ # @return [Boolean] true if the rewriter exist.
92
+ def exist?(group, name)
93
+ group, name = group.to_s, name.to_s
94
+ if @rewriters && @rewriters[group] && @rewriters[group][name]
95
+ true
96
+ else
97
+ false
75
98
  end
76
99
  end
77
100
 
@@ -84,7 +107,7 @@ module Synvert::Core
84
107
 
85
108
  # Clear all registered rewriters.
86
109
  def clear
87
- @rewriters.clear
110
+ @rewriters.clear if @rewriters
88
111
  end
89
112
  end
90
113
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.5.2"
5
+ VERSION = "0.5.3"
6
6
  end
7
7
  end
@@ -169,6 +169,21 @@ module Synvert::Core
169
169
  Rewriter.call 'group', 'rewriter'
170
170
  end
171
171
 
172
+ it 'raises RewriterNotFound if rewriter not found' do
173
+ expect { Rewriter.call 'group', 'rewriter' }.to raise_error(RewriterNotFound)
174
+ end
175
+
176
+ context "exist?" do
177
+ it 'returns true if rewriter exists' do
178
+ Rewriter.new 'group', 'rewriter'
179
+ expect(Rewriter.exist? 'group', 'rewriter').to be_truthy
180
+ end
181
+
182
+ it 'returns false if rewriter does not exist' do
183
+ expect(Rewriter.exist? 'group', 'rewriter').to be_falsey
184
+ end
185
+ end
186
+
172
187
  context "available" do
173
188
  it 'lists empty rewriters' do
174
189
  expect(Rewriter.availables).to eq({})
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.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-31 00:00:00.000000000 Z
11
+ date: 2014-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser