• Stars
    star
    14
  • Rank 1,438,076 (Top 29 %)
  • Language
    Perl
  • Created almost 14 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NAME
    Class::Accessor::Lite - a minimalistic variant of Class::Accessor

SYNOPSIS
        package MyPackage;

        use Class::Accessor::Lite (
            new => 1,
            rw  => [ qw(foo bar) ],
            ro  => [ qw(baz) ],
            wo  => [ qw(hoge) ],
        );

DESCRIPTION
    The module is a variant of "Class::Accessor". It is fast and requires
    less typing, has no dependencies to other modules, and does not mess up
    the @ISA.

THE USE STATEMENT
    The use statement (i.e. the "import" function) of the module takes a
    single hash as an argument that specifies the types and the names of the
    properties. Recognises the following keys.

    new => $true_or_false
        the default constructor is created if the value evaluates to true,
        otherwise nothing is done (the default behaviour)

    rw => \@name_of_the_properties
        creates a read / write accessor for the name of the properties
        passed through as an arrayref

    ro => \@name_of_the_properties
        creates a read-only accessor for the name of the properties passed
        through as an arrayref

    wo => \@name_of_the_properties
        creates a write-only accessor for the name of the properties passed
        through as an arrayref

    For more detailed explanation read the following section describing the
    behaviour of each function that actually creates the accessors.

FUNCTIONS
    As of version 0.04 the properties can be specified as the arguments to
    the "use" statement (as can be seen in the SYNOPSIS) which is now the
    recommended way of using the module, but for compatibility the following
    functions are provided as well.

  Class::Accessor::Lite->mk_accessors(@name_of_the_properties)
    Creates an accessor in current package under the name specified by the
    arguments that access the properties (of a hashref) with the same name.

  Class::Accessor::Lite->mk_ro_accessors(@name_of_the_properties)
    Same as mk_accessors() except it will generate read-only accessors (i.e.
    true accessors). If you attempt to set a value with these accessors it
    will throw an exception.

  Class::Accessor::Lite->mk_wo_accessors(@name_of_the_properties)
    Same as mk_accessors() except it will generate write-only accessors
    (i.e. mutators). If you attempt to read a value with these accessors it
    will throw an exception.

  Class::Accessor::Lite->mk_new()
    Creates the "new" function that accepts a hash or a hashref as the
    initial properties of the object.

  Class::Accessor::Lite->mk_new_and_accessors(@name_of_the_properties)
    DEPRECATED. Use the new "use Class::Accessor::Lite (...)" style.

FAQ
  Can I use "Class::Accessor::Lite" in an inherited module?
    Yes in most cases, when the class object in the super class is
    implemented using a hashref. However you _should_ _not_ create the
    constructor for the inherited class by calling
    "<Class::Accessor::Lite-"new()>> or by "<use Class::Accessor::Lite (new
    =" 1)>>. The only other thing that "Class::Accessor::Lite" does is to
    set up the accessor functions for given property names through a blessed
    hashref.

  What happens when passing more than one arguments to the accessor?
    When the accessor built by Class::Accessor::Lite is given more than one
    arguments, a reference to the arguments will be saved as an arrayref.
    This behaviour might not be necessary but is implemented as is to
    maintain compatibility with Class::Accessor::Fast.

        my @data = (1, 2, 3);
        $obj->someproperty(@data);

        $obj->someproperty->[2]++; # $data[3] is incremented

    In general, you should pass an arrayref to set an arrayref to a
    property.

        my @data = (1, 2, 3);
        $obj->someproperty([ @data ]); # save a copy using arrayref

        $obj->someproper->[2]++; # @data is not modified

SEE ALSO
    Class::Accessor

    Class::Accessor::Lite

AUTHORS
    Copyright (C) 2008 - 2010 Kazuho Oku

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself, either Perl version 5.8.6 or, at
    your option, any later version of Perl 5 you may have available.

More Repositories

1

picojson

a header-file-only, JSON parser serializer in C++
C++
1,082
star
2

picoev

a tiny, lightning fast event loop for network applications
C
388
star
3

unco

undo any command
C
229
star
4

rat

NAT written in pure ruby
Ruby
172
star
5

jailing

super-easy chroot jail builder/runner for Linux
Perl
165
star
6

kaztools

shellscripts and utilities for myself
Perl
96
star
7

picohash

header-file-only implementation of various hash algorithms
C
89
star
8

Starlet

a Plack Server, formerly known as Plack::Server::Standalone::Prefork::Server::Starter
Perl
69
star
9

C

pseudo-interpreter of the C programming language (using GCC)
C
64
star
10

mysql_json

a MySQL UDF for handling JSON
C++
63
star
11

wpbench

benchmark the load timings of a web page
HTML
61
star
12

picogc

a tiny, portable, precise, mark-and-sweep GC in C++
C
57
star
13

p5-Server-Starter

a superdaemon for hot-deploying server programs
Perl
44
star
14

rangecoder

a fast range coder in C++, using SSE
C++
37
star
15

sha1.min.js

SHA-1 implementation in JavaScript (1480 bytes; intended for bookmarklets, etc.)
JavaScript
34
star
16

url_compress

a static PPM-based URL compressor / decompressor
Perl
34
star
17

cppref

man-style access to cppreference.com documents
Perl
32
star
18

mod_reproxy

X-Reproxy-URL header support for Apache/2.x
C
31
star
19

p5-http-parser-xs

a fast http parser
C
30
star
20

zson

binary JSON, compact and with support for streaming
JavaScript
28
star
21

