logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Text::CSV::Encoded::Coder::Base - Interface for Text::CSV::Encoded coder base class

Author

       Makamaka Hannyaharamitu, <makamaka[at]cpan.org>

Description

       This module is used by Text::CSV::Encoded internally.

Example

       Use with Jcode.

           package Text::CSV::Encoded::Coder::Jcode;

           use strict;
           use base qw( Text::CSV::Encoded::Coder::Base );

           use Jcode ();

           my $Jcode = Jcode->new;

           my %alias = (
               'shiftjis' => 'sjis',
               'euc-jp'   => 'euc',
               'sjis'     => 'sjis',
               'euc'      => 'euc',
           );

           sub decode {
               my ( $self, $encoding, $str ) = @_;
               my $enc = $alias{ $encoding };
               $Jcode->set( $str, $enc )->euc;
           }

           sub encode {
               my ( $self, $encoding, $str ) = @_;
               my $enc = $alias{ $encoding };
               $Jcode->set( $str, 'euc' )->$enc();
           }

           sub decode_fields_ref {
               my ( $self, $encoding, $arrayref ) = @_;
               my $enc = $alias{ $encoding };
               for ( @$arrayref ) {
                   $_ = $Jcode->set( $_, $enc )->euc;
               }
           }

           sub encode_fields_ref {
               my ( $self, $encoding, $arrayref ) = @_;
               my $enc = $alias{ $encoding };
               for ( @$arrayref ) {
                   $_ = $Jcode->set( $_, 'euc' )->$enc();
               }
           }

Interfacs

decode
           ( $self, $encoding, $str ) = @_;
           ....
           return $decoded_str;

       Takes an encoding and a CSV string.  It must return a Perl string decoded in $encoding.  In Perl 5.8 or
       later, if $enc is "undef" or false, the encoding should be utf8.

   encode
           ( $self, $encoding, $str ) = @_;
           ....
           return $encoded_str;

       Takes an encoding and a Perl string.  It must return a CSV string encoded in $encoding.  In Perl 5.8 or
       later, if $enc is "undef" or false, the encoding should be utf8.

   decode_fields_ref
           ( $self, $encoding, $arrayref ) = @_;

       Takes an encoding and an array reference.  It must decoded each array entries in $encoding.

   encode_fields_ref
           ( $self, $encoding, $arrayref ) = @_;

       Takes an encoding and an array reference.  It must encoded each array entries in $encoding.

   upgrade
           ( $self, $str ) = @_;

       In Perl 5.8 or later, it is expected to do "utf8::upgrade" against $str.  In older versions, this method
       may be meaningless and there is no need to implement.  See to utf8.

   encode_check_value
       Setter/Getter for an argument passing to encode.

           $coder->encode_check_value( Encode::FB_PERLQQ );

   decode_check_value
       Setter/Getter for an argument passing to decode.

           $coder->encode_check_value( Encode::FB_PERLQQ );

Name

       Text::CSV::Encoded::Coder::Base - Interface for Text::CSV::Encoded coder base class

Synopsis

           package Text::CSV::Encoded::Coder::YourCoder;

           use base qw( Text::CSV::Encoded::Coder::Base );

           sub decode {
               ...
           }

           sub encode {
               ...
           }

           sub upgrade {
               ...
           }

           sub decode_fields_ref {
               ...
           }

           sub encode_fields_ref {
               ...
           }

Version

       version 0.25

See Also