From d336dfe3d79faf0b80b4b5fafee886b3568b0e13 Mon Sep 17 00:00:00 2001 From: dakkar Date: Wed, 20 Apr 2011 21:31:13 +0100 Subject: make objects one-shot --- lib/GridFiller.pm | 53 +++++------------------------------------------------ 1 file changed, 5 insertions(+), 48 deletions(-) (limited to 'lib/GridFiller.pm') diff --git a/lib/GridFiller.pm b/lib/GridFiller.pm index 3932f0d..aef8dcb 100644 --- a/lib/GridFiller.pm +++ b/lib/GridFiller.pm @@ -2,68 +2,28 @@ package GridFiller; use Moose; use namespace::autoclean; use GridFiller::Types qw(GridT WordListT ); -use MooseX::Types::Moose qw(CodeRef); -use GridFiller::Status; -use GridFiller::Result::Text; -use GridFiller::Chooser::Smarter; use Carp; -use Class::MOP; with 'MooseX::Log::Log4perl'; -has words => ( - isa => WordListT, - required => 1, - is => 'ro', -); - -has grid => ( - isa => GridT, - required => 1, - is => 'ro', -); - has status => ( isa => 'GridFiller::Status', is => 'ro', - writer => '_status', - lazy_build => 1, + required => 1, ); -sub _build_status { - my ($self) = @_; - return GridFiller::Status->new({ - words => $self->words, - grid => $self->grid, - }); -} - has chooser => ( isa => 'GridFiller::Chooser', - is => 'rw', - lazy_build => 1, + is => 'ro', + required => 1, ); -sub _build_chooser { - my ($self) = @_; - return GridFiller::Chooser::Smarter->new({ - status => $self->status, - }); -} - has result => ( isa => 'GridFiller::Result', - is => 'rw', - lazy_build => 1, + is => 'ro', + required => 1, ); -sub _build_result { - my ($self) = @_; - return GridFiller::Result::Text->new({ - source_grid => $self->grid, - }); -} - sub fill { my ($self) = @_; @@ -71,9 +31,6 @@ sub fill { my $result=$self->result; my $chooser=$self->chooser; - $status->reset; - $result->reset; - while ($status->unfilled() && $status->has_next_word()) { my $word = $status->get_next_word(); -- cgit v1.2.3