diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bd9e6617827818fd043452c08c606f07b78014a0 (patch) | |
tree | 425bb4c3168f9c02f10150f235d2cb998dcc6108 /scripts/alldcop.rb | |
download | tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'scripts/alldcop.rb')
-rwxr-xr-x | scripts/alldcop.rb | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/scripts/alldcop.rb b/scripts/alldcop.rb new file mode 100755 index 00000000..b15a1fdd --- /dev/null +++ b/scripts/alldcop.rb @@ -0,0 +1,91 @@ +#!/usr/bin/env ruby + +module DCOP + + def dump_all_apps + + `dcop`.split(/\n/).each do + + |app| + + DCOP.dump_app(app) + + end + + end + + def dump_app(app) + + print "<app name=\"#{app}\">\n" + + `dcop #{app}`.split(/\n/).each do + + |object| + + DCOP.dump_object(app, object) + + end + + print "</app>\n" + + end + + def dump_object(app, object) + + object.gsub!(/\(default\)/, '') + object.strip! + + print " <object name=\"#{object}\">\n" unless object == "(default)" + + `dcop #{app} #{object}`.split(/\n/).each do + + |method| + + DCOP.dump_method(app, object, method) + + end + + print " </object>\n" + + end + + def dump_method(app, object, method) + + return_type, method_name, arg_str = method.split(/[ \(]/, 3) + + arg_str.gsub!(/\)$/, '') + + arg_list = arg_str.split(',') + + print " <method name=\"#{method_name}\" return-type=\"#{return_type}\"" + + if arg_list.empty? + + print "/>\n" + return + + else + + print ">\n" + + arg_list.each do + + |arg| + + type, name = arg.split + + print " <parameter name=\"#{name}\" type=\"#{type}\"/>\n" + + end + + print " </method>\n" + + end + + end + + module_function :dump_all_apps, :dump_app, :dump_object, :dump_method + +end + +DCOP.dump_all_apps if __FILE__ == $0 |