source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/soap/soap.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 3.8 KB
Line 
1# soap/soap.rb: SOAP4R - Base definitions.
2# Copyright (C) 2000-2004 NAKAMURA, Hiroshi <[email protected]>.
3
4# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5# redistribute it and/or modify it under the same terms of Ruby's license;
6# either the dual license version in 2003, or any later version.
7
8
9require 'xsd/qname'
10require 'xsd/charset'
11
12
13module SOAP
14
15
16VERSION = Version = '1.5.5'
17PropertyName = 'soap/property'
18
19EnvelopeNamespace = 'http://schemas.xmlsoap.org/soap/envelope/'
20EncodingNamespace = 'http://schemas.xmlsoap.org/soap/encoding/'
21LiteralNamespace = 'http://xml.apache.org/xml-soap/literalxml'
22
23NextActor = 'http://schemas.xmlsoap.org/soap/actor/next'
24
25EleEnvelope = 'Envelope'
26EleHeader = 'Header'
27EleBody = 'Body'
28EleFault = 'Fault'
29EleFaultString = 'faultstring'
30EleFaultActor = 'faultactor'
31EleFaultCode = 'faultcode'
32EleFaultDetail = 'detail'
33
34AttrMustUnderstand = 'mustUnderstand'
35AttrEncodingStyle = 'encodingStyle'
36AttrActor = 'actor'
37AttrRoot = 'root'
38AttrArrayType = 'arrayType'
39AttrOffset = 'offset'
40AttrPosition = 'position'
41ValueArray = 'Array'
42
43EleEnvelopeName = XSD::QName.new(EnvelopeNamespace, EleEnvelope).freeze
44EleHeaderName = XSD::QName.new(EnvelopeNamespace, EleHeader).freeze
45EleBodyName = XSD::QName.new(EnvelopeNamespace, EleBody).freeze
46EleFaultName = XSD::QName.new(EnvelopeNamespace, EleFault).freeze
47EleFaultStringName = XSD::QName.new(nil, EleFaultString).freeze
48EleFaultActorName = XSD::QName.new(nil, EleFaultActor).freeze
49EleFaultCodeName = XSD::QName.new(nil, EleFaultCode).freeze
50EleFaultDetailName = XSD::QName.new(nil, EleFaultDetail).freeze
51AttrMustUnderstandName = XSD::QName.new(EnvelopeNamespace, AttrMustUnderstand).freeze
52AttrEncodingStyleName = XSD::QName.new(EnvelopeNamespace, AttrEncodingStyle).freeze
53AttrRootName = XSD::QName.new(EncodingNamespace, AttrRoot).freeze
54AttrArrayTypeName = XSD::QName.new(EncodingNamespace, AttrArrayType).freeze
55AttrOffsetName = XSD::QName.new(EncodingNamespace, AttrOffset).freeze
56AttrPositionName = XSD::QName.new(EncodingNamespace, AttrPosition).freeze
57ValueArrayName = XSD::QName.new(EncodingNamespace, ValueArray).freeze
58
59Base64Literal = 'base64'
60
61SOAPNamespaceTag = 'env'
62XSDNamespaceTag = 'xsd'
63XSINamespaceTag = 'xsi'
64
65MediaType = 'text/xml'
66
67class Error < StandardError; end
68
69class StreamError < Error; end
70class HTTPStreamError < StreamError; end
71class PostUnavailableError < HTTPStreamError; end
72class MPostUnavailableError < HTTPStreamError; end
73
74class ArrayIndexOutOfBoundsError < Error; end
75class ArrayStoreError < Error; end
76
77class RPCRoutingError < Error; end
78class EmptyResponseError < Error; end
79class ResponseFormatError < Error; end
80
81class UnhandledMustUnderstandHeaderError < Error; end
82
83class FaultError < Error
84 attr_reader :faultcode
85 attr_reader :faultstring
86 attr_reader :faultactor
87 attr_accessor :detail
88
89 def initialize(fault)
90 @faultcode = fault.faultcode
91 @faultstring = fault.faultstring
92 @faultactor = fault.faultactor
93 @detail = fault.detail
94 super(self.to_s)
95 end
96
97 def to_s
98 str = nil
99 if @faultstring and @faultstring.respond_to?('data')
100 str = @faultstring.data
101 end
102 str || '(No faultstring)'
103 end
104end
105
106
107module Env
108 def self.getenv(name)
109 ENV[name.downcase] || ENV[name.upcase]
110 end
111
112 use_proxy = getenv('soap_use_proxy') == 'on'
113 HTTP_PROXY = use_proxy ? getenv('http_proxy') : nil
114 NO_PROXY = use_proxy ? getenv('no_proxy') : nil
115end
116
117
118end
119
120
121unless Object.respond_to?(:instance_variable_get)
122 class Object
123 def instance_variable_get(ivarname)
124 instance_eval(ivarname)
125 end
126
127 def instance_variable_set(ivarname, value)
128 instance_eval("#{ivarname} = value")
129 end
130 end
131end
132
133
134unless Kernel.respond_to?(:warn)
135 module Kernel
136 def warn(msg)
137 STDERR.puts(msg + "\n") unless $VERBOSE.nil?
138 end
139 end
140end
Note: See TracBrowser for help on using the repository browser.