Articulate::Syntax - Common functions and syntactic sugar for Articulate
See Artciulate::Response.
See Artciulate::Request.
See Artciulate::Credentials.
See Artciulate::Permission.
See Artciulate::Location.
See Artciulate::LocationSpecification.
instantiate_array accepts an arrayref of values which represent objects. For each value, if it is not an object, it will attempt to instantiate one using instantiate.
instantiate_array
instantiate
If you pass instantiate_array a value which is not an arrayref, it will assume you meant to give it an arrayref with a single item; or, if you pass it undef, it will return an empty arrayref.
undef
The purpose of this function is to enable the following:
package Articulate::SomeDelegatingComponent; use Moo; has delegates_to => is => 'rw', default => sub { [] }, coerce => sub{ instantiate_array(@_) };
Which means given config like the following:
Articulate::SomeDelegatingComponent: delegates_to: - My::Validation::For::Articles - class: My::Validation::For::Images args: - max_width: 1024 max_height: 768 - class: My::Validation::For::Documents constructor: preset args: pdf
You can be guaranteed that looping through @{ $self->delegates_to } will always produce objects.
@{ $self->delegates_to }
Attempts to create an object from the hashref or class name provided.
If the value is a string, it will treat as a class name, and perform $class->new, or, if the method exists, $class->instance will be preferred (for instance, as provided by MooX::Singleton).
$class->new
$class->instance
MooX::Singleton
If the value is a hashref, it will look at the values for the keys class, constructor, and args. It will then attempt to perform $class->$constructor(@$args), unless the constructor is absent (in which case instance or new will be supplied), or if args is not an arrayref, in which case it will be passed to the constructor as a single argument (or the empty list will be passed if args is undefined).
class
constructor
args
$class->$constructor(@$args)
instance
new
If the value is an object, the object will simply be returned.
sub email_address { from_meta (shift, 'schema/user/email_address'); }
This method uses Data::DPath to retrieve a field from the metadata structure.
my $value = dpath_get($structure, '/path/in/structure');
dpath_set($structure, '/path/in/structure', $value);
# in config: rules: default: alias: main_schema main_schema: dsn: 'csv:main.csv' utf8: 1 has schemata => is => 'rw', default => sub { {} }, coerce => sub { instantiate_selection @_ };
Expects a hash. If any of the values are single-key hashes with the key 'alias' then the alias is resolved. Otherwise the value is instantiated.
If a value other than a hash is given, returns a hash with the key 'default' and the original value instantiated.
rules: default: alias: two_rules two_rules: - Some::Rule - Some::Other::Rule has rules => is => 'rw', default => sub { {} }, coerce => sub { instantiate_array_selection @_ };
Expects a hash. If any of the values are single-key hashes with the key 'alias' then the alias is resolved. Otherwise the value is instantiated as an array (see instantiate_aray).
instantiate_aray
If a value other than a hash is given, returns a hash with the key 'default' and the original value instantiated as an array.
# given this config: schemata: default: "[Complicated] configuration: can_be->[string, hash, whatever]" schema_generic: alias: default # if your class has sub schema { select_from schemata => @_ } # then you can do $self->schema; $self->schema('default'); # same thing $self->schema('schema_generic'); # same thing, because of alias $self->schemata->{default}; # This is what they all do in practice
Implements a user-friendly selection mechanism like the one implemented by Dancer::Plugin::DBIC::schema.
Dancer::Plugin::DBIC::schema
is_single_key_hash ( { foo => 123 } ); # returns 1 is_single_key_hash ( { foo => 123 }, 'foo' ); # returns 1 is_single_key_hash ( { foo => 123 }, 'bar' ); # returns 0
Returns 1 if the first argument is a hashref with exactly one key. If a second argument is provided, then the key, if it exists, must be equal to that argument, or the return value will be 0.
my $merged = hash_merge ($parent, $child)
Returns a new hashref whose values represent a union of the parent's and the child's. The child's values overwrite the parent, in case of conflict. The merge is deep (i.e. it handles nested hashes), using Hash::Merge with right precedence.
To install Articulate, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Articulate
CPAN shell
perl -MCPAN -e shell install Articulate
For more information on module installation, please visit the detailed CPAN module installation guide.