diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-08-26 15:05:30 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-08-26 15:05:30 +0100 |
commit | 0e45fa27e4bc857f61b71f6c121a61e08e54cb6a (patch) | |
tree | 7e83c50825819b60a9a73f16c4d4f0a4ff247650 /perllib/Open311/Endpoint/Schema/Comma.pm | |
parent | c1178ea85d1879d6533ac09e2a3c813441554b43 (diff) | |
parent | a09c61c807d8d6b50227c9d8aa687f1eb22bad00 (diff) |
Merge branch 'stevenage-open311'
Diffstat (limited to 'perllib/Open311/Endpoint/Schema/Comma.pm')
-rw-r--r-- | perllib/Open311/Endpoint/Schema/Comma.pm | 53 |
1 files changed, 0 insertions, 53 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; |