switched to JSON::Diffable as file format
Robert 'phaylon' Sedlacek [Thu, 31 May 2012 00:08:56 +0000 (00:08 +0000)]
lib/System/Introspector/State.pm

index 064006a..3506a1c 100644 (file)
@@ -5,6 +5,8 @@ use Object::Remote;
 use Object::Remote::Future;
 use System::Introspector::Gatherer;
 
+use JSON::Diffable qw( encode_json );
+
 has config => (is => 'ro', required => 1);
 
 has introspectors => (is => 'lazy');
@@ -46,11 +48,10 @@ sub _build_introspectors {
 
 sub _store {
     my ($self, $data) = @_;
-    my $yaml    = Data::YAML::Writer->new;
     my $storage = $self->storage;
     my @files;
     for my $class (sort keys %$data) {
-        my $file = sprintf '%s.yml', join '/',
+        my $file = sprintf '%s.json', join '/',
             node => $self->node_path,
             map lc, map {
                 s{([a-z0-9])([A-Z])}{${1}_${2}}g;
@@ -58,7 +59,7 @@ sub _store {
             } split m{::}, $class;
         my $fh = $storage->open('>:utf8', $file, mkpath => 1);
         print "Writing $file\n";
-        $yaml->write($data->{$class}, $fh);
+        print $fh encode_json($data->{$class});
         push @files, $storage->file($file);
     }
     $self->_cleanup(\@files);