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 +++++------------------------------------------- lib/GridFiller/Status.pm | 12 ++--------- 2 files changed, 7 insertions(+), 58 deletions(-) (limited to 'lib') 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(); diff --git a/lib/GridFiller/Status.pm b/lib/GridFiller/Status.pm index bccb20f..65932b8 100644 --- a/lib/GridFiller/Status.pm +++ b/lib/GridFiller/Status.pm @@ -25,13 +25,13 @@ has grid => ( has mode => ( isa => Str, - is => 'rw', + is => 'ro', default => 'given', ); has length => ( isa => CodeRef, - is => 'rw', + is => 'ro', default => sub { sub {length shift} }, ); @@ -50,7 +50,6 @@ has grid_status => ( isa => GridStatusT, is => 'ro', lazy_build => 1, - clearer => '_reset_gs', ); sub _build_words_to_use { @@ -144,11 +143,4 @@ sub to_string { } } -sub reset { - my ($self) = @_; - - $self->_reset_gs; - $self->_reset_wts; -} - 1; -- cgit v1.2.3