paru 0.2.5.11 → 0.2.5.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/paru/filter.rb +23 -21
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9282ef053ebf34c9fa984dfa659ee43a5c709c69
4
- data.tar.gz: bac7b12462299030feb2a1b98bbad33d2b7a58ae
3
+ metadata.gz: 3b04f0bfc217b81b510d46cc2ef83601123b07e2
4
+ data.tar.gz: 4c00811eac2de58979daa5958e1331b60f35da8a
5
5
  SHA512:
6
- metadata.gz: 9b13bcac43915c16c0ca09506917e8dc4dff83474a147b2fed9eece8c3458059c0c5d11aa035c7e96f560a970159c8299c68be6c5e28b22b46e9fed78d9659ad
7
- data.tar.gz: '068180d8606414780dcd121b2bd1f4835eab8042b8258a6cae82dbd3e57762c343f15cb5bc6e680931f03f9978208ba314611e8c72a648364fc0ef75f705ae0e'
6
+ metadata.gz: 42f4816cbcdd7b6fc3e52dae360e1305e1e3546b3b28a69cfe7d8c0b2cc1f29b427e96b5c4be4e3ce381c39fbd25003ab475d0c8125e834e9bd4f6b31708bd05
7
+ data.tar.gz: c3ee0635d919ca0d8aedc0cd2ca790bf05750d21329cdf2340cdd4074474fb770f0f647ef47cd2890144e85704544355a1cb040949d930116d03b9c27c262a47
data/lib/paru/filter.rb CHANGED
@@ -226,7 +226,6 @@ module Paru
226
226
  def initialize(input = $stdin, output = $stdout)
227
227
  @input = input
228
228
  @output = output
229
- @running = false
230
229
  end
231
230
 
232
231
  # Run the filter specified by block. This is a convenience method that
@@ -278,30 +277,22 @@ module Paru
278
277
  end
279
278
  end
280
279
 
281
- @running = true # used to be able to stop filtering immediately
282
280
  @current_node = @document
283
281
 
284
- while @running do
285
- begin
286
- if @current_node.has_been_replaced?
287
- @current_node = @current_node.get_replacement
288
- @filtered_nodes.pop
289
- else
290
- @current_node = nodes_to_filter.next
291
- end
292
-
293
- @filtered_nodes.push @current_node
294
-
295
- instance_eval(&block) # run the actual filter code
296
- rescue StopIteration
297
- @running = false
282
+ nodes_to_filter.each do |node|
283
+ if @current_node.has_been_replaced?
284
+ @current_node = @current_node.get_replacement
285
+ @filtered_nodes.pop
286
+ else
287
+ @current_node = node
298
288
  end
289
+
290
+ @filtered_nodes.push @current_node
291
+
292
+ instance_eval(&block) # run the actual filter code
299
293
  end
300
-
301
- @running = false
302
294
 
303
- @document.meta = @metadata.to_meta
304
- @output.write @document.to_JSON
295
+ write_document
305
296
  end
306
297
 
307
298
  # Specify what nodes to filter with a +selector+. If the +current_node+
@@ -318,10 +309,15 @@ module Paru
318
309
  # This is a great timesaver for filters that only act on a small
319
310
  # number of nodes in a large document, or when you only want to set
320
311
  # the metadata.
312
+ #
313
+ # Note, stop will break off the filter immediately after outputting
314
+ # the document in its current state.
321
315
  def stop!()
322
- @running = false
316
+ write_document
317
+ exit true
323
318
  end
324
319
 
320
+
325
321
  private
326
322
 
327
323
  # The Document node from JSON formatted pandoc document structure
@@ -332,6 +328,12 @@ module Paru
332
328
  def read_document()
333
329
  PandocFilter::Document.from_JSON @input.read
334
330
  end
331
+
332
+ # Write the document being filtered to STDOUT
333
+ def write_document()
334
+ @document.meta = @metadata.to_meta
335
+ @output.write @document.to_JSON
336
+ end
335
337
  end
336
338
 
337
339
  # FilterError is thrown when there is an error during filtering
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5.11
4
+ version: 0.2.5.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Huub de Beer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-20 00:00:00.000000000 Z
11
+ date: 2017-09-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Use Pandoc (http://www.pandoc.org) with ruby
14
14
  email: Huub@heerdebeer.org
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.6.11
110
+ rubygems_version: 2.5.2
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Paru is a ruby wrapper around pandoc