rubytree 0.9.5pre6 → 0.9.5pre7

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.
@@ -8,19 +8,19 @@
8
8
  # Author:: Anupam Sengupta (anupamsg@gmail.com)
9
9
  #
10
10
 
11
- # Copyright (c) 2007, 2008, 2009, 2010, 2012, 2013, 2014 Anupam Sengupta
11
+ # Copyright (c) 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015 Anupam Sengupta
12
12
  #
13
13
  # All rights reserved.
14
14
  #
15
- # Redistribution and use in source and binary forms, with or without modification,
16
- # are permitted provided that the following conditions are met:
15
+ # Redistribution and use in source and binary forms, with or without
16
+ # modification, are permitted provided that the following conditions are met:
17
17
  #
18
18
  # - Redistributions of source code must retain the above copyright notice, this
19
19
  # list of conditions and the following disclaimer.
20
20
  #
21
- # - Redistributions in binary form must reproduce the above copyright notice, this
22
- # list of conditions and the following disclaimer in the documentation and/or
23
- # other materials provided with the distribution.
21
+ # - Redistributions in binary form must reproduce the above copyright notice,
22
+ # this list of conditions and the following disclaimer in the documentation
23
+ # and/or other materials provided with the distribution.
24
24
  #
25
25
  # - Neither the name of the organization nor the names of its contributors may
26
26
  # be used to endorse or promote products derived from this software without
@@ -29,21 +29,22 @@
29
29
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
30
30
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
31
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
33
- # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
36
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
38
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
33
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
39
  #
40
40
 
41
41
  require 'tree'
42
42
 
43
43
  module Tree
44
44
 
45
- # Provides a Binary tree implementation. This node allows only two child nodes (left and right child). It also
46
- # provides direct access to the left or right child, including assignment to the same.
45
+ # Provides a Binary tree implementation. This node allows only two child nodes
46
+ # (left and right child). It also provides direct access to the left or right
47
+ # child, including assignment to the same.
47
48
  #
48
49
  # This inherits from the {Tree::TreeNode} class.
49
50
  #
@@ -64,11 +65,13 @@ module Tree
64
65
  end
65
66
 
66
67
  # @!attribute [rw] right_child
67
- # Right child of the receiver node. Note that right child == last child unless there is only one child.
68
+ # Right child of the receiver node. Note that right child == last child
69
+ # unless there is only one child.
68
70
  #
69
71
  # Returns +nil+ if the right child does not exist.
70
72
  #
71
- # @return [Tree::BinaryTreeNode] The right child, or +nil+ if the right side child does not exist.
73
+ # @return [Tree::BinaryTreeNode] The right child, or +nil+ if the right side
74
+ # child does not exist.
72
75
  #
73
76
  # @see #left_child
74
77
  def right_child
@@ -97,16 +100,19 @@ module Tree
97
100
 
98
101
  # @!group Structure Modification
99
102
 
100
- # Adds the specified child node to the receiver node. The child node's parent is set to be the receiver.
103
+ # Adds the specified child node to the receiver node. The child node's
104
+ # parent is set to be the receiver.
101
105
  #
102
- # The child nodes are added in the order of addition, i.e., the first child added becomes the left node, and the
103
- # second child added will be the second node.
106
+ # The child nodes are added in the order of addition, i.e., the first child
107
+ # added becomes the left node, and the second child added will be the second
108
+ # node.
104
109
  #
105
110
  # If only one child is present, then this will be the left child.
106
111
  #
107
112
  # @param [Tree::BinaryTreeNode] child The child to add.
108
113
  #
109
- # @raise [ArgumentError] This exception is raised if two children are already present.
114
+ # @raise [ArgumentError] This exception is raised if two children are
115
+ # already present.
110
116
  def add(child)
111
117
  raise ArgumentError, "Already has two child nodes" if @children.size == 2
112
118
 
@@ -137,11 +143,15 @@ module Tree
137
143
  # root.add_from_hash({:B => {:D => {}}, [:C, "C content!"] => {}})
138
144
  #
139
145
  # @param [Hash] hashed_subtree The hash of child subtrees.
140
- # @raise [ArgumentError] This exception is raised if hash contains too many children.
146
+ #
147
+ # @raise [ArgumentError] This exception is raised if hash contains too
148
+ # many children.
149
+ # =>
141
150
  # @raise [ArgumentError] This exception is raised if a non-hash is passed.
142
151
  # @return [Array] Array of child nodes added
143
152
  def add_from_hash(hashed_subtree)
144
- raise ArgumentError, "Too many children" if hashed_subtree.size + @children.size > 2
153
+ raise ArgumentError, "Too many children"\
154
+ if hashed_subtree.size + @children.size > 2
145
155
  super(hashed_subtree)
146
156
  end
147
157
 
@@ -179,17 +189,20 @@ module Tree
179
189
 
