Class::Meta::Types::String - String data types


Class-Meta documentation Contained in the Class-Meta distribution.

Index


Code Index:

NAME

Top

Class::Meta::Types::String - String data types

SYNOPSIS

Top

  package MyApp::Thingy;
  use strict;
  use Class::Meta;
  use Class::Meta::Types::String;
  # OR...
  # use Class::Meta::Types::String 'affordance';
  # OR...
  # use Class::Meta::Types::String 'semi-affordance';

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

      # Add a string attribute.
      $cm->add_attribute( name => 'name',
                          type => 'string' );
      $cm->build;
  }

DESCRIPTION

Top

This module provides a string data type for use with Class::Meta attributes. Simply load it, then pass "string" to the add_attribute() method of a Class::Meta object to create an attribute of the string data type. See Class::Meta::Type for more information on using and creating data types.

SUPPORT

Top

This module is stored in an open GitHub repository. Feel free to fork and contribute!

Please file bug reports via GitHub Issues or by sending mail to bug-Class-Meta.cpan.org.

AUTHOR

Top

David E. Wheeler <david@justatheory.com>

SEE ALSO

Top

Other classes of interest within the Class::Meta distribution include:

Class::Meta

This class contains most of the documentation you need to get started with Class::Meta.

Class::Meta::Type

This class manages the creation of data types.

Class::Meta::Attribute

This class manages Class::Meta class attributes, all of which are based on data types.

Other data type modules:

Class::Meta::Types::Perl
Class::Meta::Types::Boolean
Class::Meta::Types::Numeric

COPYRIGHT AND LICENSE

Top


Class-Meta documentation Contained in the Class-Meta distribution.
package Class::Meta::Types::String;

use strict;
use Class::Meta::Type;
our $VERSION = '0.65';

sub import {
    my ($pkg, $builder) = @_;
    $builder ||= 'default';
    return if eval "Class::Meta::Type->new('string')";

    Class::Meta::Type->add(
        key     => "string",
        name    => "String",
        desc    => "String",
        builder => $builder,
        check   => sub {
            return unless defined $_[0] && ref $_[0];
            $_[2]->class->handle_error("Value '$_[0]' is not a valid string");
        }
    );
}

1;
__END__