From 5158ea0d136f5e5ff13cbad5f9d8971d361dcc04 Mon Sep 17 00:00:00 2001 From: Nicolas Steenlant Date: Mon, 20 Mar 2017 17:31:35 +0100 Subject: [PATCH] stash --- lib/Catmandu/Fix/Condition/greater_than.pm | 2 +- lib/Catmandu/Fix/Condition/validate.pm | 45 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 lib/Catmandu/Fix/Condition/validate.pm diff --git a/lib/Catmandu/Fix/Condition/greater_than.pm b/lib/Catmandu/Fix/Condition/greater_than.pm index cfa7635fd..db227a9c8 100644 --- a/lib/Catmandu/Fix/Condition/greater_than.pm +++ b/lib/Catmandu/Fix/Condition/greater_than.pm @@ -27,7 +27,7 @@ __END__ =head1 NAME -Catmandu::Fix::Condition::greater_than - Excute fixes when a field is greater than a value +Catmandu::Fix::Condition::greater_than - Execute fixes when a field is greater than a value =head1 SYNOPSIS diff --git a/lib/Catmandu/Fix/Condition/validate.pm b/lib/Catmandu/Fix/Condition/validate.pm new file mode 100644 index 000000000..4b398bd42 --- /dev/null +++ b/lib/Catmandu/Fix/Condition/validate.pm @@ -0,0 +1,45 @@ +package Catmandu::Fix::Condition::validate; + +use Catmandu::Sane; + +our $VERSION = '1.0306'; + +use Moo; +use Catmandu::Util qw(require_package) +use namespace::clean; +use Catmandu::Fix::Has; + +has path => (fix_arg => 1); +has name => (fix_arg => 1); +has opts => (fix_opt => 'collect'); +has validator => (is => 'lazy', init_arg => undef); + +with 'Catmandu::Fix::Condition::SimpleAllTest'; + +sub emit_test { + my ($self, $var) = @_; + my $validator_var = $fixer->capture($self->validator); + + "${validator_var}\->is_valid(${var})"; +} + +sub _build_validator { + my ($self) = @_; + require_package($self->name, 'Catmandu::Validator')->new($self->opts); +} + +1; + +__END__ + +=pod + +=head1 NAME + +Catmandu::Fix::Condition::validate - Execute fixes if the data passes validation + +=head1 SEE ALSO + +L + +=cut