Changeset 4227 for lang/perl/Config-Pit

Show
Ignore:
Timestamp:
01/08/08 22:13:14 (5 years ago)
Author:
cho45
Message:

lang/perl/Config-Pit/trunk/lib/Config/Pit.pm:

Use YAML::Syck for interoperability with ruby.
$YAML::Syck::ImplicitTyping? = 1; # load
$YAML::Syck::SingleQuote? = 1; # treating string leading zero like octal number.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Config-Pit/trunk/lib/Config/Pit.pm

    r4226 r4227  
    99*pit_get = \&get; 
    1010 
    11 use YAML::XS; 
     11use YAML::Syck; 
    1212use Path::Class; 
    1313use File::HomeDir; 
     
    2424        my ($name, %opts) = @_; 
    2525        my $profile = _load(); 
     26        $YAML::Syck::ImplicitTyping = 1; 
     27        $YAML::Syck::SingleQuote    = 1; 
    2628         
    2729        if ($opts{require}) { 
     
    3840        my ($name, %opts) = @_; 
    3941        my $result = {}; 
     42        $YAML::Syck::ImplicitTyping = 1; 
     43        $YAML::Syck::SingleQuote    = 1; 
    4044 
    4145        if ($opts{data}) { 
     
    4650                # system 
    4751                my $f = File::Temp->new(SUFFIX => ".yaml"); 
    48                 print $f YAML::XS::Dump($setting); 
     52                print $f YAML::Syck::Dump($setting); 
    4953                close $f; 
    5054                my $t = file($f->filename)->stat->mtime; 
     
    5458                        $result = get($name); 
    5559                } else { 
    56                         $result = set($name, data => YAML::XS::LoadFile($f->filename)); 
     60                        $result = set($name, data => YAML::Syck::LoadFile($f->filename)); 
    5761                } 
    5862        } 
    5963        my $profile = _load(); 
    6064        $profile->{$name} = $result; 
    61         YAML::XS::DumpFile($profile_file, $profile); 
     65        YAML::Syck::DumpFile($profile_file, $profile); 
    6266        return $result; 
    6367} 
     
    6569sub switch { 
    6670        my ($name, %opts) = @_; 
     71        $YAML::Syck::ImplicitTyping = 1; 
     72        $YAML::Syck::SingleQuote    = 1; 
    6773 
    6874        $profile_file = File::Spec->catfile($directory, "$name.yaml"); 
     
    7076        my $config = _config(); 
    7177        $config->{profile} = $name; 
    72         YAML::XS::DumpFile($config_file, $config); 
     78        YAML::Syck::DumpFile($config_file, $config); 
    7379} 
    7480 
     
    7682sub _load { 
    7783        my $config = _config(); 
     84        $YAML::Syck::ImplicitTyping = 1; 
     85        $YAML::Syck::SingleQuote    = 1; 
    7886 
    7987        switch($config->{profile}); 
    8088 
    8189        unless (-e $profile_file) { 
    82                 YAML::XS::DumpFile($profile_file, {}); 
     90                YAML::Syck::DumpFile($profile_file, {}); 
    8391        } 
    84         return YAML::XS::LoadFile($profile_file); 
     92        return YAML::Syck::LoadFile($profile_file); 
    8593} 
    8694 
    8795sub _config { 
     96        $YAML::Syck::ImplicitTyping = 1; 
     97        $YAML::Syck::SingleQuote    = 1; 
    8898 
    8999        (-e $directory) || $directory->mkpath(0, 0700); 
    90100 
    91         my $config = eval { YAML::XS::LoadFile($config_file) } || ({ 
     101        my $config = eval { YAML::Syck::LoadFile($config_file) } || ({ 
    92102                profile => "default" 
    93103        });