~ubuntu-branches/ubuntu/intrepid/ruby1.9/intrepid-updates

« back to all changes in this revision

Viewing changes to lib/soap/baseData.rb

  • Committer: Bazaar Package Importer
  • Author(s): akira yamada
  • Date: 2005-09-21 13:16:19 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050921131619-qhlm5e5pz3bvsh2g
Tags: 1.9.0+20050921-1
* akira yamada <akira@debian.org>
- new upstream snapshot. (2005-09-21)
    - [security] JVN#62914675 CVE-2005-2337
        - preserve safe level in the environment where a method is defined.
        - prohibit calling tainted method (>2) when $SAFE == 0.
- removed debian/patches/802_workaround_for_send.dpatch:
    - the patch is in upstream.
- debian/control: build-depends on libreadline5-dev.  (closes: #326333)

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
  attr_accessor :definedtype
45
45
 
46
46
  def initialize(*arg)
47
 
    super(*arg)
 
47
    super
48
48
    @encodingstyle = nil
49
 
    @elename = XSD::QName.new
 
49
    @elename = XSD::QName::EMPTY
50
50
    @id = nil
51
51
    @precedents = []
52
52
    @root = false
82
82
  include SOAP
83
83
 
84
84
  def initialize(*arg)
85
 
    super(*arg)
 
85
    super
86
86
  end
87
87
end
88
88
 
95
95
  include SOAP
96
96
 
97
97
  def initialize(*arg)
98
 
    super(*arg)
 
98
    super
99
99
  end
100
100
end
101
101
 
114
114
  # Override the definition in SOAPBasetype.
115
115
  def initialize(obj = nil)
116
116
    super()
117
 
    @type = XSD::QName.new
 
117
    @type = XSD::QName::EMPTY
118
118
    @refid = nil
119
119
    @obj = nil
120
120
    __setobj__(obj) if obj
178
178
 
179
179
  def initialize
180
180
    super()
181
 
    @type = XSD::QName.new
 
181
    @type = XSD::QName::EMPTY
182
182
  end
183
183
 
184
184
  def referred
399
399
 
400
400
  def initialize(type = nil)
401
401
    super()
402
 
    @type = type || XSD::QName.new
 
402
    @type = type || XSD::QName::EMPTY
403
403
    @array = []
404
404
    @data = []
405
405
  end
470
470
  end
471
471
 
472
472
  def each
473
 
    for i in 0..(@array.length - 1)
474
 
      yield(@array[i], @data[i])
 
473
    idx = 0
 
474
    while idx < @array.length
 
475
      yield(@array[idx], @data[idx])
 
476
      idx += 1
475
477
    end
476
478
  end
477
479
 
529
531
    @position = nil
530
532
    @extraattr = {}
531
533
 
532
 
    @qualified = false
 
534
    @qualified = nil
533
535
 
534
536
    @array = []
535
537
    @data = []
598
600
  end
599
601
 
600
602
  def each
601
 
    for i in 0..(@array.length - 1)
602
 
      yield(@array[i], @data[i])
 
603
    idx = 0
 
604
    while idx < @array.length
 
605
      yield(@array[idx], @data[idx])
 
606
      idx += 1
603
607
    end
604
608
  end
605
609
 
737
741
        " does not match rank: #{@rank}")
738
742
    end
739
743
 
740
 
    for i in 0..(idxary.size - 1)
741
 
      if idxary[i] + 1 > @size[i]
742
 
        @size[i] = idxary[i] + 1
 
744
    idx = 0
 
745
    while idx < idxary.size
 
746
      if idxary[idx] + 1 > @size[idx]
 
747
        @size[idx] = idxary[idx] + 1
743
748
      end
 
749
      idx += 1
744
750
    end
745
751
 
746
752
    data = retrieve(idxary[0, idxary.size - 1])
747
753
    data[idxary.last] = value
748
754
 
749
755
    if value.is_a?(SOAPType)
750
 
      value.elename = value.elename.dup_name('item')
751
 
      
 
756
      value.elename = ITEM_NAME
752
757
      # Sync type
753
758
      unless @type.name
754
759
        @type = XSD::QName.new(value.type.namespace,
755
760
          SOAPArray.create_arytype(value.type.name, @rank))
756
761
      end
757
 
 
758
 
      unless value.type
759
 
        value.type = @type
760
 
      end
 
762
      value.type ||= @type
761
763
    end
762
764
 
763
765
    @offset = idxary
787
789
        deep_map(ele, &block)
788
790
      else
789
791
        new_obj = block.call(ele)
790
 
        new_obj.elename = new_obj.elename.dup_name('item')
 
792
        new_obj.elename = ITEM_NAME
791
793
        new_obj
792
794
      end
793
795
    end
815
817
  def soap2array(ary)
816
818
    traverse_data(@data) do |v, *position|
817
819
      iteary = ary
818
 
      for rank in 1..(position.size - 1)
 
820
      rank = 1
 
821
      while rank < position.size
819
822
        idx = position[rank - 1]
820
823
        if iteary[idx].nil?
821
824
          iteary = iteary[idx] = Array.new
822
825
        else
823
826
          iteary = iteary[idx]
824
827
        end
 
828
        rank += 1
825
829
      end
826
830
      if block_given?
827
831
        iteary[position.last] = yield(v)
837
841
 
838
842
private
839
843
 
 
844
  ITEM_NAME = XSD::QName.new(nil, 'item')
 
845
 
840
846
  def retrieve(idxary)
841
847
    data = @data
842
 
    for rank in 1..(idxary.size)
 
848
    rank = 1
 
849
    while rank <= idxary.size
843
850
      idx = idxary[rank - 1]
844
851
      if data[idx].nil?
845
852
        data = data[idx] = Array.new
846
853
      else
847
854
        data = data[idx]
848
855
      end
 
856
      rank += 1
849
857
    end
850
858
    data
851
859
  end
852
860
 
853
861
  def traverse_data(data, rank = 1)
854
 
    for idx in 0..(ranksize(rank) - 1)
 
862
    idx = 0
 
863
    while idx < ranksize(rank)
855
864
      if rank < @rank
856
865
        traverse_data(data[idx], rank + 1) do |*v|
857
866
          v[1, 0] = idx
860
869
      else
861
870
        yield(data[idx], idx)
862
871
      end
 
872
      idx += 1
863
873
    end
864
874
  end
865
875