NAME

Locale::TextDomain::OO::Lexicon::StoreJSON - Stores the lexicon for other programming languages

$Id: StoreJSON.pm 472 2014-01-21 16:37:44Z steffenw $

$HeadURL: svn+ssh://steffenw@svn.code.sf.net/p/perl-gettext-oo/code/module/trunk/lib/Locale/TextDomain/OO/Lexicon/StoreJSON.pm $

VERSION

1.008

DESCRIPTION

This module stores the lexicon for other programming language e.g. JavaScript.

SYNOPSIS

write file by given filename

use Locale::TextDomain::OO::Lexicon::StoreJSON;

Locale::TextDomain::OO::Lexicon::StoreJSON
    ->new(
        filename => 'my_json_file',
        ...
    )
    ->to_json;

write file by given open file_handle

use Carp qw(confess);
use IO::File;
use Locale::TextDomain::OO::Lexicon::StoreJSON;

my $filename = 'my_json_file';
my $file_handle = IO::File->new( $filename, q{>} )
    or confess qq{Unable to open file "$filename" $!};
Locale::TextDomain::OO::Lexicon::StoreJSON
    ->new(
        filename    => $filename, # optional for error message only
        file_handle => file_handle,
        ...
    )
    ->to_json;
$file_handle->close
    or confess qq{Unable to close file "$filename" $!};

as string

use Locale::TextDomain::OO::Lexicon::StoreJSON;

my $json = Locale::TextDomain::OO::Lexicon::StoreJSON
    ->new(
        ...
    )
    ->to_json;

optional filter

use Locale::TextDomain::OO::Lexicon::StoreJSON;

my $json = Locale::TextDomain::OO::Lexicon::StoreJSON
    ->new(
        ...
        # all parameters optional
        filter_domain          => [
            # this domains and unchecked category
            qw( domain1 domain2 ),
        ],
        filter_category        => [
            # this categories and unchecked domain
            qw( category1 category2 ),
        ],
        filter_domain_category => [
            {
                # empty domain
                # empty category
            },
            {
                domain => 'domain3',
                # empty category
            },
            {
                # empty domain
                category => 'category3',
            },
            {
                domain   => 'domain4',
                category => 'category4',
            },
        },
    )
    ->to_json;

SUBROUTINES/METHODS

method to_json

With file parameters it prints a JSON file. Otherwise returns a JSON string.

EXAMPLE

Inside of this distribution is a directory named example. Run this *.pl files.

DIAGNOSTICS

none

CONFIGURATION AND ENVIRONMENT

none

DEPENDENCIES

JSON

Moo

MooX::StrictConstructor

namespace::autoclean

Locale::TextDomain::OO::Lexicon::Role::StoreFile

Locale::TextDomain::OO::Lexicon::Role::StoreFilter

INCOMPATIBILITIES

not known

BUGS AND LIMITATIONS

none

SEE ALSO

Locale::TextDoamin::OO

AUTHOR

Steffen Winkler

LICENSE AND COPYRIGHT

Copyright (c) 2013 - 2014, Steffen Winkler <steffenw at cpan.org>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.