synvert-core 0.5.2 → 0.5.3

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
  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