diff options
author | dakkar <dakkar@sardina.(none)> | 2009-06-27 13:41:41 +0200 |
---|---|---|
committer | dakkar <dakkar@sardina.(none)> | 2009-06-27 13:41:41 +0200 |
commit | 742a86af2a7e15cebbed6e2ca4f56b87170b9f7d (patch) | |
tree | 454d8417975ce972a66308a1e0c93fb11dc8d4a5 /t/Simple.pm | |
download | Class-XPath-master.tar.gz Class-XPath-master.tar.bz2 Class-XPath-master.zip |
Diffstat (limited to 't/Simple.pm')
-rw-r--r-- | t/Simple.pm | 31 |
1 files changed, 31 insertions, 0 deletions
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; |