Main > Free Download Search >

Free class meta express 0.04 software for linux

class meta express 0.04

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3103
Class::Meta::Express 0.04

Class::Meta::Express 0.04


Class::Meta::Express is a Perl module for concise, expressive creation of Class::Meta classes. more>>
Class::Meta::Express is a Perl module for concise, expressive creation of Class::Meta classes.

Synopsis

package My::Contact;
use Class::Meta::Express;

class {
meta contact => ( default_type => string );
has name;
has contact => ( required => 1 );
}

This module provides an interface to concisely yet expressively create classes with Class::Meta. Although I am of course fond of Class::Meta, Ive never been overly thrilled with its interface for creating classes:

package My::Thingy;
use Class::Meta;

BEGIN {
# Create a Class::Meta object for this class.
my $cm = Class::Meta->new( key => thingy );

# Add a constructor.
$cm->add_constructor( name => new );

# Add a couple of attributes with generated accessors.
$cm->add_attribute(
name => id,
is => integer,
required => 1,
);

$cm->add_attribute(
name => name,
is => string,
required => 1,
);

$cm->add_attribute(
name => age,
is => integer,
);

# Add a custom method.
$cm->add_method(
name => chk_pass,
code => sub { return code },
);
$cm->build;
}

This example is relatively simple; it can get a lot more verbose. But even still, all of the method calls were annoying. I mean, whoever thought of using an object oriented interface for declaring a class? (Oh yeah: I did.) I wasnt alone in wanting a more declarative interface; Curtis Poe, with my blessing, created Class::Meta::Declare, which would use this syntax to create the same class:

package My::Thingy;
use Class::Meta::Declare :all;

Class::Meta::Declare->new(
# Create a Class::Meta object for this class.
meta => [
key => thingy,
],
# Add a constructor.
constructors => [
new => { }
],
# Add a couple of attributes with generated accessors.
attributes => [
id => {
type => $TYPE_INTEGER,
required => 1,
},
name => {
required => 1,
type => $TYPE_STRING,
},
age => { type => $TYPE_INTEGER, },
],
# Add a custom method.
methods => [
chk_pass => {
code => sub { return code },
}
]
);

This approach has the advantage of being a bit more concise, and it is declarative, but I find all of the indentation levels annoying; its hard for me to figure out where I am, especially if I have to define a lot of attributes. And finally, everything is a string with this syntax, except for those ugly read-only scalars such as $TYPE_INTEGER. So I cant easily tell where one attribute ends and the next one starts. Bleh.

<<less
Download (0.009MB)
Added: 2006-10-19 License: Perl Artistic License Price:
1105 downloads
Class::Meta::Declare 0.04

Class::Meta::Declare 0.04


Class::Meta::Declare is a Perl module deprecated in favor of Class::Meta::Express. more>>
Class::Meta::Declare is a Perl module deprecated in favor of Class::Meta::Express.

SYNOPSIS

This was a first attempt at making a saner interface for Class::Meta. It is nicer, but Class::Meta::Express is nicer still. Go use that one.

package MyApp::Thingy;
use Class::Meta::Declare :all;
use Data::UUID;

Class::Meta::Declare->new(
meta => [
key => thingy,
accessors => $ACC_SEMI_AFFORDANCE,
],
attributes => [
pi => {
context => $CTXT_CLASS,
authz => $AUTHZ_READ,
default => 3.1415927,
},
id => {
authz => $AUTHZ_READ,
type => $TYPE_STRING,
default => sub { Data::UUID->new->create_str },
},
name => {
required => 1,
type => $TYPE_STRING,
default => No Name Supplied,
},
age => { type => $TYPE_INTEGER, },
],
methods => [
some_method => {
view => $VIEW_PUBLIC,
code => sub {
my $self = shift;
return [ reverse @_ ];
},
}
]
);

my $object = MyApp::Thingy->new;
print MyApp::Thingy->pi; # prints 3.1415927
print $object->name; # prints "No Name Supplied;
$object->set_name("bob");
print $object->name; # prints "bob"

This class provides an alternate interface for Class::Meta.

Class::Meta is a useful module which allows one to create Perl classes which support introspection (also known as reflection). Typically Perl classes, when created, dont supply a lot of metadata. Imported helper functions show up when you call $object->can($method). Private, protected and trusted methods are not readily supported. Fetching a list of attributes or methods is a haphazard affair. Class::Meta overcomes these shortcomings by building the classes for you and allowing you to fetch a class object:

my $class_object = $object->my_class;

foreach my $attribute ( $class_object->attributes ) {
print $attribute->name, "n";
}
foreach my $method ( $class_object->methods ) {
print $method->name, "n";
}

If youve set up your class correctly, these properties are now easy to discover.

Unfortunately, many find the Class::Meta interface to be a bit clumsy. As an alternative, Class::Meta::Declare allows you to declare your entire class in a single argument list to the constructor and have the class built for you automatically. Further, reasonable defaults are provided for just about everything.

IMPORTANT: You want this class or Class::Meta if you need an introspection API for your classes. If you do not need introspection or dynamic class generation, these modules are overkill.

<<less
Download (0.015MB)
Added: 2006-09-27 License: Perl Artistic License Price:
1122 downloads
Class::Interfaces 0.04

Class::Interfaces 0.04


Class::Interfaces is a Per module for defining interface classes inline. more>>
Class::Interfaces is a Per module for defining interface classes inline.

SYNOPSIS

# define some simple interfaces
use Class::Interfaces (
Serializable => [ pack, unpack ],
Printable => [ toString ],
Iterable => [ iterator ],
Iterator => [ hasNext, next ]
);

# or some more complex ones ...

# interface can also inherit from
# other interfaces using this form
use Class::Interfaces (
BiDirectionalIterator => {
isa => Iterator,
methods => [ hasPrev, prev ]
},
ResetableIterator => {
isa => Iterator,
methods => [ reset ]
},
# we even support multiple inheritance
ResetableBiDirectionalIterator => {
isa => [ ResetableIterator, BiDirectionalIterator ]
}
);

# it is also possible to create an
# empty interface, sometimes called
# a marker interface
use Class::Interfaces (
JustAMarker => undef
);

This module provides a simple means to define abstract class interfaces, which can be used to program using the concepts of interface polymorphism.

<<less
Download (0.006MB)
Added: 2006-10-05 License: Perl Artistic License Price:
1115 downloads
Class::Meta::Type 0.53

Class::Meta::Type 0.53


Class::Meta::Type is a Perl module for data type validation and accessor building. more>>
Class::Meta::Type is a Perl module for data type validation and accessor building.

SYNOPSIS

package MyApp::TypeDef;

use strict;
use Class::Meta::Type;
use IO::Socket;

my $type = Class::Meta::Type->add( key => io_socket,
desc => IO::Socket object,
name => IO::Socket Object );

This class stores the various data types used by Class::Meta. It manages all aspects of data type validation and method creation. New data types can be added to Class::Meta::Type by means of the add() constructor. This is useful for creating custom types for your Class::Meta-built classes.

Note:This class manages the most advanced features of Class::Meta. Before deciding to create your own accessor closures as described in add(), you should have a thorough working knowledge of how Class::Meta works, and have studied the add() method carefully. Simple data type definitions such as that shown in the SYNOPSIS, on the other hand, are encouraged.

<<less
Download (0.060MB)
Added: 2006-09-22 License: Perl Artistic License Price:
1127 downloads
Class::Meta 0.53

Class::Meta 0.53


Class::Meta is a Perl class automation, introspection, and data validation. more>>
Class::Meta is a Perl class automation, introspection, and data validation.

SYNOPSIS

Generate a class:
package MyApp::Thingy;
use strict;
use Class::Meta;
use Class::Meta::Types::String;
use Class::Meta::Types::Numeric;

BEGIN {

# Create a Class::Meta object for this class.
my $cm = Class::Meta->new( key => thingy );

# Add a constructor.
$cm->add_constructor(
name => new,
create => 1,
);

# Add a couple of attributes with generated methods.
$cm->add_attribute(
name => uuid,
authz => Class::Meta::READ,
type => string,
required => 1,
default => sub { Data::UUID->new->create_str },
);
$cm->add_attribute(
name => name,
is => string,
required => 1,
default => undef,
);
$cm->add_attribute(
name => age,
is => integer,
default => undef,
);

# Add a custom method.
$cm->add_method(
name => chk_pass,
view => Class::Meta::PUBLIC,
);
$cm->build;
}
Then use the class:
use MyApp::Thingy;

my $thingy = MyApp::Thingy->new;
print "ID: ", $thingy->id, $/;
$thingy->name(Larry);
print "Name: ", $thingy->name, $/;
$thingy->age(42);
print "Age: ", $thingy->age, $/;
Or make use of the introspection API:
use MyApp::Thingy;

my $class = MyApp::Thingy->my_class;
my $thingy;

print "Examining object of class ", $class->package, $/;

print "nConstructors:n";
for my $ctor ($class->constructors) {
print " o ", $ctor->name, $/;
$thingy = $ctor->call($class->package);
}

print "nAttributes:n";
for my $attr ($class->attributes) {
print " o ", $attr->name, " => ", $attr->get($thingy), $/;
if ($attr->authz >= Class::Meta::SET && $attr->type eq string) {
$attr->get($thingy, hey there!);
print " Changed to: ", $attr->get($thingy), $/;
}
}

print "nMethods:n";
for my $meth ($class->methods) {
print " o ", $meth->name, $/;
$meth->call($thingy);
}

Class::Meta provides an interface for automating the creation of Perl classes with attribute data type validation. It differs from other such modules in that it includes an introspection API that can be used as a unified interface for all Class::Meta-generated classes. In this sense, it is an implementation of the "Facade" design pattern.

<<less
Download (0.060MB)
Added: 2006-10-05 License: Perl Artistic License Price:
1114 downloads
VBA Express 1.2

VBA Express 1.2


VBA Express is a frontend for the very popular game emulator VisualBoyAdvance. more>>
VBA Express is a frontend for the very popular game emulator VisualBoyAdvance.

Whats VBA Express? Its First, to configure VisualBoyAdvance (emulator)... EASILY! Graphics, sound, controls (keyboard and joystick), paths (to saves and captures)... You can configure all this without edit VisualBoyAdvance.cfg manually!

Open your Roms (games) with the frontend! You can run the roms with "Play!" button (without using the console command VisualBoyAdvance game.rom).

<<less
Download (1.3MB)
Added: 2006-11-04 License: GPL (GNU General Public License) Price:
1125 downloads
Class::Declare::Attributes 0.04

Class::Declare::Attributes 0.04


Class::Declare::Attributes is a Perl module with Class::Declare method types using Perl attributes. more>>
Class::Declare::Attributes is a Perl module with Class::Declare method types using Perl attributes.

SYNOPSIS

package My::Class;

use 5.006;
use strict;
use warnings;

use base qw( Class::Declare::Attributes );

# declare the class/instance attributes
__PACKAGE__->declare( ... );

#
# declare class/static/restricted/etc methods of this package
#

sub my_abstract : abstract { ... }
sub my_class : class { ... }
sub my_static : static { ... }
sub my_restricted : restricted { ... }
sub my_public : public { ... }
sub my_private : private { ... }
sub my_protected : protected { ... }

Class::Declare::Attributes extends Class::Declare by adding support for Perl attributes for specifying class method types. This extension was inspired by Damian Conways Attribute::Handlers module, and Tatsuhiko Miyagawas Attribute::Protected module. The original implementation used Attribute::Handlers, but now simply refers to attributes.

The addition of Perl attribute support (not to be confused with object attributes, which are entirely different, and also supported by Class::Declare) greatly simplifies the specification of Class::Declare-derived class and instance methods. This should aid in the porting of existing code (Perl, Java and C++) to a Class::Declare framework, as well as simplify the development of new modules.

With the addition of Perl attributes, Class::Declare methods can now be written as

sub method : public
{
my $self = shift;
...
}
instead of
sub method
{
my $self = __PACKAGE__->public( shift );
...
}

<<less
Download (0.021MB)
Added: 2007-06-20 License: Perl Artistic License Price:
857 downloads
Class::Cloneable 0.03

Class::Cloneable 0.03


Class::Cloneable is a base class for Cloneable objects. more>>
Class::Cloneable is a base class for Cloneable objects.

SYNOPSIS

package MyObject;
our @ISA = (Class::Cloneable);

# calling clone on an instance of MyObject
# will give you full deep-cloning functionality

This module provides a flexible base class for building objects with cloning capabilities. This module does its best to respect the encapsulation of all other objects, including subclasses of itself. This is intended to be a stricter and more OO-ish option than the more general purpose Clone and Clone::PP modules.

<<less
Download (0.008MB)
Added: 2006-10-06 License: Perl Artistic License Price:
1114 downloads
Locale::Memories 0.04

Locale::Memories 0.04


Locale::Memories is a Perl module for L10N Message Retrieval. more>>
Locale::Memories is a Perl module for L10N Message Retrieval.

SYNOPSIS

my $lm = Locale::Memories->new();
$lm->load_index(path_to_index);
$lm->index_msg($locale, $msg_id, $msg_str);
$lm->translate_msg($locale, $msg_id);

