synvert-core 0.6.2 → 0.6.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: 079eed43515b9c0ced48b90c9b7d7fab17e7872e
4
- data.tar.gz: 3200bedd4b2f1311b5ce2ec826deac323bb08be0
3
+ metadata.gz: bccfebdd70bca3e49d4fd8cf7ca2fb766cdc8d2c
4
+ data.tar.gz: 40b8ff41f248de2a48a289ceaaf00303d3f78c14
5
5
  SHA512:
6
- metadata.gz: ed6c1b35b071e790eb80591651a714543176a94c5b904d22f1cf32dfaf8f554a16f75b41f4d0936b229258f815154d63c79ec96c647b3511a0b48f914e48da22
7
- data.tar.gz: 0aa34e7146a19118beb3cc0670bb324d6504b9774f9453682154498221e429a4aed3916a5065f28ce90e9dd74a31d7184a8da8867bfd6cec594f739b5a86d5c2
6
+ metadata.gz: 1724274f0715e0a0b523ed0f4985c7665c6a8deee24244378eabd5b934d1a895742a3fc3bc0bc33ba637ad5110d75afae77091857df895f5aacc0d3721c978df
7
+ data.tar.gz: 2578b1a620f8798376fcf4868e2cfce426b6552426dd28ae3fd34bcc157d0223fed65ad7eb7966b2ad19f037ff527bd25f49eca4182c1594f276786f5de6df5e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.6.3
4
+
5
+ * Rewriter.available always returns a hash
6
+
3
7
  ## 0.6.2
4
8
 
5
9
  * Support ArgumentsNode in rewritten_source
@@ -49,9 +49,8 @@ module Synvert::Core
49
49
  # @param rewriter [Synvert::Core::Rewriter] the rewriter to register.
50
50
  def register(group, name, rewriter)
51
51
  group, name = group.to_s, name.to_s
52
- @rewriters ||= {}
53
- @rewriters[group] ||= {}
54
- @rewriters[group][name] = rewriter
52
+ rewriters[group] ||= {}
53
+ rewriters[group][name] = rewriter
55
54
  end
56
55
 
57
56
  # Fetch a rewriter by group and name.
@@ -63,7 +62,7 @@ module Synvert::Core
63
62
  def fetch(group, name)
64
63
  group, name = group.to_s, name.to_s
65
64
  if exist? group, name
66
- @rewriters[group][name]
65
+ rewriters[group][name]
67
66
  else
68
67
  raise RewriterNotFound.new "Rewriter #{group} #{name} not found"
69
68
  end
@@ -78,7 +77,7 @@ module Synvert::Core
78
77
  def call(group, name)
79
78
  group, name = group.to_s, name.to_s
80
79
  if exist? group, name
81
- rewriter = @rewriters[group][name]
80
+ rewriter = rewriters[group][name]
82
81
  rewriter.process
83
82
  rewriter
84
83
  else
@@ -93,7 +92,7 @@ module Synvert::Core
93
92
  # @return [Boolean] true if the rewriter exist.
94
93
  def exist?(group, name)
95
94
  group, name = group.to_s, name.to_s
96
- if @rewriters && @rewriters[group] && @rewriters[group][name]
95
+ if rewriters[group] && rewriters[group][name]
97
96
  true
98
97
  else
99
98
  false
@@ -104,12 +103,18 @@ module Synvert::Core
104
103
  #
105
104
  # @return [Hash<String, Hash<String, Rewriter>>]
106
105
  def availables
107
- @rewriters
106
+ rewriters
108
107
  end
109
108
 
110
109
  # Clear all registered rewriters.
111
110
  def clear
112
- @rewriters.clear if @rewriters
111
+ rewriters.clear
112
+ end
113
+
114
+ private
115
+
116
+ def rewriters
117
+ @rewriters ||= {}
113
118
  end
114
119
  end
115
120
 
@@ -35,26 +35,5 @@ module Synvert::Core
35
35
  .sub(/^\[(.*)\]$/) { $1 }
