X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FConfig%2FAny%2FJSON.pm;h=6e39d63e9ca3284f45ca3a91dd10657a3d54b0b3;hb=0ac17764e57cb8e9593dea270d876758e759ca64;hp=3213128d43e47050a3c731005b4ef6b3c8861c9d;hpb=72628dc786ef43d546023d6f17a86c3f5edeb21a;p=p5sagit%2FConfig-Any.git diff --git a/lib/Config/Any/JSON.pm b/lib/Config/Any/JSON.pm index 3213128..6e39d63 100644 --- a/lib/Config/Any/JSON.pm +++ b/lib/Config/Any/JSON.pm @@ -3,6 +3,8 @@ package Config::Any::JSON; use strict; use warnings; +use base 'Config::Any::Base'; + =head1 NAME Config::Any::JSON - Load JSON config files @@ -50,25 +52,22 @@ sub load { eval { require JSON::Syck; }; if ( $@ ) { require JSON; - return JSON::jsonToObj( $content ); + eval { JSON->VERSION( 2 ); }; + return $@ ? JSON::jsonToObj( $content ) : JSON::from_json( $content ); } else { return JSON::Syck::Load( $content ); } } -=head2 is_supported( ) +=head2 requires_any_of( ) -Returns true if either L or L is available. +Specifies that this modules requires one of L or L in +order to work. =cut -sub is_supported { - eval { require JSON::Syck; }; - return 1 unless $@; - eval { require JSON; }; - return $@ ? 0 : 1; -} +sub requires_any_of { 'JSON::Syck', 'JSON' } =head1 AUTHOR