This module is specialized module for indexing and retrieving .po messages.

<<less
Download (0.023MB)
Added: 2007-06-12 License: Perl Artistic License Price:
864 downloads
Class::MOP 0.35

Class::MOP 0.35


Class::MOP is a Meta Object Protocol for Perl 5. more>>
Class::MOP is a Meta Object Protocol for Perl 5.

SYNOPSIS

# ... This will come later, for now see
# the other SYNOPSIS for more information

This module is an attempt to create a meta object protocol for the Perl 5 object system. It makes no attempt to change the behavior or characteristics of the Perl 5 object system, only to create a protocol for its manipulation and introspection.

That said, it does attempt to create the tools for building a rich set of extensions to the Perl 5 object system. Every attempt has been made for these tools to keep to the spirit of the Perl 5 object system that we all know and love.

This documentation is admittedly sparse on details, as time permits I will try to improve them. For now, I suggest looking at the items listed in the "SEE ALSO" section for more information. In particular the book "The Art of the Meta Object Protocol" was very influential in the development of this system.

What is a Meta Object Protocol?

A meta object protocol is an API to an object system.

To be more specific, it is a set of abstractions of the components of an object system (typically things like; classes, object, methods, object attributes, etc.). These abstractions can then be used to both inspect and manipulate the object system which they describe.

It can be said that there are two MOPs for any object system; the implicit MOP, and the explicit MOP. The implicit MOP handles things like method dispatch or inheritance, which happen automatically as part of how the object system works. The explicit MOP typically handles the introspection/reflection features of the object system. All object systems have implicit MOPs, without one, they would not work. Explict MOPs however as less common, and depending on the language can vary from restrictive (Reflection in Java or C#) to wide open (CLOS is a perfect example).

<<less
Download (0.072MB)
Added: 2006-10-20 License: Perl Artistic License Price:
1099 downloads
DVD BacKup Express 5

DVD BacKup Express 5


DVD BacKup Express is a small Kommander Script to create a GUI for dvdbackup. more>>
DVD BacKup Express is a small Kommander Script to create a GUI for dvdbackup.

I made it because it can be run on any platform with kommander installed and dvdbackup available (which may be more platforms than kdvdbackup or other binary frontends are available for)

There is a lot of room for improvement here. Feel free to spruce it up a bit and send me the new .kmdr file and i will update this.

<<less
Download (0.004MB)
Added: 2006-02-15 License: GPL (GNU General Public License) Price:
1354 downloads
Class::ArrayObjects 1.02

Class::ArrayObjects 1.02


Class::ArrayObjects is a Perl utility class for array based objects. more>>
Class::ArrayObjects is a Perl utility class for array based objects.

SYNOPSIS

package Some::Class;
use Class::ArrayObjects define => {
fields => [qw(_foo_ _bar_ BAZ)],
};

or

package Other::Class;
use base Some::Class;
use Class::ArrayObjects extend => {
class => Some::Class,
with => [qw(_zorg_ _fnord_ BEZ)],
import => 1,
};

This module is little more than a cute way of defining constant subs in your own package. Constant subs are very useful when dealing with array based objects because they allow one to access array slots by name instead of by index.

<<less
Download (0.006MB)
Added: 2006-10-06 License: Perl Artistic License Price:
1113 downloads
IBM DB2 Express-C 9.5

IBM DB2 Express-C 9.5


IBM DB2 Express-C is a free database for storing and managing relational and XML data. It is free to download, use, distribute and does not have any e... more>> <<less
Download (290967KB)
Added: 2009-04-06 License: Freeware Price: Free
200 downloads
mediadbs 0.04

mediadbs 0.04


mediadbs is a digital media database system. more>>
mediadbs is a project that aims to produce a flexible database system for tracking and searching for multiple forms of electronic media (eg mp3, divx, ogg) distributed on multiple servers in a local network. It currently only supports mp3 format files.

<<less
Download (0.020MB)
Added: 2006-10-17 License: GPL (GNU General Public License) Price:
1102 downloads
LDasm 0.04.53

LDasm 0.04.53


LDasm is an x86 disassembler and GUI. more>>
LDasm (Linux Disassembler) is a Perl/Tk-based GUI for objdump/binutils that tries to imitate the looknfeel of W32Dasm.
It searchs for cross-references (e.g. strings), converts the code from GAS to a MASM-like style, traces programs and much more.
Comes along with PTrace a process-flow-logger.
Enhancements:
- Fileoffset is calculated and displayed
<<less
Download (0.059MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1661 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5