nodifier 0.1.3 → 0.1.4

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.
Files changed (3) hide show
  1. data/lib/node.rb +13 -4
  2. data/lib/stopper.rb +13 -0
  3. metadata +4 -3
data/lib/node.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/indentation'
2
+ require File.dirname(__FILE__) + '/stopper'
2
3
  require File.dirname(__FILE__) + '/xml_node_formatter'
3
4
 
4
5
  class Node
@@ -19,11 +20,19 @@ class Node
19
20
  return to_s(indent_level) { |node| node.label }
20
21
  end
21
22
 
22
- s = indent(formatter_block.call(self), indent_level)
23
+ stopper = Stopper.new
24
+ case formatter_block.arity
25
+ when 1:
26
+ s = indent(formatter_block.call(self), indent_level)
27
+ when 2:
28
+ s = indent(formatter_block.call([self, stopper]), indent_level)
29
+ end
23
30
 
24
- @children.each do |child|
25
- s << "\n"
26
- s << child.to_s(indent_level + 1, &formatter_block)
31
+ unless stopper.stopped?
32
+ @children.each do |child|
33
+ s << "\n"
34
+ s << child.to_s(indent_level + 1, &formatter_block)
35
+ end
27
36
  end
28
37
 
29
38
  s
data/lib/stopper.rb ADDED
@@ -0,0 +1,13 @@
1
+ class Stopper
2
+ def initialize
3
+ @stopped = false
4
+ end
5
+
6
+ def stop!
7
+ @stopped = true
8
+ end
9
+
10
+ def stopped?
11
+ @stopped
12
+ end
13
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nodifier
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Tao
@@ -32,6 +32,7 @@ files:
32
32
  - lib/node.rb
33
33
  - lib/node_parser.rb
34
34
  - lib/nodifier.rb
35
+ - lib/stopper.rb
35
36
  - lib/xml_node_formatter.rb
36
37
  has_rdoc: true
37
38
  homepage: http://github.com/dtao/nodifier