File: README

package info (click to toggle)
libdbix-class-inflatecolumn-serializer-perl 0.06-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 164 kB
  • ctags: 28
  • sloc: perl: 297; sql: 5; makefile: 2
file content (82 lines) | stat: -rw-r--r-- 2,490 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
NAME
    DBIx::Class::InflateColumn::Serializer - Inflators to serialize data
    structures for DBIx::Class

SYNOPSIS
      package MySchema::Table;
      use base 'DBIx::Class';

      __PACKAGE__->load_components('InflateColumn::Serializer', 'Core');
      __PACKAGE__->add_columns(
        'data_column' => {
          'data_type' => 'VARCHAR',
          'size'      => 255,
          'serializer_class'   => 'JSON' 
        }
      );

    Then in your code...

      my $struct = { 'I' => { 'am' => 'a struct' };
      $obj->data_column($struct);
      $obj->update;

    And you can recover your data structure with:

      my $obj = ...->find(...);
      my $struct = $obj->data_column;

    The data structures you assign to "data_column" will be saved in the
    database in JSON format.

DESCRIPTION
    These modules help you store and access serialized data structures in
    the columns of your DB from your DBIx::Classes. They are inspired from
    the DBIx::Class::Manual::FAQ and the DBIC test suite, and provide a bit
    more protection than the inflators proposed in the FAQ. The intention is
    to provide a suite of well proven and reusable inflators and deflators
    to complement DBIx::Class.

    Added features for these inflators are: - throw an exception if the
    serialization doesn't fit in the field - throw an exception if the
    deserialization results in an error

    Right now there are three serializers: - Storable - JSON - YAML

USAGE
    1. Choose your serializer: JSON, YAML or Storable

    2. Add 'InflateColumn::Serializer' into the load_components of your
    table class

    3. add 'serializer_class' => SERIALIZER to the properties of the column
    that you want to (de/i)nflate with the SERIALIZER class.

NOTES
    As stated in the DBIC FAQ: "Be careful not to overuse this capability,
    however. If you find yourself depending more and more on some data
    within the inflated column, then it may be time to factor that data
    out."

AUTHOR
        Jose Luis Martinez
        CPAN ID: JLMARTIN
        CAPSiDE
        jlmartinez@capside.com
        http://www.pplusdomain.net

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

    The full text of the license can be found in the LICENSE file included
    with this module.

THANKS
    Matt S Trout for his valuable feedback

    Ask Bjorn Hansen

SEE ALSO
    DBIx::Class, DBIx::Class::Manual::FAQ