From 742a86af2a7e15cebbed6e2ca4f56b87170b9f7d Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 27 Jun 2009 13:41:41 +0200 Subject: version 1.4, from CPAN --- t/Simple.pm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 t/Simple.pm (limited to 't/Simple.pm') diff --git a/t/Simple.pm b/t/Simple.pm new file mode 100644 index 0000000..1b417df --- /dev/null +++ b/t/Simple.pm @@ -0,0 +1,31 @@ +package Simple; +use strict; +use warnings; + +use Class::XPath + get_name => 'name', + get_parent => 'parent', + get_root => 'root', + get_children => 'kids', + get_attr_names => 'param', + get_attr_value => 'param', + get_content => 'data'; + + +sub name { shift->{name} } +sub parent { shift->{parent} } +sub root { local $_=shift; + while($_->{parent}) { $_ = $_->{parent} } + return $_; } +sub param { if (@_ == 2) { return $_[0]->{$_[1]} } + else { return qw(foo bar baz) } } +sub data { shift->{data} } +sub kids { @{shift->{kids}} } + +sub new_root { my $pkg = shift; bless({kids => [], @_}, $pkg); } +sub add_kid { my $self = shift; + push(@{$self->{kids}}, + bless({kids => [], @_, parent => $self }, ref $self)); + $self->{kids}[-1]; } + +1; -- cgit v1.2.3