~ubuntu-branches/ubuntu/trusty/ruby1.9/trusty

« back to all changes in this revision

Viewing changes to lib/wsdl/param.rb

  • Committer: Bazaar Package Importer
  • Author(s): Stephan Hermann
  • Date: 2008-01-24 11:42:29 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20080124114229-jw2f87rdxlq6gp11
Tags: 1.9.0.0-2ubuntu1
* Merge from debian unstable, remaining changes:
  - Robustify check for target_os, fixing build failure on lpia.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# WSDL4R - WSDL param definition.
2
 
# Copyright (C) 2002, 2003  NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
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
 
 
9
 
require 'wsdl/info'
10
 
 
11
 
 
12
 
module WSDL
13
 
 
14
 
 
15
 
class Param < Info
16
 
  attr_reader :message  # required
17
 
  attr_reader :name     # optional but required for fault.
18
 
  attr_reader :soapbody
19
 
  attr_reader :soapheader
20
 
  attr_reader :soapfault
21
 
 
22
 
  def initialize
23
 
    super
24
 
    @message = nil
25
 
    @name = nil
26
 
    @soapbody = nil
27
 
    @soapheader = []
28
 
    @soapfault = nil
29
 
  end
30
 
 
31
 
  def targetnamespace
32
 
    parent.targetnamespace
33
 
  end
34
 
 
35
 
  def find_message
36
 
    root.message(@message) or raise RuntimeError.new("#{@message} not found")
37
 
  end
38
 
 
39
 
  def soapbody_use
40
 
    if @soapbody
41
 
      @soapbody.use || :literal
42
 
    else
43
 
      raise RuntimeError.new("soap:body not found")
44
 
    end
45
 
  end
46
 
 
47
 
  def parse_element(element)
48
 
    case element
49
 
    when SOAPBodyName
50
 
      o = WSDL::SOAP::Body.new
51
 
      @soapbody = o
52
 
      o
53
 
    when SOAPHeaderName
54
 
      o = WSDL::SOAP::Header.new
55
 
      @soapheader << o
56
 
      o
57
 
    when SOAPFaultName
58
 
      o = WSDL::SOAP::Fault.new
59
 
      @soap_fault = o
60
 
      o
61
 
    when DocumentationName
62
 
      o = Documentation.new
63
 
      o
64
 
    else
65
 
      nil
66
 
    end
67
 
  end
68
 
 
69
 
  def parse_attr(attr, value)
70
 
    case attr
71
 
    when MessageAttrName
72
 
      if value.namespace.nil?
73
 
        value = XSD::QName.new(targetnamespace, value.source)
74
 
      end
75
 
      @message = value
76
 
    when NameAttrName
77
 
      @name = XSD::QName.new(targetnamespace, value.source)
78
 
    else
79
 
      nil
80
 
    end
81
 
  end
82
 
end
83
 
 
84
 
 
85
 
end