#!/usr/bin/env perl use strict; use warnings; use Railsish::Database; use Railsish::Record; { no strict; no warnings; *Railsish::Database::_build_config = sub { return { dsn => "hash", user => "", password => "" }; } } package Advertisement; use Moose; use MooseX::Types::DateTimeX qw(DateTime); # use Any::Moose; # use Any::Moose qw(X::Types::DateTimeX) => ['DateTime']; extends 'Railsish::Record'; has type => ( isa => "Str", is => "ro", required => 1); has url => ( isa => "Str", is => "rw", required => 1); has title => ( isa => "Str", is => "rw", required => 1); has start_date => ( isa => DateTime, is => "rw", required => 1, coerce => 1 ); has end_date => ( isa => DateTime, is => "rw", required => 1, coerce => 1 ); __PACKAGE__->meta->make_immutable; package main; use Test::More tests => 1; my $obj = Advertisement->new( type => "normal", url => "http://example.com", title => "Example", start_date => "2009/05/08", end_date => "2009/10/08" ); my @titles = (); $obj->save; pass; exit; my $stream = Advertisement->find_all; while (my $block = $stream->next) { for my $obj (@$block) { push @titles, $obj->title; } } is_deeply(\@titles, ["Example"]);