YAML: Versionsupdate
[kivitendo-erp.git] / modules / override / YAML / Dumper / Base.pm
index 8e4de0c..23db7b1 100644 (file)
@@ -1,35 +1,37 @@
 package YAML::Dumper::Base;
-use strict; use warnings;
-use YAML::Base; use base 'YAML::Base';
+
+use YAML::Mo;
+
 use YAML::Node;
 
 # YAML Dumping options
-field spec_version => '1.0';
-field indent_width => 2;
-field use_header => 1;
-field use_version => 0;
-field sort_keys => 1;
-field anchor_prefix => '';
-field dump_code => 0;
-field use_block => 0;
-field use_fold => 0;
-field compress_series => 1;
-field inline_series => 0;
-field use_aliases => 1;
-field purity => 0;
-field stringify => 0;
+has spec_version    => default => sub {'1.0'};
+has indent_width    => default => sub {2};
+has use_header      => default => sub {1};
+has use_version     => default => sub {0};
+has sort_keys       => default => sub {1};
+has anchor_prefix   => default => sub {''};
+has dump_code       => default => sub {0};
+has use_block       => default => sub {0};
+has use_fold        => default => sub {0};
+has compress_series => default => sub {1};
+has inline_series   => default => sub {0};
+has use_aliases     => default => sub {1};
+has purity          => default => sub {0};
+has stringify       => default => sub {0};
+has quote_numeric_strings => default => sub {0};
 
 # Properties
-field stream => '';
-field document => 0;
-field transferred => {};
-field id_refcnt => {};
-field id_anchor => {};
-field anchor => 1;
-field level => 0;
-field offset => [];
-field headless => 0;
-field blessed_map => {};
+has stream      => default => sub {''};
+has document    => default => sub {0};
+has transferred => default => sub {{}};
+has id_refcnt   => default => sub {{}};
+has id_anchor   => default => sub {{}};
+has anchor      => default => sub {1};
+has level       => default => sub {0};
+has offset      => default => sub {[]};
+has headless    => default => sub {0};
+has blessed_map => default => sub {{}};
 
 # Global Options are an idea taken from Data::Dumper. Really they are just
 # sugar on top of real OO properties. They make the simple Dump/Load API
@@ -64,6 +66,8 @@ sub set_global_options {
       if defined $YAML::Purity;
     $self->stringify($YAML::Stringify)
       if defined $YAML::Stringify;
+    $self->quote_numeric_strings($YAML::QuoteNumericStrings)
+      if defined $YAML::QuoteNumericStrings;
 }
 
 sub dump {
@@ -75,16 +79,16 @@ sub blessed {
     my $self = shift;
     my ($ref) = @_;
     $ref = \$_[0] unless ref $ref;
-    my (undef, undef, $node_id) = YAML::Base->node_info($ref);
+    my (undef, undef, $node_id) = YAML::Mo::Object->node_info($ref);
     $self->{blessed_map}->{$node_id};
 }
-    
+
 sub bless {
     my $self = shift;
     my ($ref, $blessing) = @_;
     my $ynode;
     $ref = \$_[0] unless ref $ref;
-    my (undef, undef, $node_id) = YAML::Base->node_info($ref);
+    my (undef, undef, $node_id) = YAML::Mo::Object->node_info($ref);
     if (not defined $blessing) {
         $ynode = YAML::Node->new($ref);
     }
@@ -105,33 +109,3 @@ sub bless {
 }
 
 1;
-
-__END__
-
-=head1 NAME
-
-YAML::Dumper::Base - Base class for YAML Dumper classes
-
-=head1 SYNOPSIS
-
-    package YAML::Dumper::Something;
-    use YAML::Dumper::Base -base;
-
-=head1 DESCRIPTION
-
-YAML::Dumper::Base is a base class for creating YAML dumper classes.
-
-=head1 AUTHOR
-
-Ingy döt Net <ingy@cpan.org>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2006. Ingy döt Net. All rights reserved.
-
-This program is free software; you can redistribute it and/or modify it
-under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut