/[suikacvs]/messaging/manakai/lib/Message/DOM/Text.pm
Suika

Contents of /messaging/manakai/lib/Message/DOM/Text.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download)
Sat Jul 7 11:11:34 2007 UTC (17 years, 4 months ago) by wakaba
Branch: MAIN
Changes since 1.3: +3 -2 lines
++ manakai/t/ChangeLog	7 Jul 2007 11:11:27 -0000
	* DOM-Element.t: New tests for |create_element|
	and |create_element_ns| are added.

	* DOM-EntityReference.t: New tests for |create_entity_reference|
	are added.

	* DOM-Node.t: Test data for |is_element_content_whitespace|
	are added.

2007-07-07  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/Message/DOM/ChangeLog	7 Jul 2007 11:10:33 -0000
	* CDATASection.pm (is_element_content_whitespace): New.

	* DOMElement.pm (has_attribute): Alpha version.
	(create_element, create_element_ns): Implemented.

	* DocumentType.pm (get_general_entity_node): Alpha version.

	* EntityReference.pm (create_entity_reference): Implemented.

	* ProcessingInstruction.pm (create_processing_instruction): Implemented.

2007-07-07  Wakaba  <wakaba@suika.fam.cx>

1 package Message::DOM::Text;
2 use strict;
3 our $VERSION=do{my @r=(q$Revision: 1.3 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
4 push our @ISA, 'Message::DOM::CharacterData', 'Message::IF::Text';
5 require Message::DOM::DOMCharacterData; ## TODO: Change to new module name
6
7 sub AUTOLOAD {
8 my $method_name = our $AUTOLOAD;
9 $method_name =~ s/.*:://;
10 return if $method_name eq 'DESTROY';
11
12 if ({
13 ## Read-only attributes (trivial accessors)
14 }->{$method_name}) {
15 no strict 'refs';
16 eval qq{
17 sub $method_name (\$) {
18 if (\@_ > 1) {
19 require Carp;
20 Carp::croak (qq<Can't modify read-only attribute>);
21 }
22 return \${\$_[0]}->{$method_name};
23 }
24 };
25 goto &{ $AUTOLOAD };
26 } elsif ({
27 ## Read-write attributes (DOMString, trivial accessors)
28 }->{$method_name}) {
29 no strict 'refs';
30 eval qq{
31 sub $method_name (\$) {
32 if (\@_ > 1) {
33 \${\$_[0]}->{$method_name} = ''.$_[1];
34 }
35 return \${\$_[0]}->{$method_name};
36 }
37 };
38 goto &{ $AUTOLOAD };
39 } else {
40 require Carp;
41 Carp::croak (qq<Can't locate method "$AUTOLOAD">);
42 }
43 } # AUTOLOAD
44
45 ## |Node| attributes
46
47 sub node_name () { '#text' }
48
49 sub node_type { 3 } # TEXT_NODE
50
51 sub is_element_content_whitespace ($;$) {
52 ## TODO:
53 ## TODO: Define this attribute setter for CDATASection
54 return 0;
55 } # is_element_content_whitespace
56
57 package Message::IF::Text;
58
59 package Message::DOM::Document;
60
61 sub create_text_node ($$) {
62 return Message::DOM::Text->____new ($_[0], $_[1]);
63 } # create_text_node
64
65 1;
66 ## License: <http://suika.fam.cx/~wakaba/archive/2004/8/18/license#Perl+MPL>
67 ## $Date: 2007/06/16 15:27:45 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24