180
190
  end
181
191
 
182
- # A protected method to allow insertion of child nodes at the specified location.
183
- # Note that this method allows insertion of +nil+ nodes.
192
+ # A protected method to allow insertion of child nodes at the specified
193
+ # location. Note that this method allows insertion of +nil+ nodes.
194
+ #
195
+ # @param [Tree::BinaryTreeNode] child The child to add at the specified
196
+ # location.
184
197
  #
185
- # @param [Tree::BinaryTreeNode] child The child to add at the specified location.
186
198
  # @param [Integer] at_index The location to add the entry at (0 or 1).
187
199
  #
188
200
  # @return [Tree::BinaryTreeNode] The added child.
189
201
  #
190
202
  # @raise [ArgumentError] If the index is out of limits.
191
203
  def set_child_at(child, at_index)
192
- raise ArgumentError "A binary tree cannot have more than two children." unless (0..1).include? at_index
204
+ raise ArgumentError "A binary tree cannot have more than two children."\
205
+ unless (0..1).include? at_index
193
206
 
194
207
  @children[at_index] = child
195
208
  @children_hash[child.name] = child if child # Assign the name mapping
@@ -199,9 +212,11 @@ module Tree
199
212
 
200
213
  protected :set_child_at
201
214
 
202
- # Sets the left child of the receiver node. If a previous child existed, it is replaced.
215
+ # Sets the left child of the receiver node. If a previous child existed, it
216
+ # is replaced.
203
217
  #
204
- # @param [Tree::BinaryTreeNode] child The child to add as the left-side node.
218
+ # @param [Tree::BinaryTreeNode] child The child to add as the left-side
219
+ # node.
205
220
  #
206
221
  # @return [Tree::BinaryTreeNode] The assigned child node.
207
222
  #
@@ -211,9 +226,11 @@ module Tree
211
226
  set_child_at child, 0
212
227
  end
213
228
 
214
- # Sets the right child of the receiver node. If a previous child existed, it is replaced.
229
+ # Sets the right child of the receiver node. If a previous child existed, it
230
+ # is replaced.
215
231
  #
216
- # @param [Tree::BinaryTreeNode] child The child to add as the right-side node.
232
+ # @param [Tree::BinaryTreeNode] child The child to add as the right-side
233
+ # node.
217
234
  #
218
235
  # @return [Tree::BinaryTreeNode] The assigned child node.
219
236
  #
@@ -7,19 +7,19 @@
7
7
  # Author:: Anupam Sengupta (anupamsg@gmail.com)
8
8
  #
9
9
 
10
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014 Anupam Sengupta
10
+ # Copyright (c) 2006-2015 Anupam Sengupta
11
11
  #
12
12
  # All rights reserved.
13
13
  #
14
- # Redistribution and use in source and binary forms, with or without modification,
15
- # are permitted provided that the following conditions are met:
14
+ # Redistribution and use in source and binary forms, with or without
15
+ # modification, are permitted provided that the following conditions are met:
16
16
  #
17
17
  # - Redistributions of source code must retain the above copyright notice, this
18
18
  # list of conditions and the following disclaimer.
19
19
  #
20
- # - Redistributions in binary form must reproduce the above copyright notice, this
21
- # list of conditions and the following disclaimer in the documentation and/or
22
- # other materials provided with the distribution.
20
+ # - Redistributions in binary form must reproduce the above copyright notice,
21
+ # this list of conditions and the following disclaimer in the documentation
22
+ # and/or other materials provided with the distribution.
23
23
  #
24
24
  # - Neither the name of the organization nor the names of its contributors may
25
25
  # be used to endorse or promote products derived from this software without
@@ -28,13 +28,13 @@
28
28
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29
29
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30
30
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
31
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
32
- # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
33
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
34
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
35
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
32
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
34
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
35
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
36
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
38
  #
39
39
 
40
40
  require 'structured_warnings'
@@ -42,7 +42,8 @@ require 'json'
42
42
 
43
43
  require 'tree/version'
44
44
  require 'tree/utils/metrics_methods'
45
+ require 'tree/utils/path_methods'
45
46
  require 'tree/utils/camel_case_method_handler'
46
47
  require 'tree/utils/json_converter'
47
48
  require 'tree/utils/tree_merge_handler'
48
- require 'tree/utils/hash_converter'
49
+ require 'tree/utils/hash_converter'
@@ -4,21 +4,21 @@
4
4
  #
5
5
  # Author:: Anupam Sengupta (anupamsg@gmail.com)
6
6
  #
7
- # Time-stamp: <2013-12-31 20:48:13 anupam>
7
+ # Time-stamp: <2015-05-30 14:14:09 anupam>
8
8
  #
