Fix tests, add autobox to flatten interface roles so you can use a string or array...
[catagits/CatalystX-DynamicComponent.git] / t / lib / SomeModelClass.pm
CommitLineData
61ef2dee 1package SomeModelClassInterface;
2use Moose::Role;
3use namespace::autoclean;
4
5requires 'say_hello';
6
7d26c84b 7package SomeModelClass;
8use Moose;
8c228ad4 9use CatalystX::ControllerGeneratingModel;
046d763d 10use namespace::autoclean;
7d26c84b 11
12# Note trivial calling convention.
13# Apply MX::Method::Signatures and MX::Types::Structured to be less lame.
14
15# Introspection should only reflect methods which satisfy the calling convention
16# This is left as an exercise to the reader. :)
17
d7bd7765 18# Note command syntax not actually needed, this could be a normal sub,
19# but doing so makes the eventual merge harder..
20
8c228ad4 21command say_hello => sub {
d7bd7765 22 my ($self, $document) = @_;
23
3765b9ee 24 confess("Not a hash") unless (ref($document) eq 'HASH');
d7bd7765 25 my $name = $document->{name};
26 return({ type => 'say_hello_response',
27
28 body => "Hello $name" });
8c228ad4 29};
7d26c84b 30
61ef2dee 31with 'SomeModelClassInterface';
32
7d26c84b 33__PACKAGE__->meta->make_immutable;
34