--- lib/A3C/AAIEduHr.pm 2008/04/29 21:43:36 89 +++ lib/A3C/AAIEduHr.pm 2008/04/30 16:15:25 91 @@ -12,6 +12,8 @@ Pull varios stuff from XML at L and cache it as JSON on disk +=head1 METHODS + =cut #use base 'Jifty::Object'; @@ -21,6 +23,12 @@ use File::Slurp; use JSON::XS; +=head2 vocabulary + + valid are A3C::AAIEduHr->vocabulary('hrEdu001'), + +=cut + sub vocabulary { my $self = shift; @@ -53,7 +61,9 @@ my $data; if ( ! -e $data_path ) { - my $rules = XML::Rules->new( rules => [ + my $rules = XML::Rules->new( + stripspaces => 8, + rules => [ _default => sub { my ($tag_name, $tag_hash, $context, $parent_data) = @_; warn "_default $tag_name ",dump( $tag_hash ); @@ -62,7 +72,13 @@ vocabulary => 'no content', vocabularyentry => sub { die "no key attribute?" unless defined( $_[1]->{key} ); - '@' . $_[0] => $_[1]->{key}; + my $v = { + display => $_[1]->{_content}, + value => $_[1]->{key}, + }; + # if same, just store key + $v = $_[1]->{key} if ( $v->{display} eq $v->{value} ); + '@' . $_[0] => $v; }, ]); $data = $rules->parsefile( $xml_path ) @@ -77,7 +93,7 @@ Jifty->log->info("loaded dump from $data_path"); } - warn '## ',ref($data),' = ',dump($data); +# warn '## ',ref($data),' = ',dump($data); die "data not for for $name" unless $data->{name} eq $name; warn "no vocabularyentry for $name from $data_path" unless defined( $data->{vocabularyentry} );