9
- # Copyright (C) 2012, 2013 Anupam Sengupta <anupamsg@gmail.com>
9
+ # Copyright (C) 2012, 2013, 2015 Anupam Sengupta <anupamsg@gmail.com>
10
10
  #
11
11
  # All rights reserved.
12
12
  #
13
- # Redistribution and use in source and binary forms, with or without modification,
14
- # are permitted provided that the following conditions are met:
13
+ # Redistribution and use in source and binary forms, with or without
14
+ # modification, are permitted provided that the following conditions are met:
15
15
  #
16
16
  # - Redistributions of source code must retain the above copyright notice, this
17
17
  # list of conditions and the following disclaimer.
18
18
  #
19
- # - Redistributions in binary form must reproduce the above copyright notice, this
20
- # list of conditions and the following disclaimer in the documentation and/or
21
- # other materials provided with the distribution.
19
+ # - Redistributions in binary form must reproduce the above copyright notice,
20
+ # this list of conditions and the following disclaimer in the documentation
21
+ # and/or other materials provided with the distribution.
22
22
  #
23
23
  # - Neither the name of the organization nor the names of its contributors may
24
24
  # be used to endorse or promote products derived from this software without
@@ -27,13 +27,13 @@
27
27
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28
28
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
29
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
31
- # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
32
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
33
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
34
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
31
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
37
  #
38
38
 
39
39
  require 'structured_warnings'
@@ -49,7 +49,8 @@ module Tree::Utils
49
49
  def method_missing(meth, *args, &blk)
50
50
  if self.respond_to?(new_method_name = to_snake_case(meth))
51
51
  warn DeprecatedMethodWarning,
52
- "The camelCased methods are deprecated. Please use #{new_method_name} instead of #{meth}"
52
+ "The camelCased methods are deprecated. "\
53
+ "Please use #{new_method_name} instead of #{meth}"
53
54
  return send(new_method_name, *args, &blk)
54
55
  else
55
56
  super
@@ -5,22 +5,22 @@
5
5
  #
6
6
  # Author:: Jen Hamon (http://www.github.com/jhamon)
7
7
  #
8
- # Time-stamp: <2015-01-02 15:11:03 anupam>
8
+ # Time-stamp: <2015-05-30 14:19:16 anupam>
9
9
  #
10
10
  # Copyright (C) 2014, 2015 Jen Hamon (http://www.github.com/jhamon) and
11
11
  # Anupam Sengupta <anupamsg@gmail.com>
12
12
  #
13
13
  # All rights reserved.
14
14
  #
15
- # Redistribution and use in source and binary forms, with or without modification,
16
- # are permitted provided that the following conditions are met:
15
+ # Redistribution and use in source and binary forms, with or without
16
+ # modification, are permitted provided that the following conditions are met:
17
17
  #
18
18
  # - Redistributions of source code must retain the above copyright notice, this
19
19
  # list of conditions and the following disclaimer.
20
20
  #
21
- # - Redistributions in binary form must reproduce the above copyright notice, this
22
- # list of conditions and the following disclaimer in the documentation and/or
23
- # other materials provided with the distribution.
21
+ # - Redistributions in binary form must reproduce the above copyright notice,
22
+ # this list of conditions and the following disclaimer in the documentation
23
+ # and/or other materials provided with the distribution.
24
24
  #
25
25
  # - Neither the name of the organization nor the names of its contributors may
26
26
  # be used to endorse or promote products derived from this software without
@@ -29,13 +29,13 @@
29
29
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
30
30
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
31
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
32
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
33
- # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
35
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
36
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
38
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
33
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
36
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
39
 
40
40
  module Tree::Utils::HashConverter
41
41
 
@@ -73,19 +73,30 @@ module Tree::Utils::HashConverter
73
73
  #
74
74
  # # A tree with equivalent structure but with content present for
75
75
  # # nodes A and D could be built from a hash like this:
76
- # {[:A, "A content"] => {:B => {}, :C => {[:D, "D content"] => {}, :E => {}}}}
76
+ # {[:A, "A content"] => {:B => {},
77
+ # :C => { [:D, "D content"] => {},
78
+ # :E => {} }}}
77
79
  #
78
80
  # @author Jen Hamon (http://www.github.com/jhamon)
79
81
  # @param [Hash] hash Hash to build tree from.
80
- # @return [Tree::TreeNode] The {Tree::TreeNode} instance representing the root of your tree.
82
+ #
83
+ # @return [Tree::TreeNode] The {Tree::TreeNode} instance representing the
84
+ # root of your tree.
81
85
  #
82
86
  # @raise [ArgumentError] This exception is raised if a non-Hash is passed.
83
- # @raise [ArgumentError] This exception is raised if the hash has multiple top-level elements.
84
- # @raise [ArgumentError] This exception is raised if the hash contains values that are not hashes or nils.
87
+ #
88
+ # @raise [ArgumentError] This exception is raised if the hash has multiple
89
+ # top-level elements.
90
+ #
91
+ # @raise [ArgumentError] This exception is raised if the hash contains
92
+ # values that are not hashes or nils.
85
93
 
