NAME

Lego::Part::Action - Lego part action object.

SYNOPSIS

 use Lego::Part::Action;
 my $obj = Lego::Part::Action->new;
 $obj->load_design_id($part_transfer_class, $part);
 $obj->load_element_id($part_transfer_class, $part);

METHODS

  • new()

     Constructor.
     Returns object.
  • load_design_id($part_transfer_class, $part)

     Load design id to Lego::Part object.
     Returns undef.
  • load_element_id($part_transfer_class, $part)

     Load element id to Lego::Part object.
     Returns undef.

ERRORS

 load_design_id():
         Bad transfer class. Must be 'Lego::Part::Transfer' class.
         Cannot load design ID.
                 Error: %s
 load_element_id():
         Bad transfer class. Must be 'Lego::Part::Transfer' class.
         Cannot load element ID.
                 Error: %s

EXAMPLE

 package Lego::Part::Transfer::Example;

 # Pragmas.
 use base qw(Lego::Part::Transfer);
 use strict;
 use warnings;

 # Convert design to element.
 sub design2element {
         my ($self, $part) = @_;
         $self->_check_part($part);
         if ($part->color eq 'red' && $part->design_id eq '3002') {
                 $part->element_id('300221');
         }
         return;
 }

 package main;

 # Pragmas.
 use strict;
 use warnings;

 # Modules.
 use Lego::Part;
 use Lego::Part::Action;

 # Lego part.
 my $part = Lego::Part->new(
         'color' => 'red',
         'design_id' => '3002',
 );

 #  Lego part action.
 my $act = Lego::Part::Action->new;

 # Transfer class.
 my $trans = Lego::Part::Transfer::Example->new;

 # Load element id.
 $act->load_element_id($trans, $part);

 # Print color and design ID.
 print 'Color: '.$part->color."\n";
 print 'Design ID: '.$part->design_id."\n";
 print 'Element ID: '.$part->element_id."\n";

 # Output:
 # Color: red
 # Design ID: 3002
 # Element ID: 300221

DEPENDENCIES

Class::Utils, English, Error::Pure, Scalar::Util.

SEE ALSO

Task::Lego

Install the Lego modules.

REPOSITORY

https://github.com/tupinek/Lego-Part

AUTHOR

Michal Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

 © 2013-2015 Michal Špaček
 BSD 2-Clause License

VERSION

0.03