[PATCH] Drop Regexp-Copy dependency by switching from Storable::dclone to Clone::clone
Niko Tyni
ntyni at debian.org
Sat May 15 19:10:06 UTC 2010
Regexp::Copy only seems used to get Storable to support qr// objects.
Also, it looks like Storable is mostly needed for its dclone()
function. There's similar functionality in the Clone module, and
Storable::dclone is allegedly "slower, but more flexible".
Naively replace all uses of Storable::dclone() with Clone::clone()
and drop the Regexp::Copy use altogether.
http://bugs.debian.org/580328
[rt.cpan.org #57390]
---
lib/HTML/FormFu.pm | 5 ++---
lib/HTML/FormFu/Constraint.pm | 4 ++--
lib/HTML/FormFu/Constraint/Set.pm | 4 ++--
lib/HTML/FormFu/Constraint/_others.pm | 4 ++--
lib/HTML/FormFu/Element.pm | 8 ++++----
lib/HTML/FormFu/Element/Block.pm | 4 ++--
lib/HTML/FormFu/Element/Multi.pm | 8 ++++----
lib/HTML/FormFu/Element/_Field.pm | 8 ++++----
lib/HTML/FormFu/Element/_Group.pm | 6 +++---
lib/HTML/FormFu/Element/reCAPTCHA.pm | 2 +-
lib/HTML/FormFu/Filter/HTMLScrubber.pm | 4 ++--
lib/HTML/FormFu/MultiForm.pm | 7 ++++---
lib/HTML/FormFu/ObjectUtil.pm | 14 +++++++-------
t/deprecated/element_defaults.t | 4 ++--
t/form/default_args.t | 4 ++--
15 files changed, 43 insertions(+), 43 deletions(-)
diff --git a/lib/HTML/FormFu.pm b/lib/HTML/FormFu.pm
index 5e16f16..ec3cd0a 100644
--- a/lib/HTML/FormFu.pm
+++ b/lib/HTML/FormFu.pm
@@ -38,8 +38,7 @@ use HTML::FormFu::Util qw(
use List::Util qw( first );
use List::MoreUtils qw( any none uniq );
use Scalar::Util qw( blessed refaddr reftype weaken );
-use Storable qw( dclone );
-use Regexp::Copy;
+use Clone;
use Carp qw( croak );
use overload (
@@ -1115,7 +1114,7 @@ sub _single_output_processor {
$arg = { type => $arg };
}
elsif ( ref $arg eq 'HASH' ) {
- $arg = dclone($arg);
+ $arg = Clone::clone($arg);
}
else {
croak 'invalid args';
diff --git a/lib/HTML/FormFu/Constraint.pm b/lib/HTML/FormFu/Constraint.pm
index b4d86e9..2f725c9 100644
--- a/lib/HTML/FormFu/Constraint.pm
+++ b/lib/HTML/FormFu/Constraint.pm
@@ -12,7 +12,7 @@ use HTML::FormFu::Util qw(
use List::MoreUtils qw( any );
use List::Util qw( first );
use Scalar::Util qw( reftype blessed );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
__PACKAGE__->mk_accessors(qw( only_on_reps ));
@@ -229,7 +229,7 @@ sub clone {
my $clone = $self->next::method(@_);
if ( defined( my $when = $self->when ) ) {
- $clone->when( dclone $when );
+ $clone->when( Clone::clone $when );
}
return $clone;
diff --git a/lib/HTML/FormFu/Constraint/Set.pm b/lib/HTML/FormFu/Constraint/Set.pm
index 1a4fd7c..b2ff35b 100644
--- a/lib/HTML/FormFu/Constraint/Set.pm
+++ b/lib/HTML/FormFu/Constraint/Set.pm
@@ -4,7 +4,7 @@ use strict;
use base 'HTML::FormFu::Constraint';
use Class::C3;
-use Storable qw( dclone );
+use Clone;
__PACKAGE__->mk_accessors(qw( set ));
@@ -26,7 +26,7 @@ sub clone {
my $clone = $self->next::method(@_);
if ( $self->set ) {
- $clone->set( dclone $self->set );
+ $clone->set( Clone::clone $self->set );
}
return $clone;
diff --git a/lib/HTML/FormFu/Constraint/_others.pm b/lib/HTML/FormFu/Constraint/_others.pm
index 6abbdae..5f3fa5a 100644
--- a/lib/HTML/FormFu/Constraint/_others.pm
+++ b/lib/HTML/FormFu/Constraint/_others.pm
@@ -9,7 +9,7 @@ use HTML::FormFu::Util qw(
debug
);
use List::MoreUtils qw( any none );
-use Storable qw( dclone );
+use Clone;
__PACKAGE__->mk_item_accessors( qw(
attach_errors_to_base
@@ -115,7 +115,7 @@ sub clone {
my $clone = $self->next::method(@_);
if ( ref $self->others ) {
- $clone->others( dclone $self->others );
+ $clone->others( Clone::clone $self->others );
}
return $clone;
diff --git a/lib/HTML/FormFu/Element.pm b/lib/HTML/FormFu/Element.pm
index 7d18d4a..20b6dbb 100644
--- a/lib/HTML/FormFu/Element.pm
+++ b/lib/HTML/FormFu/Element.pm
@@ -24,7 +24,7 @@ use HTML::FormFu::ObjectUtil qw(
);
use HTML::FormFu::Util qw( require_class xml_escape );
use Scalar::Util qw( refaddr reftype weaken );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
use overload (
@@ -182,11 +182,11 @@ sub clone {
my %new = %$self;
- $new{tt_args} = dclone $self->{tt_args}
+ $new{tt_args} = Clone::clone $self->{tt_args}
if $self->{tt_args};
- $new{attributes} = dclone $self->attributes;
- $new{model_config} = dclone $self->model_config;
+ $new{attributes} = Clone::clone $self->attributes;
+ $new{model_config} = Clone::clone $self->model_config;
return bless \%new, ref $self;
}
diff --git a/lib/HTML/FormFu/Element/Block.pm b/lib/HTML/FormFu/Element/Block.pm
index da9ff74..3ed5fc6 100644
--- a/lib/HTML/FormFu/Element/Block.pm
+++ b/lib/HTML/FormFu/Element/Block.pm
@@ -8,7 +8,7 @@ use HTML::FormFu::Constants qw( $EMPTY_STR );
use HTML::FormFu::ObjectUtil qw( :FORM_AND_BLOCK );
use HTML::FormFu::Util qw( _get_elements xml_escape process_attrs );
use List::MoreUtils qw( uniq );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
__PACKAGE__->mk_item_accessors( qw(
@@ -243,7 +243,7 @@ sub clone {
map { $_->parent($clone) } @{ $clone->_elements };
- $clone->default_args( dclone $self->default_args );
+ $clone->default_args( Clone::clone $self->default_args );
return $clone;
}
diff --git a/lib/HTML/FormFu/Element/Multi.pm b/lib/HTML/FormFu/Element/Multi.pm
index 7182f02..bf55b26 100644
--- a/lib/HTML/FormFu/Element/Multi.pm
+++ b/lib/HTML/FormFu/Element/Multi.pm
@@ -7,7 +7,7 @@ use Class::C3;
use HTML::FormFu::Element::_Field qw( :FIELD );
use HTML::FormFu::Util
qw( append_xml_attribute xml_escape process_attrs _parse_args _get_elements _filter_components );
-use Storable qw( dclone );
+use Clone;
__PACKAGE__->mk_item_accessors( qw(
field_filename
@@ -211,9 +211,9 @@ sub clone {
my $clone = $self->next::method(@_);
- $clone->comment_attributes( dclone $self->comment_attributes );
- $clone->container_attributes( dclone $self->container_attributes );
- $clone->label_attributes( dclone $self->label_attributes );
+ $clone->comment_attributes( Clone::clone $self->comment_attributes );
+ $clone->container_attributes( Clone::clone $self->container_attributes );
+ $clone->label_attributes( Clone::clone $self->label_attributes );
return $clone;
}
diff --git a/lib/HTML/FormFu/Element/_Field.pm b/lib/HTML/FormFu/Element/_Field.pm
index 9b1f875..4ebef13 100644
--- a/lib/HTML/FormFu/Element/_Field.pm
+++ b/lib/HTML/FormFu/Element/_Field.pm
@@ -16,7 +16,7 @@ use HTML::FormFu::Util qw(
process_attrs _filter_components
);
use List::MoreUtils qw( uniq );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
use Exporter qw( import );
@@ -991,9 +991,9 @@ sub clone {
map { $_->parent($clone) } @{ $clone->$list };
}
- $clone->comment_attributes( dclone $self->comment_attributes );
- $clone->container_attributes( dclone $self->container_attributes );
- $clone->label_attributes( dclone $self->label_attributes );
+ $clone->comment_attributes( Clone::clone $self->comment_attributes );
+ $clone->container_attributes( Clone::clone $self->container_attributes );
+ $clone->label_attributes( Clone::clone $self->label_attributes );
return $clone;
}
diff --git a/lib/HTML/FormFu/Element/_Group.pm b/lib/HTML/FormFu/Element/_Group.pm
index 3523f98..08de93a 100644
--- a/lib/HTML/FormFu/Element/_Group.pm
+++ b/lib/HTML/FormFu/Element/_Group.pm
@@ -9,7 +9,7 @@ use HTML::FormFu::Util qw( append_xml_attribute literal xml_escape );
use Exporter qw( import );
use List::MoreUtils qw( none );
use Scalar::Util qw( reftype );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
our @EXPORT_OK = qw( _process_options_from_model ); # used by ComboBox
@@ -363,7 +363,7 @@ sub render_data_non_recursive {
my ( $self, $args ) = @_;
my $render = $self->next::method( {
- options => dclone( $self->_options ),
+ options => Clone::clone( $self->_options ),
$args ? %$args : (),
} );
@@ -426,7 +426,7 @@ sub clone {
my $clone = $self->next::method(@_);
- $clone->_options( dclone $self->_options );
+ $clone->_options( Clone::clone $self->_options );
return $clone;
}
diff --git a/lib/HTML/FormFu/Element/reCAPTCHA.pm b/lib/HTML/FormFu/Element/reCAPTCHA.pm
index c5975ad..42c2c62 100644
--- a/lib/HTML/FormFu/Element/reCAPTCHA.pm
+++ b/lib/HTML/FormFu/Element/reCAPTCHA.pm
@@ -117,7 +117,7 @@ sub clone {
my $clone = $self->next::method(@_);
- $clone->recaptcha_options( dclone $self->recaptcha_options );
+ $clone->recaptcha_options( Clone::clone $self->recaptcha_options );
return $clone;
}
diff --git a/lib/HTML/FormFu/Filter/HTMLScrubber.pm b/lib/HTML/FormFu/Filter/HTMLScrubber.pm
index 018273d..b934ed5 100644
--- a/lib/HTML/FormFu/Filter/HTMLScrubber.pm
+++ b/lib/HTML/FormFu/Filter/HTMLScrubber.pm
@@ -4,7 +4,7 @@ use strict;
use base 'HTML::FormFu::Filter';
use Class::C3;
-use Storable qw( dclone );
+use Clone;
__PACKAGE__->mk_accessors(qw( allow ));
@@ -27,7 +27,7 @@ sub clone {
my $clone = $self->next::method(@_);
- $clone->allow( dclone $self->allow )
+ $clone->allow( Clone::clone $self->allow )
if ref $self->allow;
return $clone;
diff --git a/lib/HTML/FormFu/MultiForm.pm b/lib/HTML/FormFu/MultiForm.pm
index a10d67f..2db2156 100644
--- a/lib/HTML/FormFu/MultiForm.pm
+++ b/lib/HTML/FormFu/MultiForm.pm
@@ -21,7 +21,8 @@ use Carp qw( croak );
use Crypt::CBC;
use List::MoreUtils qw( uniq );
use Scalar::Util qw( blessed refaddr reftype );
-use Storable qw( dclone nfreeze thaw );
+use Storable qw( nfreeze thaw );
+use Clone;
use overload (
'eq' => sub { refaddr $_[0] eq refaddr $_[1] },
@@ -234,7 +235,7 @@ sub _load_current_form {
my $current_form = HTML::FormFu->new;
- my $current_data = dclone( $self->forms->[ $current_form_num - 1 ] );
+ my $current_data = Clone::clone( $self->forms->[ $current_form_num - 1 ] );
# merge constructor args
for my $key ( @ACCESSORS, @INHERITED_ACCESSORS,
@@ -363,7 +364,7 @@ sub next_form {
# is there a next form defined?
return if $current_form_num >= scalar @{ $self->forms };
- my $form_data = dclone( $self->forms->[$current_form_num] );
+ my $form_data = Clone::clone( $self->forms->[$current_form_num] );
my $next_form = HTML::FormFu->new;
diff --git a/lib/HTML/FormFu/ObjectUtil.pm b/lib/HTML/FormFu/ObjectUtil.pm
index f622f9f..6b73697 100644
--- a/lib/HTML/FormFu/ObjectUtil.pm
+++ b/lib/HTML/FormFu/ObjectUtil.pm
@@ -13,7 +13,7 @@ use Data::Visitor::Callback;
use File::Spec;
use Scalar::Util qw( refaddr reftype weaken blessed );
use List::MoreUtils qw( none uniq );
-use Storable qw( dclone );
+use Clone;
use Carp qw( croak );
our @form_and_block = qw(
@@ -171,7 +171,7 @@ sub _require_element {
} );
if ( $element->can('default_args') ) {
- $element->default_args( dclone $self->default_args );
+ $element->default_args( Clone::clone $self->default_args );
}
# handle default_args
@@ -526,7 +526,7 @@ sub _load_file {
}
for my $config ( ref $data eq 'ARRAY' ? @$data : $data ) {
- $self->populate( dclone($config) );
+ $self->populate( Clone::clone($config) );
}
return;
@@ -631,9 +631,9 @@ sub clone {
my %new = %$self;
$new{_elements} = [ map { $_->clone } @{ $self->_elements } ];
- $new{attributes} = dclone $self->attributes;
- $new{tt_args} = dclone $self->tt_args;
- $new{model_config} = dclone $self->model_config;
+ $new{attributes} = Clone::clone $self->attributes;
+ $new{tt_args} = Clone::clone $self->tt_args;
+ $new{model_config} = Clone::clone $self->model_config;
if ( $self->can('_plugins') ) {
$new{_plugins} = [ map { $_->clone } @{ $self->_plugins } ];
@@ -641,7 +641,7 @@ sub clone {
$new{languages}
= ref $self->languages
- ? dclone $self->languages
+ ? Clone::clone $self->languages
: $self->languages;
$new{default_args} = $self->default_args;
diff --git a/t/deprecated/element_defaults.t b/t/deprecated/element_defaults.t
index 64a9fb9..1deac8a 100644
--- a/t/deprecated/element_defaults.t
+++ b/t/deprecated/element_defaults.t
@@ -4,7 +4,7 @@ use warnings;
use Test::More tests => 9;
use HTML::FormFu;
-use Storable qw( dclone );
+use Clone;
my $form = HTML::FormFu->new({ tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } });
@@ -23,7 +23,7 @@ _call_element_defaults( $form, {
} );
# take a deep copy of element_defaults, so we can check they've not been butchered, later
-my $element_defaults = dclone( _call_element_defaults( $form ) );
+my $element_defaults = Clone::clone( _call_element_defaults( $form ) );
$form->populate( {
elements => [
diff --git a/t/form/default_args.t b/t/form/default_args.t
index 27e83c5..dbfb109 100644
--- a/t/form/default_args.t
+++ b/t/form/default_args.t
@@ -4,7 +4,7 @@ use warnings;
use Test::More tests => 7;
use HTML::FormFu;
-use Storable qw( dclone );
+use Clone;
my $form = HTML::FormFu->new({ tt_args => { INCLUDE_PATH => 'share/templates/tt/xhtml' } });
@@ -31,7 +31,7 @@ $form->default_args( {
# take a deep copy of element_defaults, so we can check they've not been butchered, later
-my $default_args = dclone( $form->default_args );
+my $default_args = Clone::clone( $form->default_args );
$form->populate( {
elements => [
--
1.7.1
--MGYHOYXEY6WxJCY8--
More information about the pkg-perl-maintainers
mailing list