summaryrefslogtreecommitdiff
path: root/lib/GridFiller.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/GridFiller.pm')
-rw-r--r--lib/GridFiller.pm53
1 files changed, 5 insertions, 48 deletions
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();