~ubuntu-branches/ubuntu/jaunty/libclass-meta-perl/jaunty

« back to all changes in this revision

Viewing changes to README

  • Committer: Bazaar Package Importer
  • Author(s): Krzysztof Krzyzaniak (eloy)
  • Date: 2006-01-03 17:29:20 UTC
  • Revision ID: james.westby@ubuntu.com-20060103172920-h94p8qrrav90bzq0
Tags: upstream-0.52
ImportĀ upstreamĀ versionĀ 0.52

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Class/Meta version 0.52
 
2
=======================
 
3
 
 
4
Class::Meta provides an interface for automating the creation of Perl classes
 
5
with attribute data type validation. It differs from other such modules in
 
6
that it includes an introspection API that can be used as a unified interface
 
7
for all Class::Meta-generated classes. In this sense, it is an implementation
 
8
of the "Facade" design pattern.
 
9
 
 
10
JUSTIFICATION
 
11
 
 
12
One might argue that there are already too many class automation and parameter
 
13
validation modules on CPAN. And one would be right. They range from simple
 
14
accessor generators, such as Class::Accessor, to simple parameter validators,
 
15
such as Params::Validate, to more comprehensive systems, such as
 
16
Class::Contract and Class::Tangram. But, naturally, none of them could do
 
17
exactly what I needed.
 
18
 
 
19
What I needed was an implementation of the "Facade" design pattern. Okay, this
 
20
isn't a facade like the GOF meant it, but it is in the respect that it
 
21
creates classes with a common API so that objects of these classes can all be
 
22
used identically, calling the same methods on each. This is done via the
 
23
implementation of an introspection API. So the process of creating classes
 
24
with Class::Meta not only creates attributes and accessors, but also creates
 
25
objects that describe those classes. Using these descriptive objects, client
 
26
applications can determine what to do with objects of Class::Meta-generated
 
27
classes. This is particularly useful for user interface code.
 
28
 
 
29
INSTALLATION
 
30
 
 
31
To install this module, type the following:
 
32
 
 
33
   perl Build.PL
 
34
   ./Build
 
35
   ./Build test
 
36
   ./Build install
 
37
 
 
38
Or, if you don't have Module::Build installed, type the following:
 
39
 
 
40
   perl Makefile.PL
 
41
   make
 
42
   make test
 
43
   make install
 
44
 
 
45
DEPENDENCIES
 
46
 
 
47
This module requires these other modules and libraries:
 
48
 
 
49
  Data::Types 0.05 or later
 
50
  Class::ISA 0.35 or later
 
51
 
 
52
The test suite requires:
 
53
 
 
54
  Test::Simple 0.17 or later
 
55
 
 
56
COPYRIGHT AND LICENCE
 
57
 
 
58
Copyright (c) 2002-2005, David Wheeler. All Rights Reserved.
 
59
 
 
60
This module is free software; you can redistribute it and/or modify it under
 
61
the same terms as Perl itself.