[Jifty-commit] jifty branch, master, updated. 8a6f78aa1692b2d8599fc83c2fbda25b9e535e2f

Jifty commits jifty-commit at lists.jifty.org
Tue Mar 30 13:52:04 EDT 2010


The branch, master has been updated
       via  8a6f78aa1692b2d8599fc83c2fbda25b9e535e2f (commit)
      from  ada1d6690087e0c5f25b0376cfad359eaacde6ec (commit)

Summary of changes:
 lib/Jifty/Param/Schema.pm |   28 +++-------------------------
 1 files changed, 3 insertions(+), 25 deletions(-)

- Log -----------------------------------------------------------------
commit 8a6f78aa1692b2d8599fc83c2fbda25b9e535e2f
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Wed Mar 31 01:50:26 2010 +0800

    use oo interface of Hash::Merge in Jifty::Param::Schema

diff --git a/lib/Jifty/Param/Schema.pm b/lib/Jifty/Param/Schema.pm
index dfab7ae..2c972ea 100644
--- a/lib/Jifty/Param/Schema.pm
+++ b/lib/Jifty/Param/Schema.pm
@@ -151,23 +151,6 @@ sub schema (&) {
 }
 
 use Hash::Merge ();
-{
-# XXX to eliminate the warning:
-#   Can't call method "isa" on unblessed reference
-# see https://rt.cpan.org/Public/Bug/Display.html?id=55978
-    no warnings 'redefine';
-    *Hash::Merge::_get_obj = sub {
-        my $type = ref $_[0];
-        if (   $type
-            && $type !~ /^(?:SCALAR|ARRAY|HASH)$/
-            && ( $type eq 'Hash::Merge' || $_[0]->isa('Hash::Merge') ) )
-        {
-            return shift;
-        }
-        return $Hash::Merge::context;
-    };
-}
-
 no warnings 'uninitialized';
 use constant MERGE_PARAM_BEHAVIOUR => {
     SCALAR => {
@@ -181,13 +164,14 @@ use constant MERGE_PARAM_BEHAVIOUR => {
     HASH => {
             SCALAR => sub { length($_[1]) ? $_[1] : $_[0] },
             ARRAY  => sub { [ @{$_[1]} ] },
-            HASH   => sub { Hash::Merge::_merge_hashes( $_[0], $_[1] ) } }
+            HASH   => sub { Hash::Merge::_merge_hashes( $Hash::Merge::context, $_[0], $_[1] ) } }
 };
 
 my $prev_behaviour = Hash::Merge::get_behavior();
 # the behavior name must be upper-case
 Hash::Merge::specify_behavior( MERGE_PARAM_BEHAVIOUR, 'MERGE_PARAMS' );
 Hash::Merge::set_behavior( $prev_behaviour );
+my $merge = Hash::Merge->new('MERGE_PARAMS');
 
 =head2 merge_params HASHREF HASHREF
 
@@ -220,13 +204,7 @@ sub merge_params {
         }
         push @types, \@t;
     }
-    my $prev_behaviour = Hash::Merge::get_behavior();
-    my $prev_clone_behaviour = Hash::Merge::get_clone_behavior();
-    Hash::Merge::set_clone_behavior(0);
-    Hash::Merge::set_behavior( 'MERGE_PARAMS' );
-    my $rv = Hash::Merge::merge(@_);
-    Hash::Merge::set_behavior( $prev_behaviour );
-    Hash::Merge::set_clone_behavior($prev_clone_behaviour);
+    my $rv = $merge->merge(@_);
     for my $m (@_) {
         my @t = @{shift @types};
         for (keys %{$m}) {

-----------------------------------------------------------------------


More information about the Jifty-commit mailing list