summaryrefslogtreecommitdiff
path: root/qpid/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
commit5b19a8a75d9a8b1e831fdbc3795a60bb9d2aa10a (patch)
treeaa99fcfcd6d2e273662671f10f58adb580e93052 /qpid/ruby/traverse.rb
parent2cf42062c6e6ea1814225218aca63b36439ab3c8 (diff)
downloadqpid-python-5b19a8a75d9a8b1e831fdbc3795a60bb9d2aa10a.tar.gz
moved ruby code into a qpid package
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@451317 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/ruby/traverse.rb')
-rw-r--r--qpid/ruby/traverse.rb61
1 files changed, 0 insertions, 61 deletions
diff --git a/qpid/ruby/traverse.rb b/qpid/ruby/traverse.rb
deleted file mode 100644
index 85551a55d5..0000000000
--- a/qpid/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