diff options
Diffstat (limited to 'perllib/Open311/Endpoint/Schema')
-rw-r--r-- | perllib/Open311/Endpoint/Schema/Comma.pm | 53 | ||||
-rw-r--r-- | perllib/Open311/Endpoint/Schema/Regex.pm | 43 |
2 files changed, 0 insertions, 96 deletions
diff --git a/perllib/Open311/Endpoint/Schema/Comma.pm b/perllib/Open311/Endpoint/Schema/Comma.pm deleted file mode 100644 index f6ac1bcc7..000000000 --- a/perllib/Open311/Endpoint/Schema/Comma.pm +++ /dev/null @@ -1,53 +0,0 @@ -use strict; use warnings; -package Open311::Endpoint::Schema::Comma; -use parent 'Data::Rx::CommonType::EasyNew'; - -use Carp (); - -sub type_uri { - 'tag:wiki.open311.org,GeoReport_v2:rx/comma', -} - -sub guts_from_arg { - my ($class, $arg, $rx) = @_; - $arg ||= {}; - - my $contents = delete $arg->{contents} - or Carp::croak "No contents for comma-separated list"; - my $trim = delete $arg->{trim}; - if (my @unexpected = keys %$arg) { - Carp::croak sprintf "Unknown arguments %s in constructing %s", - (join ',' => @unexpected), $class->type_uri; - } - - return { - trim => $trim, - str_schema => $rx->make_schema('//str'), - subschema => $rx->make_schema( $contents ), - }; -} - -sub assert_valid { - my ($self, $value) = @_; - - $self->{str_schema}->assert_valid( $value ); - - my @values = split ',' => $value; - - my $subschema = $self->{subschema}; - my $trim = $self->{trim}; - - for my $subvalue (@values) { - - if ($self->{trim}) { - $subvalue =~s/^\s*//; - $subvalue =~s/\s*$//; - } - - $subschema->assert_valid( $subvalue ); - } - - return 1; -} - -1; diff --git a/perllib/Open311/Endpoint/Schema/Regex.pm b/perllib/Open311/Endpoint/Schema/Regex.pm deleted file mode 100644 index a79542198..000000000 --- a/perllib/Open311/Endpoint/Schema/Regex.pm +++ /dev/null @@ -1,43 +0,0 @@ -use strict; use warnings; -package Open311::Endpoint::Schema::Regex; -use parent 'Data::Rx::CommonType::EasyNew'; - -use Carp (); - -sub type_uri { - 'tag:wiki.open311.org,GeoReport_v2:rx/regex', -} - -sub guts_from_arg { - my ($class, $arg, $rx) = @_; - $arg ||= {}; - - my $pattern = delete $arg->{pattern}; - my $message = delete $arg->{message}; - if (my @unexpected = keys %$arg) { - Carp::croak sprintf "Unknown arguments %s in constructing %s", - (join ',' => @unexpected), $class->type_uri; - } - - return { - str_schema => $rx->make_schema('//str'), - pattern => qr/$pattern/, - message => $message, - }; -} - -sub assert_valid { - my ($self, $value) = @_; - - $self->{str_schema}->assert_valid( $value ); - - return 1 if $value =~ $self->{pattern}; - - $self->fail({ - error => [ qw(type) ], - message => $self->{message} || "found value doesn't match regex", - value => $value, - }) -} - -1; |