From a1534a3148b4b87da62712cb7e08e98e65ffb6c3 Mon Sep 17 00:00:00 2001 From: justme1968 Date: Tue, 10 Dec 2013 21:39:38 +0000 Subject: [PATCH] make Data::Dumper optional git-svn-id: https://svn.fhem.de/fhem/trunk@4355 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/31_LightScene.pm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/31_LightScene.pm b/fhem/FHEM/31_LightScene.pm index 29031560d..c92f644eb 100644 --- a/fhem/FHEM/31_LightScene.pm +++ b/fhem/FHEM/31_LightScene.pm @@ -7,11 +7,12 @@ use strict; use warnings; use POSIX; #use JSON; -use Data::Dumper; +#use Data::Dumper; use vars qw(%FW_webArgs); # all arguments specified in the GET my $LightScene_hasJSON = 1; +my $LightScene_hasDataDumper = 1; sub LightScene_Initialize($) { @@ -29,12 +30,17 @@ sub LightScene_Initialize($) eval "use JSON"; $LightScene_hasJSON = 0 if($@); + + eval "use Data::Dumper"; + $LightScene_hasDataDumper = 0 if($@); } sub LightScene_Define($$) { my ($hash, $def) = @_; + return "install JSON or Data::Dumper to use LightScene" if( !$LightScene_hasJSON && !$LightScene_hasDataDumper ); + my @args = split("[ \t]+", $def); return "Usage: define LightScene +" if(@args < 3); @@ -42,6 +48,9 @@ sub LightScene_Define($$) my $name = shift(@args); my $type = shift(@args); + $hash->{HAS_JSON} = $LightScene_hasJSON; + $hash->{HAS_DataDumper} = $LightScene_hasDataDumper; + my %list; foreach my $a (@args) { foreach my $d (devspec2array($a)) { @@ -229,7 +238,7 @@ myStatefileName() my $statefile = $attr{global}{statefile}; $statefile = substr $statefile,0,rindex($statefile,'/')+1; return $statefile ."LightScenes.save" if( $LightScene_hasJSON ); - return $statefile ."LightScenes.dd.save"; + return $statefile ."LightScenes.dd.save" if( $LightScene_hasDataDumper ); } my $LightScene_LastSaveTime=""; sub @@ -256,7 +265,7 @@ LightScene_Save() if( $LightScene_hasJSON ) { print FH encode_json($hash) if( defined($hash) ); - } else { + } elsif( $LightScene_hasDataDumper ) { my $dumper = Data::Dumper->new([]); $dumper->Terse(1); @@ -295,7 +304,7 @@ LightScene_Load($) my $decoded; if( $LightScene_hasJSON ) { $decoded = decode_json( $encoded ); - } else { + } elsif( $LightScene_hasDataDumper ) { $decoded = eval $encoded; } $hash->{SCENES} = $decoded->{$hash->{NAME}} if( defined($decoded->{$hash->{NAME}}) );