~ubuntu-branches/ubuntu/saucy/ruby-xmlparser/saucy

« back to all changes in this revision

Viewing changes to .pc/replaces_gt_symbol_by_enconded_version.patch/lib/xml/dom2/attr.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-06-16 21:57:51 UTC
  • Revision ID: james.westby@ubuntu.com-20110616215751-b4ymizpvexd6qfm7
Tags: 0.7.2-1
Switch to gem2deb-based packaging.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## -*- Ruby -*-
 
2
## XML::DOM
 
3
## 1998-2001 by yoshidam
 
4
##
 
5
 
 
6
require 'xml/dom2/node'
 
7
require 'xml/dom2/domexception'
 
8
 
 
9
module XML
 
10
  module DOM
 
11
 
 
12
=begin
 
13
== Class XML::DOM::Attr
 
14
 
 
15
=== superclass
 
16
Node
 
17
 
 
18
=end
 
19
    class Attr<Node
 
20
      ## new(name, [text1, text2, ...]) or
 
21
      ## new(name, text1, text2, ...)
 
22
      ##     name:  String
 
23
      ##     text?: String or Node
 
24
 
 
25
=begin
 
26
=== Class Methods
 
27
 
 
28
    --- Attr.new(name = nil, *text)
 
29
 
 
30
create a new Attr.
 
31
=end
 
32
      def initialize(name, *text)
 
33
        super(text)
 
34
        raise "parameter error" if !name
 
35
        @name = nil
 
36
        @prefix = nil
 
37
        @localname = nil
 
38
        @uri = nil
 
39
        @ownerElement = nil
 
40
        if name.is_a?(Array)
 
41
          ## namespaces
 
42
          raise "parameter error" if name.length != 2
 
43
          @localname = name[1]
 
44
          if name[1].index(':')
 
45
            @prefix, @localname = name[1].split(':')
 
46
          end
 
47
          @name = name[1] ## qualified name
 
48
          @uri =  name[0] ## namespace URI
 
49
        else
 
50
          @name = name
 
51
        end
 
52
        @name.freeze
 
53
        @prefix.freeze
 
54
        @localname.freeze
 
55
        @uri.freeze
 
56
      end
 
57
 
 
58
=begin
 
59
=== Methods
 
60
 
 
61
    --- Attr#nodeType()
 
62
 
 
63
[DOM]
 
64
returns the nodeType.
 
65
=end
 
66
      ## [DOM]
 
67
      def nodeType
 
68
        ATTRIBUTE_NODE
 
69
      end
 
70
 
 
71
=begin
 
72
    --- Attr#nodeName()
 
73
 
 
74
[DOM]
 
75
returns the nodeName.
 
76
=end
 
77
      ## [DOM]
 
78
      def nodeName
 
79
        @name
 
80
      end
 
81
 
 
82
=begin
 
83
    --- Attr#nodeValue()
 
84
 
 
85
[DOM]
 
86
returns the nodeValue.
 
87
=end
 
88
      ## [DOM]
 
89
      def nodeValue
 
90
        ret = ""
 
91
        @children.each do |child|
 
92
          ret << child.nodeValue
 
93
        end if @children
 
94
        ret
 
95
      end
 
96
 
 
97
=begin
 
98
    --- Attr#nodeValue=(text)
 
99
 
 
100
[DOM]
 
101
returns the value of this node.
 
102
=end
 
103
      ## [DOM]
 
104
      def nodeValue=(text)
 
105
        self.childNodes = [text]
 
106
      end
 
107
 
 
108
=begin
 
109
    --- Attr#to_s()
 
110
 
 
111
return the string representation of the Attr.
 
112
=end
 
113
      def to_s
 
114
        value = ""
 
115
        nodeValue.scan(/./um) do |c|
 
116
          code = c.unpack("U")[0]
 
117
          if code == 9 || code == 10 || code == 13
 
118
            value << sprintf("&#x%X;", code)
 
119
          elsif c == "&"
 
120
            value << "&amp;"
 
121
          elsif c == "\""
 
122
            value << "&quot;"
 
123
          elsif c == "<"
 
124
            value << "&lt;"
 
125
          else
 
126
            value << c
 
127
          end
 
128
        end
 
129
        "#{@name}=\"#{value}\""
 
130
      end
 
131
 
 
132
=begin
 
133
    --- Attr#dump(depth = 0)
 
134
 
 
135
dump the Attr.
 
136
=end
 
137
      def dump(depth = 0)
 
138
        print ' ' * depth * 2
 
139
        print "// #{self.to_s}\n"
 
140
      end
 
141
 
 
142
=begin
 
143
    --- Attr#cloneNode(deep = true)
 
144
 
 
145
[DOM]
 
146
returns the copy of the Attr.
 
147
=end
 
148
      ## [DOM]
 
149
      def cloneNode(deep = true)
 
150
        super(deep, @name)
 
151
      end
 
152
 
 
153
=begin
 
154
    --- Attr#name()
 
155
 
 
156
[DOM]
 
157
alias of nodeName.
 
158
=end
 
159
      ## [DOM]
 
160
      alias name nodeName
 
161
 
 
162
=begin
 
163
    --- Attr#value()
 
164
 
 
165
alias of nodeValue.
 
166
 
 
167
    --- Attr#value=(value)
 
168
 
 
169
[DOM]
 
170
alias of nodeValue=.
 
171
=end
 
172
      ## [DOM]
 
173
      alias value nodeValue
 
174
      alias value= nodeValue= ##
 
175
 
 
176
      ## [DOM]
 
177
      def specified; @specified; end
 
178
      def specified=(is_specified); @specified = is_specified; end
 
179
 
 
180
      ## [DOM2]
 
181
      def namespaceURI; @uri; end
 
182
 
 
183
      ## [DOM2]
 
184
      def prefix; @prefix; end
 
185
 
 
186
      ## [DOM2]
 
187
      def prefix=(prefix);
 
188
        ## to be checked
 
189
 
 
190
        @ownerElement.removeAttributeNode(self) if @ownerElement
 
191
        @prefix = prefix
 
192
        @name = @prefix + ':' + @localname
 
193
        @ownerElement.setAttributeNode(self) if @ownerElement
 
194
        @prefix.freeze
 
195
        @name.freeze
 
196
      end
 
197
 
 
198
      ## [DOM2]
 
199
      def localname; @localname; end
 
200
 
 
201
      ## [DOM2]
 
202
      def ownerElement; @ownerElement; end
 
203
      def ownerElement=(elem); @ownerElement = elem; end
 
204
 
 
205
      def _checkNode(node)
 
206
        unless node.nodeType == TEXT_NODE ||
 
207
            node.nodeType == ENTITY_REFERENCE_NODE
 
208
          raise DOMException.new(DOMException::HIERARCHY_REQUEST_ERR)
 
209
        end
 
210
      end
 
211
    end
 
212
  end
 
213
end