The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

package URT::DataSource::SomeFileMux;
use strict;
use warnings;

use UR::Object::Type;
use URT;

use File::Temp qw();

class URT::DataSource::SomeFileMux {
    is => ['UR::DataSource::FileMux', 'UR::Singleton'],
};

sub constant_values { [ 'thing_type' ] }

sub required_for_get { [ 'thing_type' ] }

sub column_order {
    return [ qw( thing_id thing_name thing_color )];
}

sub sort_order {
    return ['thing_id' ] ;
}

sub delimiter { "\t" }

BEGIN {
    our $BASE_PATH = File::Temp::tempdir( CLEANUP => 1 );
}

# Note that the file resolver is called as a normal function (with the parameters
# mentioned in requiret_for_get), not as a method with the data source as the
# first arg...
sub file_resolver {
    my $type = shift;
    our $BASE_PATH;
    return "$BASE_PATH/$type";
}

1;