use Storable;
use Time::HiRes qw(time);
use File::Path qw(mkpath);
-use Text::Unaccent;
+use Text::Unaccent::PurePerl;
use Digest::MD5;
use Statistics::Descriptive;
sub index {
my $self = shift;
- my $data_dir = $self->app->home->rel_dir('data');
+ my $data_dir = $self->app->home->rel_file('data');
die "no data dir $data_dir" unless -d $data_dir;
my @files;
find( sub {
my $file = $File::Find::name;
- if ( -f $file && $file =~ m/([^\/]+)\.changes\/(\d+\.\d+.+)/ ) {
+ if ( -f $file && $file =~ m/([^\/]+)\.changes\/(\d+[\.,]\d+.+)/ ) {
push @{ $changes->{$1} }, $2
} elsif ( import_module( $file ) ) {
$file =~ s/$data_dir\/*//;
sub _dump_path {
my ( $self, $name ) = @_;
- my $dir = $self->app->home->rel_dir('data');
+ my $dir = $self->app->home->rel_file('data');
$name =~ s/^$dir//;
$name =~ s/\/+/_/g;
return '/tmp/mojo_facets.' . $name . '.storable';
sub _permanent_path {
my $self = shift;
my $path = $self->_param_or_session('path');
- $self->app->home->rel_dir('data') . '/' . join('.', $path, @_);
+ $self->app->home->rel_file('data') . '/' . join('.', $path, @_);
}
sub __unac {
warn "no path in param or session";
return;
}
- my $dir = $self->app->home->rel_dir('public') . "/export/$path";
+ my $dir = $self->app->home->rel_file('public') . "/export/$path";
mkpath $dir unless -e $dir;
my $name = __export_path_name( $path, @_ );
my $full = $dir . '/' . $name;
$code =~ s{\n+$}{\n}s;
# XXX convert @row->{foo} into @{$row->{foo}}
- $code =~ s|\@(row->{[^}]+})|\@{\$$1}|gs;
+ $code =~ s|\@(row->\{[^}]+\})|\@{\$$1}|gs;
my $commit = $self->param('commit');
my $test = $self->param('test');
if ( $code && ( $test || $commit ) ) {
# XXX find columns used in code snippet and show them to user
my $order = 0;
- foreach my $column ( $code =~ m/\$row->{([^}]+)}/g ) {
+ foreach my $column ( $code =~ m/\$row->\{([^}]+)\}/g ) {
if ( $column =~ s/^(['"])// ) {
$column =~ s/$1$//;
}
}
}
- my $code_path = $self->app->home->rel_dir('public') . "/code";
+ my $code_path = $self->app->home->rel_file('public') . "/code";
if ( $commit ) {
__path_modified( $path, 'commit' );
warn "# sorted_items ", $#$sorted_items + 1, " offset $offset limit $limit order $sort";
my $depends_on;
- my $tmp = $code; $tmp =~ s/\$row->{(['"]?)([\w\s]+)\1/$depends_on->{$2}++/gse;
+ my $tmp = $code; $tmp =~ s/\$row->\{(['"]?)([\w\s]+)\1/$depends_on->{$2}++/gse;
warn "# depends_on ",dump $depends_on;
my $test_added = Storable::dclone $test_changed;
sub export {
my $self = shift;
- my $dir = $self->app->home->rel_dir('public');
+ my $dir = $self->app->home->rel_file('public');
if ( my $import = $self->param('import') ) {