86
94
  def from_hash(hash)
87
- raise ArgumentError, "Argument must be a type of hash" unless hash.is_a?(Hash)
88
- raise ArgumentError, "Hash must have one top-level element" if hash.size != 1
95
+ raise ArgumentError, "Argument must be a type of hash"\
96
+ unless hash.is_a?(Hash)
97
+
98
+ raise ArgumentError, "Hash must have one top-level element"\
99
+ if hash.size != 1
89
100
 
90
101
  root, children = hash.first
91
102
 
@@ -127,7 +138,8 @@ module Tree::Utils::HashConverter
127
138
  # @return [Array] Array of child nodes added
128
139
  # @see ClassMethods#from_hash
129
140
  def add_from_hash(children)
130
- raise ArgumentError, "Argument must be a type of hash" unless children.is_a?(Hash)
141
+ raise ArgumentError, "Argument must be a type of hash"\
142
+ unless children.is_a?(Hash)
131
143
 
132
144
  child_nodes = []
133
145
  children.each do |child, grandchildren|
@@ -145,7 +157,9 @@ module Tree::Utils::HashConverter
145
157
  # root = Tree::TreeNode.new(:root, "root content")
146
158
  # root << Tree::TreeNode.new(:child1, "child1 content")
147
159
  # root << Tree::TreeNode.new(:child2, "child2 content")
148
- # root.to_h # => {[:root, "root content"] => { [:child1, "child1 content"] => {}, [:child2, "child2 content"] => {}}}
160
+ # root.to_h # => {[:root, "root content"] =>
161
+ # { [:child1, "child1 content"] =>
162
+ # {}, [:child2, "child2 content"] => {}}}
149
163
  # @author Jen Hamon (http://www.github.com/jhamon)
150
164
  # @return [Hash] Hash representation of tree.
151
165
  def to_h
@@ -4,21 +4,21 @@
4
4
  #
5
5
  # Author:: Anupam Sengupta (anupamsg@gmail.com)
6
6
  #
7
- # Time-stamp: <2014-10-25 16:16:23 anupam>
7
+ # Time-stamp: <2015-05-30 14:20:20 anupam>
8
8
  #
9
- # Copyright (C) 2012, 2013, 2014 Anupam Sengupta <anupamsg@gmail.com>
9
+ # Copyright (C) 2012, 2013, 2014, 2015 Anupam Sengupta <anupamsg@gmail.com>
10
10
  #
11
11
  # All rights reserved.
12
12
  #
13
- # Redistribution and use in source and binary forms, with or without modification,
14
- # are permitted provided that the following conditions are met:
13
+ # Redistribution and use in source and binary forms, with or without
14
+ # modification, are permitted provided that the following conditions are met:
15
15
  #
16
16
  # - Redistributions of source code must retain the above copyright notice, this
17
17
  # list of conditions and the following disclaimer.
18
18
  #
19
- # - Redistributions in binary form must reproduce the above copyright notice, this
20
- # list of conditions and the following disclaimer in the documentation and/or
21
- # other materials provided with the distribution.
19
+ # - Redistributions in binary form must reproduce the above copyright notice,
20
+ # this list of conditions and the following disclaimer in the documentation
21
+ # and/or other materials provided with the distribution.
22
22
  #
23
23
  # - Neither the name of the organization nor the names of its contributors may
24
24
  # be used to endorse or promote products derived from this software without
@@ -27,13 +27,13 @@
27
27
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28
28
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
29
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
31
- # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
32
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
33
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
34
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
31
+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33
+ # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34
+ # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35
+ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
37
 
38
38
  require 'json'
39
39
 
@@ -54,7 +54,8 @@ module Tree::Utils::JSONConverter
54
54
  #
55
55
  # @return A hash based representation of the JSON
56
56
  #
57
- # Rails uses JSON in ActiveSupport, and all Rails JSON encoding goes through +as_json+.
57
+ # Rails uses JSON in ActiveSupport, and all Rails JSON encoding goes through
58
+ # +as_json+.
58
59
  #
59
60
  # @see #to_json
60
61
  # @see http://stackoverflow.com/a/6880638/273808
@@ -90,7 +91,8 @@ module Tree::Utils::JSONConverter
90
91
  as_json.to_json(*a)
91
92
  end
92
93
 
93
- # ClassMethods for the {JSONConverter} module. Will become class methods in the +include+ target.
94
+ # ClassMethods for the {JSONConverter} module. Will become class methods in
95
+ # the +include+ target.
94
96
  module ClassMethods
95
97
  # Helper method to create a Tree::TreeNode instance from the JSON hash
96
98
  # representation. Note that this method should *NOT* be called directly.