36
36
  .sub(/^{(.*)}$/) { $1 }
37
37
  end
38
-
39
- # Set current_node to node and process.
40
- #
41
- # @param node [Parser::AST::Node] node set to current_node
42
- # @yield process
43
- def process_with_node(node)
44
- self.current_node = node
45
- yield
46
- self.current_node = node
47
- end
48
-
49
- # Set current_node properly, process and set current_node back to original current_node.
50
- #
51
- # @param node [Parser::AST::Node] node set to current_node
52
- # @yield process
53
- def process_with_other_node(node)
54
- original_node = self.current_node
55
- self.current_node = node
56
- yield
57
- self.current_node = original_node
58
- end
59
38
  end
60
39
  end
@@ -119,6 +119,27 @@ module Synvert::Core
119
119
  @current_node
120
120
  end
121
121
 
122
+ # Set current_node to node and process.
123
+ #
124
+ # @param node [Parser::AST::Node] node set to current_node
125
+ # @yield process
126
+ def process_with_node(node)
127
+ self.current_node = node
128
+ yield
129
+ self.current_node = node
130
+ end
131
+
132
+ # Set current_node properly, process and set current_node back to original current_node.
133
+ #
134
+ # @param node [Parser::AST::Node] node set to current_node
135
+ # @yield process
136
+ def process_with_other_node(node)
137
+ original_node = self.current_node
138
+ self.current_node = node
139
+ yield
140
+ self.current_node = original_node
141
+ end
142
+
122
143
  #######
123
144
  # DSL #
124
145
  #######
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.6.2"
5
+ VERSION = "0.6.3"
6
6
  end
7
7
  end
@@ -45,31 +45,5 @@ module Synvert::Core
45
45
  expect(dummy_instance.strip_brackets("(123]")).to eq "(123]"
46
46
  end
47
47
  end
48
-
49
- describe '#process_with_node' do
50
- it 'resets current_node' do
51
- node1 = double()
52
- node2 = double()
53
- instance.process_with_node(node1) do
54
- instance.current_node = node2
55
- expect(instance.current_node).to eq node2
56
- end
57
- expect(instance.current_node).to eq node1
58
- end
59
- end
60
-
61
- describe '#process_with_other_node' do
62
- it 'resets current_node' do
63
- node1 = double()
64
- node2 = double()
65
- node3 = double()
66
- instance.current_node = node1
67
- instance.process_with_other_node(node2) do
68
- instance.current_node = node3
69
- expect(instance.current_node).to eq node3
70
- end
71
- expect(instance.current_node).to eq node1
72
- end
73
- end
74
48
  end
75
49
  end
@@ -219,5 +219,31 @@ end
219
219
  expect(instance.instance_variable_get :@actions).to eq [action3]
220
220
  end
221
221
  end
222
+
223
+ describe '#process_with_node' do
224
+ it 'resets current_node' do
225
+ node1 = double()
226
+ node2 = double()
227
+ instance.process_with_node(node1) do
228
+ instance.current_node = node2
229
+ expect(instance.current_node).to eq node2
230
+ end
231
+ expect(instance.current_node).to eq node1
232
+ end
233
+ end
234
+
235
+ describe '#process_with_other_node' do
236
+ it 'resets current_node' do
237
+ node1 = double()
238
+ node2 = double()
239
+ node3 = double()
240
+ instance.current_node = node1
241
+ instance.process_with_other_node(node2) do
242
+ instance.current_node = node3
243
+ expect(instance.current_node).to eq node3
244
+ end
245
+ expect(instance.current_node).to eq node1
246
+ end
247
+ end
222
248
  end
223
249
  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.6.2
4
+ version: 0.6.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-09-01 00:00:00.000000000 Z
11
+ date: 2014-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -176,4 +176,3 @@ test_files:
176
176
  - spec/synvert/core/rewriter/scope_spec.rb
177
177
  - spec/synvert/core/rewriter/warning_spec.rb
178
178
  - spec/synvert/core/rewriter_spec.rb
179
- has_rdoc: