summaryrefslogtreecommitdiff
path: root/ruby/traverse.rb
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2006-09-29 14:54:37 +0000
committerRafael H. Schloming <rhs@apache.org>2006-09-29 14:54:37 +0000
commitce57f0694a13529ab6feb8d10a7f4c8935368bb0 (patch)
tree87dcebe88c2bfc5902804bebc1405d019ffe29f9 /ruby/traverse.rb
parent3fedfb514c3d2ce6b9cb02a30465b6bfd3a37cf2 (diff)
downloadqpid-python-ce57f0694a13529ab6feb8d10a7f4c8935368bb0.tar.gz
moved ruby code into a qpid package
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@451317 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'ruby/traverse.rb')
-rw-r--r--ruby/traverse.rb61
1 files changed, 0 insertions, 61 deletions
diff --git a/ruby/traverse.rb b/ruby/traverse.rb
deleted file mode 100644
index 85551a55d5..0000000000
--- a/ruby/traverse.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2006 The Apache Software Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-class Object
-
- public
-
- def traverse()
- traverse! {|o| yield(o); o}
- end
-
- def traverse_children!()
- instance_variables.each {|v|
- value = instance_variable_get(v)
- replacement = yield(value)
- instance_variable_set(v, replacement) unless replacement.equal? value
- }
- end
-
- def traverse!(replacements = {})
- return replacements[__id__] if replacements.has_key? __id__
- replacement = yield(self)
- replacements[__id__] = replacement
- traverse_children! {|o| o.traverse!(replacements) {|c| yield(c)}}
- return replacement
- end
-
-end
-
-class Array
- def traverse_children!()
- map! {|o| yield(o)}
- end
-end
-
-class Hash
- def traverse_children!()
- mods = {}
- each_pair {|k, v|
- key = yield(k)
- value = yield(v)
- mods[key] = value unless key.equal? k and value.equal? v
- delete(k) unless key.equal? k
- }
-
- merge!(mods)
- end
-end