nodifier 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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