From fce73c4f1cb1c3ebed4551e43108f3506bb66f51 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 17 Dec 2006 12:08:23 +0000 Subject: pulizia: si ricomincia (di nuovo...) git-svn-id: svn://luxion/repos/WebCoso/trunk@234 fcb26f47-9200-0410-b104-b98ab5b095f3 --- lib/WebCoso/Collection.pm | 133 --------------------------- lib/WebCoso/Collections.pm | 74 --------------- lib/WebCoso/Config.pm | 176 ----------------------------------- lib/WebCoso/Driver.pm | 19 ---- lib/WebCoso/Pipeline.pm | 18 ---- lib/WebCoso/Pipeline/Base.pm | 43 --------- lib/WebCoso/Pipeline/Id.pm | 8 -- lib/WebCoso/Resource.pm | 183 ------------------------------------- lib/WebCoso/Step.pm | 18 ---- lib/WebCoso/Step/Base.pm | 7 -- lib/WebCoso/Step/ReST/SplitLang.pm | 87 ------------------ lib/WebCoso/Step/ReST/ToXml.pm | 139 ---------------------------- lib/WebCoso/X.pm | 95 ------------------- 13 files changed, 1000 deletions(-) delete mode 100644 lib/WebCoso/Collection.pm delete mode 100644 lib/WebCoso/Collections.pm delete mode 100644 lib/WebCoso/Config.pm delete mode 100644 lib/WebCoso/Driver.pm delete mode 100644 lib/WebCoso/Pipeline.pm delete mode 100644 lib/WebCoso/Pipeline/Base.pm delete mode 100644 lib/WebCoso/Pipeline/Id.pm delete mode 100644 lib/WebCoso/Resource.pm delete mode 100644 lib/WebCoso/Step.pm delete mode 100644 lib/WebCoso/Step/Base.pm delete mode 100644 lib/WebCoso/Step/ReST/SplitLang.pm delete mode 100644 lib/WebCoso/Step/ReST/ToXml.pm delete mode 100644 lib/WebCoso/X.pm (limited to 'lib/WebCoso') diff --git a/lib/WebCoso/Collection.pm b/lib/WebCoso/Collection.pm deleted file mode 100644 index 42442f1..0000000 --- a/lib/WebCoso/Collection.pm +++ /dev/null @@ -1,133 +0,0 @@ -package WebCoso::Collection; -use strict; -use warnings; -use Class::Std; -use Scalar::Util 'weaken'; -use List::MoreUtils 'any'; -use WebCoso::Config; - -{ -my %names_of :ATTR( :get ); -my %parents_of :ATTR( :get ); -my %children_of :ATTR( :get ); -my %resources_of :ATTR( :init_arg :get ); - -sub BUILD { - my ($self,$ident,$args_ref)=@_; - - my $names=$args_ref->{name}; - # trasformo un nome semplice in un nome "per qualsiasi lingua" - $names={''=>$names} unless ref($names) eq 'HASH'; - $names_of{$ident}=$names; - - my $parents=$args_ref->{parents} || []; - $parents_of{$ident}=$parents; - $_->add_child($self) for @$parents; - - my $children=$args_ref->{children} || []; - $children_of{$ident}=$children; - $_->add_parent($self) for @$children; - - $resources_of{$ident}=[]; - - WebCoso::Config->add_collection($self); - - return; -} - -sub get_axes { - return 'language'; -} - -sub get_axis_values { - my ($self,$axis_name)=@_; - if ($axis_name eq 'language') { - return grep { $_ } keys %{ $self->get_names() } - } - else { - return; - } -} - -sub get_properties { - my ($self,$axis_name,$axis_value,@rest)=@_; - - if (@rest==0 and $axis_name eq 'language') { - if ( any { $_ eq $axis_value } - keys %{ $self->get_names() } - ) { - return { - name => $self->get_names()->{$axis_value} - }; - } - elsif (exists ${$self->get_names()}{''}) { - return { - name => $self->get_names()->{''} - }; - } - else { - return; - } - } -} - -sub add_child { - my ($self,$child)=@_; - - return if any { $_ eq $child } @{ $self->get_children_ref() }; - - push @{ $self->get_children_ref() },$child; - $child->add_parent($self); - - return; -} -sub add_parent { - my ($self,$parent)=@_; - - return if any { $_ eq $parent } @{ $self->get_parents_ref() }; - - my $weak_parent=$parent; - weaken $weak_parent; - - push @{ $self->get_parents_ref() },$weak_parent; - $parent->add_child($self); - - return; -} -sub add_res { - my ($self, @resources)=@_; - - # creo una tabellina di look-up per evitare i duplicati - # NOTA: le chiavi sono stringhe, non ref, non si può usare per - # pescare gli oggetti - my %res_key; - @res_key{ @{ $self->get_resources_ref() } } = (); - - RESOURCES: - for my $res (@resources) { - next RESOURCES if exists $res_key{$res}; - - push @{ $self->get_resources_ref() }, $res; - $res_key{$res}=undef; - $res->add_coll($self); - } - - return; -} - -sub get_parents { - my ($self)=@_; - return @{ $self->get_parents_ref() }; -} -sub get_children { - my ($self)=@_; - return @{ $self->get_children_ref() }; -} -sub get_resources { - my ($self)=@_; - return @{ $self->get_resources_ref() }; -} - -} - -1; diff --git a/lib/WebCoso/Collections.pm b/lib/WebCoso/Collections.pm deleted file mode 100644 index f0f9815..0000000 --- a/lib/WebCoso/Collections.pm +++ /dev/null @@ -1,74 +0,0 @@ -package WebCoso::Collections; -use strict; -use warnings; -use Class::Std; -use List::MoreUtils 'any'; - -{ -my %collections_of :ATTR( :get ); - -sub BUILD { - my ($self,$ident,$args_ref)=@_; - - $collections_of{$ident} = []; -} - -sub add_collection { - my ($self, $collection)=@_; - - return if any { $_ eq $collection } $self->get_all_collections(); - - push @{ $self->get_collections_ref() }, $collection; -} - -sub get_all_collections { - my ($self)=@_; - return @{ $self->get_collections_ref() }; -} - -sub get_root_collections { - my ($self)=@_; - - return grep { - $_->get_parents() == 0 - } $self->get_all_collections(); -} - -sub get_leaf_collections { - my ($self)=@_; - - return grep { - $_->get_children() == 0 - } $self->get_all_collections(); -} - -sub get_axes { - return 'language'; -} - -sub get_axis_values { - my ($self,$axis_name)=@_; - if ($axis_name eq 'language') { - return $self->_get_languages(); - } - else { - return; - } -} - -sub _get_languages { - my ($self)=@_; - my %langs=(); - - for my $collection ($self->get_all_collections()) { - @langs{ $collection->get_axis_values('language') } = (); - } - - delete $langs{''}; - - return keys %langs; -} - -} - -1; diff --git a/lib/WebCoso/Config.pm b/lib/WebCoso/Config.pm deleted file mode 100644 index 018c3c7..0000000 --- a/lib/WebCoso/Config.pm +++ /dev/null @@ -1,176 +0,0 @@ -package WebCoso::Config; -use strict; -use warnings; -use WebCoso::Collections; -use WebCoso::Pipeline; -use WebCoso::X; -use utf8; - -my @resources; -my $collections=WebCoso::Collections->new(); -my %resource_to_pipeline; -my %name_to_resource; -my %name_to_collection; - -sub read_scalar { - my ($class,$content,$filename)=@_; - $WebCoso::Config::Helpers::FILENAME=$filename; - $content=<<'EOF'.$content; -package WEBCOSO::CONFIG; -no strict; -WebCoso::Config::Helpers->import(); -EOF - eval $content; - if ($@) { - WebCoso::X::ConfigError->throw( - filename => $filename, - nested => $@, - ); - } - my $symbols=\%WEBCOSO::CONFIG::; - for my $name (keys %$symbols) { - my $object=${*{$symbols->{$name}}{SCALAR}}; - my $type=ref($object); - if ($type eq 'WebCoso::Resource') { - $name_to_resource{$name}=$object; - } - elsif ($type eq 'WebCoso::Collection') { - $name_to_collection{$name}=$object; - } - } - return 1; -} - -sub add_resource { - my ($class,$resource)=@_; - push @resources,$resource; -} - -sub get_all_resources { - return @resources; -} - -sub get_res_by_name { - my ($class,$name)=@_; - - if (exists $name_to_resource{$name}) { - return $name_to_resource{$name}; - } - else { - WebCoso::X::NoSuchResource->throw( - resource => $name - ); - } -} - -sub add_collection { - my ($class,$collection)=@_; - $collections->add_collection($collection); -} - -sub get_collections { - return $collections; -} - -sub get_coll_by_name { - my ($class,$name)=@_; - - if (exists $name_to_collection{$name}) { - return $name_to_collection{$name}; - } - else { - WebCoso::X::NoSuchCollection->throw( - collection => $name - ); - } -} - -sub get_pipeline_for { - my ($class, $resource)=@_; - - WebCoso::X::NoSuchResource->throw( - resource => $resource, - ) unless exists $resource_to_pipeline{$resource}; - - return $resource_to_pipeline{$resource}; -} - -sub clear { - @resources=(); - $collections=WebCoso::Collections->new(); - %resource_to_pipeline=(); -} - -package WebCoso::Config::Helpers; -use Path::Class; -use WebCoso::Resource; -use WebCoso::Collection; -use Exporter::Lite; -use vars qw($FILENAME @EXPORT); - -@EXPORT=qw(res coll); - -sub res { - my $dest_filename=pop @_; - my $short_pipeline_name=pop @_; - my @source_files=@_; - - my $config_dir=file($FILENAME)->parent->absolute; - - $dest_filename=file($dest_filename)->absolute($config_dir); - - my @abs_source_files = map { - file($_)->absolute($config_dir); - } @source_files; - - my $pipeline_name="WebCoso::Pipeline::$short_pipeline_name"; - - if (! WebCoso::Pipeline->is_pipeline($pipeline_name)) { - WebCoso::X::NoSuchPipeline->throw( - pipeline => $short_pipeline_name, - ); - }; - - my $resource=WebCoso::Resource->new(); - $resource->set_property(sources=>[@abs_source_files]); - $resource->set_property(destination=>$dest_filename); - - for my $filename (@abs_source_files) { - $resource->set_property( - {filename=>$filename}, - datastream => sub{_open_file($filename)}, - ); - } - - WebCoso::Config->add_resource($resource); - - # brutto! - $resource_to_pipeline{$resource}=$pipeline_name; - - return $resource; -} - -sub coll { - my ($name,$parents,$children,$resources)=@_; - - my $collection=WebCoso::Collection->new({ - name=>$name, - parents=>$parents||[], - children=>$children||[], - resources=>$resources||[], - }); - - return $collection; -} - -sub _open_file { - my ($filename)=@_; - - open my $fh,'<:raw',$filename - or WebCoso::X::OpenError->throw( - filename => $filename, - error => $!); - return $fh; -} - -1; diff --git a/lib/WebCoso/Driver.pm b/lib/WebCoso/Driver.pm deleted file mode 100644 index d5e1db8..0000000 --- a/lib/WebCoso/Driver.pm +++ /dev/null @@ -1,19 +0,0 @@ -package WebCoso::Driver; -use strict; -use warnings; -use WebCoso::Config; - -sub run { - my @resources=WebCoso::Config->get_all_resources(); - - for my $resource (@resources) { - WebCoso::Config->get_pipeline_for($resource)->process($resource,'meta'); - } - for my $resource (@resources) { - WebCoso::Config->get_pipeline_for($resource)->process($resource,'gen'); - } - - return 1; -} - -1; diff --git a/lib/WebCoso/Pipeline.pm b/lib/WebCoso/Pipeline.pm deleted file mode 100644 index b45d431..0000000 --- a/lib/WebCoso/Pipeline.pm +++ /dev/null @@ -1,18 +0,0 @@ -package WebCoso::Pipeline; -use strict; -use warnings; -use Module::Pluggable::Fast - name => '_pipelines', - search => [ 'WebCoso::Pipeline' ], - require => 1; - -my @pipelines=_pipelines(); -my %pipelines; -@pipelines{@pipelines}=(); - -sub is_pipeline { - my ($class,$pipeline_name)=@_; - return exists $pipelines{$pipeline_name}; -} - -1; diff --git a/lib/WebCoso/Pipeline/Base.pm b/lib/WebCoso/Pipeline/Base.pm deleted file mode 100644 index 2402b84..0000000 --- a/lib/WebCoso/Pipeline/Base.pm +++ /dev/null @@ -1,43 +0,0 @@ -package WebCoso::Pipeline::Base; -use strict; -use warnings; -use WebCoso::X; -use WebCoso::Step; -use base 'Class::Data::Inheritable'; - -__PACKAGE__->mk_classdata('_steps'); - -sub set_steps { - my ($class,@steps)=@_; - - my @step_instances=(); - - while (@steps) { - my $step_name=shift @steps; - my $step_init_args=shift @steps; - - my $full_step_name="WebCoso::Step::$step_name"; - if (! WebCoso::Step->is_step($full_step_name)) { - WebCoso::X::NoSuchStep->throw( - pipeline => $class, - step => $_, - ); - } - - push @step_instances,$full_step_name->new($step_init_args); - } - - $class->_steps([@step_instances]); -} - -sub process { - my ($class, $resource,$stage)=@_; - - for my $step (@{$class->_steps()}) { - $step->process($resource,$stage); - } - - return 1; -} - -1; diff --git a/lib/WebCoso/Pipeline/Id.pm b/lib/WebCoso/Pipeline/Id.pm deleted file mode 100644 index bcd5615..0000000 --- a/lib/WebCoso/Pipeline/Id.pm +++ /dev/null @@ -1,8 +0,0 @@ -package WebCoso::Pipeline::Id; -use strict; -use warnings; - -sub process { -} - -1; diff --git a/lib/WebCoso/Resource.pm b/lib/WebCoso/Resource.pm deleted file mode 100644 index 7d462f3..0000000 --- a/lib/WebCoso/Resource.pm +++ /dev/null @@ -1,183 +0,0 @@ -package WebCoso::Resource; -use strict; -use warnings; -use Class::Std; -use Scalar::Util 'weaken'; -use List::MoreUtils 'any'; -#use WebCoso::X; -#use Smart::Comments;$Data::Dumper::Useqq=1; - -{ -my %values_of :ATTR(:default<{}>); -my %propnames_of :ATTR(:default<{}>); -my %axes_of :ATTR(:default<{}>); -my %collections_of :ATTR(:get :default<[]>); - -sub get_axes { - my ($self)=@_; - - return keys %{$axes_of{ident $self}}; -} - -sub get_axis_values { - my ($self,$axis_name)=@_; - - return keys %{$axes_of{ident $self}->{$axis_name}}; -} - -sub set_property { - my $self=shift; - my $axes_spec= (ref($_[0]) eq 'HASH') ? (shift) : {}; - my ($prop_name,$prop_value)=@_; - - $self->_populate_axes_from($axes_spec); - my $key=_genkey($axes_spec); - - $propnames_of{ident $self}->{$prop_name}=undef; - - $values_of{ident $self}->{$prop_name}->{$key}=$prop_value; - - return; -} - -sub get_property { - my $self=shift; - my $axes_spec= (ref($_[0]) eq 'HASH') ? (shift) : {}; - my ($prop_name)=@_; - - ### $self - ### $axes_spec - ### $prop_name - - return unless exists $values_of{ident $self}->{$prop_name}; - my $values_ref=$values_of{ident $self}->{$prop_name}; - - ### $values_ref - - my $req_key=_genkey($axes_spec); - my @keys=sort {($a=~tr/\001//) <=> ($b=~tr/\001//)} keys %$values_ref; - - for my $key (@keys) { - ### testing key: $key - - my $key_rx=_genrx_from_key($key); - - if ($req_key =~ m{$key_rx}) { - return $values_ref->{$key}; - } - } - - return; -} - -sub get_property_fh { - my $self=shift; - my $axes_spec= (ref($_[0]) eq 'HASH') ? (shift) : {}; - my ($prop_name)=@_; - - my $prop_value=$self->get_property($axes_spec,$prop_name); - - return unless defined $prop_value; - - if (ref($prop_value) eq 'CODE') { - $prop_value=$prop_value->(); - } - - if (ref($prop_value)) { # speriamo filehandle... - open my $fh,'<&',$prop_value; # dup in lettura - seek $fh,0,0; - return $fh; - } - else { # speriamo stringa... - my $val="$prop_value"; - open my $fh,'<',\$val; - return $fh; - } -} - -sub get_property_string { - my $self=shift; - my $axes_spec= (ref($_[0]) eq 'HASH') ? (shift) : {}; - my ($prop_name)=@_; - - my $prop_value=$self->get_property($axes_spec,$prop_name); - - return unless defined $prop_value; - - if (ref($prop_value) eq 'CODE') { - $prop_value=$prop_value->(); - } - - if (ref($prop_value)) { # speriamo filehandle... - seek $prop_value,0,0; - return do {local $/;<$prop_value>} - } - else { - return "$prop_value"; - } -} - -sub get_collections { - my ($self)=@_; - - return @{ $self->get_collections_ref() }; -} - -sub add_coll { - my ($self, $collection)=@_; - - return if any { $_ eq $collection } @{ $self->get_collections_ref() }; - - my $weak_collection = $collection; - weaken $weak_collection; - - push @{ $self->get_collections_ref() }, $weak_collection; - - $collection->add_res($self); - - return; -} - -sub _populate_axes_from { - my ($self,$axes_spec)=@_; - - while (my ($axis_name,$axis_value)=each %$axes_spec) { - my $axis_value_set=($axes_of{ident $self}->{$axis_name} ||= {}); - $axis_value_set->{$axis_value}=undef; - } - - return; -} - -sub _genkey { - my ($axes_spec)=@_; - - my $key="\000"; - $key.=join "\000",map {$_."\001".$axes_spec->{$_}} sort keys %$axes_spec; - $key.="\000"; - - ### chiave: $key - - return $key; -} - -sub _genrx_from_key { - my ($key)=@_; - - my (undef,@axes)=split /\000/,$key; - - ### axes form key: \@axes - - my $rx="(?:"; - $rx.=join "\000).*?(?:",map {quotemeta($_)} @axes; - $rx.=")"; - $rx=qr{^\000.*?${rx}(?:\000|$)}; - - ### regexp: $rx - - return $rx; -} - -} - -1; diff --git a/lib/WebCoso/Step.pm b/lib/WebCoso/Step.pm deleted file mode 100644 index 71a4f07..0000000 --- a/lib/WebCoso/Step.pm +++ /dev/null @@ -1,18 +0,0 @@ -package WebCoso::Step; -use strict; -use warnings; -use Module::Pluggable::Fast - name => '_steps', - search => [ 'WebCoso::Step' ], - require => 1; - -my @steps=_steps(); -my %steps; -@steps{@steps}=(); - -sub is_step { - my ($class,$step_name)=@_; - return exists $steps{$step_name}; -} - -1; diff --git a/lib/WebCoso/Step/Base.pm b/lib/WebCoso/Step/Base.pm deleted file mode 100644 index 8e73705..0000000 --- a/lib/WebCoso/Step/Base.pm +++ /dev/null @@ -1,7 +0,0 @@ -package WebCoso::Step::Base; -use strict; -use warnings; -use Class::Std; -use WebCoso::X; - -1; diff --git a/lib/WebCoso/Step/ReST/SplitLang.pm b/lib/WebCoso/Step/ReST/SplitLang.pm deleted file mode 100644 index cdbc109..0000000 --- a/lib/WebCoso/Step/ReST/SplitLang.pm +++ /dev/null @@ -1,87 +0,0 @@ -package WebCoso::Step::ReST::SplitLang; -use strict; -use warnings; -use base 'WebCoso::Step'; -use Class::Std; - -{ - -=head2 Che fa - -Prende il sorgente da {filename=>'sperosiaunosolo'}->datastream, cerca -righe della forma - - ^\s*.. lang:: (\w*) - -raccoglie tutti i C<$1>, e quelle sono le lingue (C<''> sta per 'tutte -le lingue') - -Splitta poi in {language=>'$1'}->rstdoc (stringhe) - -Fa tutto alla prima passata - -=cut - -my %srckey_of :ATTR(:init_arg :get :default); -my %dstkey_of :ATTR(:init_arg :get :default); - -my $lang_re=qr{^\s*\.\.\s+lang::(?:\s+(\w+))?\s*$}; - -sub process { - my ($self,$resource,$stage)=@_; - - return unless $stage eq 'meta'; - - my $srckey=$self->get_srckey(); - my $dstkey=$self->get_dstkey(); - - my $fh=$resource->get_property_fh($srckey); - if (!defined $fh) { - my ($filename)=$resource->get_axis_values('filename'); - $fh=$resource->get_property_fh({filename=>$filename},$srckey); - } - - binmode $fh,':utf8'; - - # raccolgo le lingue usate - my %langs=(''=>undef); - seek $fh,0,0; - while (my $line=<$fh>) { - if ($line =~ m{$lang_re}) { - $langs{$1||''}=undef; - } - } - delete $langs{''}; - seek $fh,0,0; - - if (%langs) { # multilingua: split! - my $curlang='';my %docs=(); - while (my $line=<$fh>) { - if ($line =~ m{$lang_re}) { - $curlang=$1||''; - next; - } - if ($curlang) { - $docs{$curlang}.=$line; - } - else { # 'any', per cui scrivo su tutti - $docs{$_}.=$line for keys %langs; - } - } - # salvo - $resource->set_property({language=>$_},$dstkey=>$docs{$_}) - for keys %langs; - } - else { # monolingua: passa il filehandle - $resource->set_property($dstkey=>$fh); - } - - # rimetto a posto il filehandle - seek $fh,0,0; - - return; -} - -} - -1; diff --git a/lib/WebCoso/Step/ReST/ToXml.pm b/lib/WebCoso/Step/ReST/ToXml.pm deleted file mode 100644 index f5cf5a9..0000000 --- a/lib/WebCoso/Step/ReST/ToXml.pm +++ /dev/null @@ -1,139 +0,0 @@ -package WebCoso::Step::ReST::ToXml; -use strict; -use warnings; -use base 'WebCoso::Step'; -use Class::Std; -use Inline 'Python'; -use XML::LibXML; -use Encode; - -{ - -=head2 Che fa - -prende i {language=>'quelchece'}->rstdoc, li passa a docutils, prende -l'xml, lo passa al parser, e salva il dom in -{language=>'quelchece'}->xmldom - -suppone venga tutto da un solo file - -Fa tutto alla prima passata, e raccatta un po' di meta - -=cut - -my %srckey_of :ATTR(:init_arg :get :default); -my %dstkey_of :ATTR(:init_arg :get :default); - -my $xml_parser=XML::LibXML->new(); -$xml_parser->load_ext_dtd(0); -$xml_parser->clean_namespaces(1); - -sub process { - my ($self,$resource,$stage)=@_; - - return unless $stage eq 'meta'; - - my ($src_path)=$resource->get_axis_values('filename'); - - my $srckey=$self->get_srckey(); - my $dstkey=$self->get_dstkey(); - - my ($rst_doc,$xml_dom); - $rst_doc=$resource->get_property_string($srckey); - if (defined $rst_doc) { # monolingua - my $dom=rst2xml($rst_doc,$src_path); - $resource->set_property( - $dstkey, - $dom, - ); - $self->_set_meta($resource,$dom); - } - else { # multilingua - my @langs=$resource->get_axis_values('language'); - for my $cur_lang (@langs) { - $rst_doc=$resource->get_property_string({language=>$cur_lang},$srckey); - my $dom=rst2xml($rst_doc,$src_path,$cur_lang); - $resource->set_property( - {language=>$cur_lang}, - $dstkey, - $dom, - ); - $self->_set_meta($resource,$cur_lang,$dom); - } - } - - return; -} - -{ -my %docinfo_fields=( - title => '/document/title', - subtitle => '/document/subtitle', - author => '/document/docinfo/author|/document/docinfo/authors/author', - version => '/document/docinfo/version', - status => '/document/docinfo/status', - date => '/document/docinfo/date', - creation_date => '/document/docinfo/field[field_name="CreationDate"]/field_body', -); -my $collections='/document/docinfo/field[field_name="Collection"]/field_body|/document/docinfo/field[field_name="Collections"]/field_body//list_item'; -sub _set_meta { - my ($self,$res,$lang,$dom)=@_; - - if ($dom) { # 4 parametri - $lang={language=>$lang}; - } - else { # 3 parametri: monolingua - $dom=$lang; - $lang={}; - } - - for my $meta (keys %docinfo_fields) { - my @nodes=$dom->findnodes($docinfo_fields{$meta}); - next unless @nodes; - @nodes=map {$_->textContent()} @nodes; - if (@nodes==1) { - $res->set_property($lang,$meta,$nodes[0]); - } - else { - $res->set_property($lang,$meta,[@nodes]); - } - } - - # per questo serve poter chiamare coll e res per nome TODO - #my @collections=$dom->findnodes($collections); - #return unless @collections; - #@collections=map {$_->textContent()} @collections; - - #$res->add_coll($_) for @collections; - - return; -} -} - -sub rst2xml { - my ($rst_string,$source_path,$language)=@_; - - $rst_string=Encode::encode('utf-8',$rst_string); - my $xml_string=_rst2xml($rst_string,$source_path,'en'); - $xml_parser->base_uri($source_path); - return $xml_parser->parse_string($xml_string); -} - -} -1; -__DATA__ -__Python__ - -import locale -import docutils.core - -def _rst2xml(source,source_path,language): - return docutils.core.publish_string( - source,source_path=source_path, - writer_name='xml', - settings_overrides={ - 'input_encoding':'utf-8', - 'output_encoding':'utf-8', - 'language_code':language, - }, - ) diff --git a/lib/WebCoso/X.pm b/lib/WebCoso/X.pm deleted file mode 100644 index a882709..0000000 --- a/lib/WebCoso/X.pm +++ /dev/null @@ -1,95 +0,0 @@ -package WebCoso::X; -use utf8; -use strict; -use warnings; - -use Exception::Class - ( - 'WebCoso::X::Base' => { - description => 'eccezione di base', - }, - 'WebCoso::X::FileError' => { - isa => 'WebCoso::X::Base', - fields => [ 'filename' ], - description => 'classe base per errori relativi a file', - }, - 'WebCoso::X::ConfigError' => { - isa => 'WebCoso::X::FileError', - fields => [ 'nested' ], - description => 'errore nel file di configurazione', - }, - 'WebCoso::X::FileNotFound' => { - isa => 'WebCoso::X::FileError', - fields => [ 'abs_filename' ], - description => 'un file di una risorsa non è presente', - }, - 'WebCoso::X::OpenError' => { - isa => 'WebCoso::X::FileError', - description => ' non è stato possibile aprire un file', - }, - 'WebCoso::X::NoSuchPipeline' => { - isa => 'WebCoso::X::Base', - fields => [ 'pipeline' ], - description => 'è stata richiesta una pipeline ignota', - }, - 'WebCoso::X::NoSuchResource' => { - isa => 'WebCoso::X::Base', - fields => [ 'resource' ], - description => 'è stata richiesta una risorsa ignota', - }, - 'WebCoso::X::NoSuchCollection' => { - isa => 'WebCoso::X::Base', - fields => [ 'collection' ], - description => 'è stata richiesta una collezione ignota', - }, - 'WebCoso::X::NoSuchStep' => { - isa => 'WebCoso::X::Base', - fields => [ 'pipeline', 'step' ], - description => 'una pipeline vuole usare uno step ignoto', - }, - ); - -WebCoso::X::Base->Trace(1); - -sub WebCoso::X::ConfigError::full_message { - my ($self)=@_; - return 'Errore di configuazione: ' . $self->nested(); -} - -sub WebCoso::X::FileError::full_message { - my ($self)=@_; - return 'Errore relativo al file: ' . $self->filename(); -} - -sub WebCoso::X::FileNotFoundError::full_message { - my ($self)=@_; - return 'Impossibile trovare il file: ' . $self->filename(); -} - -sub WebCoso::X::OpenError::full_message { - my ($self)=@_; - return 'Impossibile aprire il file: ' . $self->filename(); -} - -sub WebCoso::X::NoSuchPipeline::full_message { - my ($self)=@_; - return 'Pipeline ignota: ' . $self->pipeline(); -} - -sub WebCoso::X::NoSuchResource::full_message { - my ($self)=@_; - return 'Risorsa ignota: ' . $self->resource(); -} - -sub WebCoso::X::NoSuchCollection::full_message { - my ($self)=@_; - return 'Collezione ignota: ' . $self->collection(); -} - -sub WebCoso::X::NoSuchStep::full_message { - my ($self)=@_; - - return 'La pipeline ' . $self->pipeline() . ' vuole usare lo step ' . $self->step() . ' che è ignoto'; -} - -1; -- cgit v1.2.3