p5-text-microtemplate

Text::MicroTemplate
Perl
24
star
22

mysql-ranking-engine

(to become) a MySQL storage engine specializing in ranking operation
C++
23
star
23

golombset

An implementation of Golomb compressed set in C
C
22
star
24

manymanythreads

A synthetic benchmark of C10K problem using pthreads or epoll
C
21
star
25

cosmic

fail-safe management tools for network-based software RAID, using mdadm + iSCSI
Perl
18
star
26

p5-test-mysqld

mysqld runner for tests
Perl
18
star
27

komake

A wrapper of make with sub-make concurrency limit
Perl
17
star
28

force-dedupe-git-modules

forcibly dedupe git-based NPM modules
JavaScript
16
star
29

p5-Net-DNS-Lite

pure-perl DNS resolver with support for timeout
Perl
16
star
30

daifuku

transaction logging in JSON, within the MySQL database
Perl
14
star
31

p5-Parallel-Scoreboard

A scoreboard for monitoring status of many processes
Perl
14
star
32

blockdiff

differential backup tool for block devices and files
Perl
13
star
33

p5-test-httpd-apache2

Apache2 starter for testing perl modules
Perl
13
star
34

p5-Cache-LRU

a simple, fast implementation of an LRU cache in pure perl
Perl
12
star
35

p5-string-filter

Regexp-based structured text converter
Perl
12
star
36

kmyacc

http://www005.upp.so-net.ne.jp/kmori/kmyacc/
C
11
star
37

p5-parallel-prefork

Perl
11
star
38

picotemplate

a tiny template engine for embedded HTML
Perl
10
star
39

nopan

install software directly from SVN or Git (instead of from CPAN)
Perl
9
star
40

hq

C++
8
star
41

qhashmap

an open-addressing, linear-probing hash table, derived from v8/src/hashmap.h
C++
8
star
42

picostring

simple rope impl. using std::string
C++
8
star
43

add_with_overflow

an example that links LLVM bitcode and C++ with link-time optimization
C++
8
star
44

App-Restarter

restart command when files change
7
star
45

visiflate

a dumper for Deflate (RFC 1951); useful for visualizing the algorithm
C
7
star
46

git-pushdir

pushes the files in current directory to Git repository
Perl
7
star
47

h2-cache-digest

code snippets for h2-cache-digest
C
6
star
48

puby

6
star
49

draft-kazuho-httpbis-priority

Makefile
6
star
50

p5-test-postgresql

postgresql runner for tests
Perl
5
star
51

CGI-Application-Emulate-PSGI

a legacy-code-friendly PSGI adapter for CGI::Application
Perl
5
star
52

mprofile

http://developer.cybozu.co.jp/archives/kazuho/2009/07/mysql-539d.html
Perl
5
star
53

fakeiops

an LD_PRELOAD library for simulating storage systems with various IOPS
C
5
star
54

draft-kazuho-quic-quic-on-streams

Makefile
5
star
55

quic-perf-metrics

Makefile
5
star
56

ieee754.js

Pure-javascript decoder for IEEE 754 floating point numbers
JavaScript
4
star
57

japanize.firefox

Firefox plugin for Japanize
JavaScript
4
star
58

incline

replicator for RDB shards
C++
4
star
59

friendsd

server of the `friends` program, used at komaba.ecc.u-tokyo.ac.jp from 1996 to 1999
4
star
60

benchart

Minimalistic benchmark logger and visualizer
Perl
3
star
61

p5-Sub-Throttle

Perl
3
star
62

SQL-QueryMaker

helper functions for SQL query generation
Perl
3
star
63

Plack-Middleware-AddDefaultCharset

port of Apache2's AddDefaultCharset
Perl
3
star
64

bindlocal

an LD_PRELOAD library that forces servers to listen on 127.0.0.1 instead of 0.0.0.0
C
3
star
65

esDateParser

a date parser compliant to ECMA 262, derived from V8
C++
3
star
66

p5-Sub-Timekeeper

calls a function with a stopwatch
Perl
3
star
67

Test-Mocha-PhantomJS

JavaScript
3
star
68

examples

code snippets
C
3
star
69

kazuho.github.com

HTML
2
star
70

draft-kazuho-quic-authenticated-handshake

Authenticated Handshake for QUIC (using ESNI)
Makefile
2
star
71

p5-DBIx-Printf

A printf-style prepared statement
Perl
2
star
72

aobench.jsx

original: http://kioku.sys-k.net/aobench_jsx/
JavaScript
2
star
73

draft-kazuho-quic-address-bound-token

Makefile
2
star
74

gh-fetch-submodules

fetch the missing submodule contents within a GitHub release tarball
Perl
2
star
75

kazutils.c

tiny set of C functions
1
star
76

myfirst-usdt

learning userspace DTrace
Makefile
1
star
77

early-hints

now part of https://github.com/httpwg/http-extensions
Makefile
1
star
78

net.examp1e.picoorm

Java
1
star
79

picoshparser

(experimental) parser of Structured Headers
C
1
star
80

force-dedupe-git-modules.m2

test repo for https://github.com/kazuho/force-dedupe-git-modules
JavaScript
1
star
81

draft-kazuho-httpbis-selftrace

Makefile
1
star
82

force-dedupe-git-modules.m1

test repo for https://github.com/kazuho/force-dedupe-git-modules
JavaScript
1
star
83

protected-sni

Makefile
1
star
84

http-cache-fingerprint

cache fingerprint header for HTTP
Makefile
1
star