Method: REXML::Element#initialize
- Defined in:
- lib/rexml/element.rb
#initialize(arg = UNDEFINED, parent = nil, context = nil) ⇒ Element
:call-seq:
Element.new(name = 'UNDEFINED', parent = nil, context = nil) -> new_element
Element.new(element, parent = nil, context = nil) -> new_element
Returns a new REXML::Element object.
When no arguments are given, returns an element with name 'UNDEFINED':
e = REXML::Element.new # => <UNDEFINED/>
e.class # => REXML::Element
e.name # => "UNDEFINED"
When only argument name is given, returns an element of the given name:
REXML::Element.new('foo') # => <foo/>
When only argument element is given, it must be an REXML::Element object; returns a shallow copy of the given element:
e0 = REXML::Element.new('foo')
e1 = REXML::Element.new(e0) # => <foo/>
When argument parent is also given, it must be an REXML::Parent object:
e = REXML::Element.new('foo', REXML::Parent.new)
e.parent # => #<REXML::Parent @parent=nil, @children=[<foo/>]>
When argument context is also given, it must be a hash representing the context for the element; see Element Context:
e = REXML::Element.new('foo', nil, {raw: :all})
e.context # => {:raw=>:all}
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 |
# File 'lib/rexml/element.rb', line 319 def initialize( arg = UNDEFINED, parent=nil, context=nil ) super(parent) @elements = Elements.new(self) @attributes = Attributes.new(self) @context = context if arg.kind_of? String self.name = arg elsif arg.kind_of? Element self.name = arg. arg.attributes.each_attribute{ |attribute| @attributes << Attribute.new( attribute ) } @context = arg.context end end |