<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">From 3de4de70eb8049b17b913952439359ec6fde4d1d Mon Sep 17 00:00:00 2001
From: Slaven Rezic &lt;slaven@rezic.de&gt;
Date: Sat, 26 Dec 2015 20:08:27 +0100
Subject: [PATCH] compatibility with newer DateTime::Locale versions (RT
 #108601)

---
 lib/DateTime/Format/Human/Duration.pm        |  6 +++++-
 lib/DateTime/Format/Human/Duration/Locale.pm | 25 +++++++++++++++++--------
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/lib/DateTime/Format/Human/Duration.pm b/lib/DateTime/Format/Human/Duration.pm
index 53af6e1..749d40c 100644
--- a/lib/DateTime/Format/Human/Duration.pm
+++ b/lib/DateTime/Format/Human/Duration.pm
@@ -17,7 +17,11 @@ sub format_duration_between {
     my $dur = $dt - $dtb;
 
     if (!exists $args{'locale'}) {
-        $args{'locale'} = $dt-&gt;{'locale'}{'id'};
+	if (UNIVERSAL::can($dt-&gt;{'locale'}, 'code')) {
+	    $args{'locale'} = $dt-&gt;{'locale'}-&gt;code; # DateTime::Locale v1
+	} else {
+	    $args{'locale'} = $dt-&gt;{'locale'}-&gt;id;   # DateTime::Locale v0
+	}
     }
     
     return $span-&gt;format_duration($dur, %args);    
diff --git a/lib/DateTime/Format/Human/Duration/Locale.pm b/lib/DateTime/Format/Human/Duration/Locale.pm
index c71a728..58670c0 100644
--- a/lib/DateTime/Format/Human/Duration/Locale.pm
+++ b/lib/DateTime/Format/Human/Duration/Locale.pm
@@ -46,15 +46,24 @@ sub determine_locale_from {
     return '' if !$args_hr-&gt;{'get_locale_from'};
 
     if (ref $args_hr-&gt;{'get_locale_from'}) {
-        my $ns = ref($args_hr-&gt;{'get_locale_from'});
+	my $locale_obj;
+	if (UNIVERSAL::can($args_hr-&gt;{'get_locale_from'}, 'locale')) {
+	    $locale_obj = $args_hr-&gt;{'get_locale_from'}-&gt;locale;
+	}
+	else {
+	    $locale_obj = $args_hr-&gt;{'get_locale_from'};
+	}
 
-        if (exists $args_hr-&gt;{'get_locale_from'}{'locale'}) {
-            $ns = exists $args_hr-&gt;{'get_locale_from'}{'locale'}{'id'} ? $args_hr-&gt;{'get_locale_from'}{'locale'}{'id'} : ref($args_hr-&gt;{'get_locale_from'}{'locale'});
-        }
-        elsif ($ns =~ m{^DateTime::Locale::} &amp;&amp; exists $args_hr-&gt;{'get_locale_from'}{'id'}) {
-            $ns = $args_hr-&gt;{'get_locale_from'}{'id'};
-        }
-        ($args_hr-&gt;{'get_locale_from'}) = reverse split /::/, $ns;
+	if (UNIVERSAL::can($locale_obj, 'code')) {
+	    $args_hr-&gt;{'get_locale_from'} = $locale_obj-&gt;code; # DateTime::Locale v1
+	}
+	elsif (UNIVERSAL::can($locale_obj, 'id')) {
+	    $args_hr-&gt;{'get_locale_from'} = $locale_obj-&gt;id;   # DateTime::Locale v0
+	}
+	else {
+	    my $ns = ref($args_hr-&gt;{'get_locale_from'});
+	    ($args_hr-&gt;{'get_locale_from'}) = reverse split /::/, $ns;
+	}
     }
     
     my ($short) = split(/[-_]+/,$args_hr-&gt;{'get_locale_from'});
-- 
2.1.2

</pre></body></html>