1 package SomeModelClassInterface;
3 use namespace::autoclean;
7 package SomeModelClass;
9 use CatalystX::ControllerGeneratingModel;
10 use namespace::autoclean;
12 # Note trivial calling convention.
13 # Apply MX::Method::Signatures and MX::Types::Structured to be less lame.
15 # Introspection should only reflect methods which satisfy the calling convention
16 # This is left as an exercise to the reader. :)
18 # Note command syntax not actually needed, this could be a normal sub,
19 # but doing so makes the eventual merge harder..
21 command say_hello => sub {
22 my ($self, $document) = @_;
24 confess("Not a hash") unless (ref($document) eq 'HASH');
25 my $name = $document->{name};
26 return({ type => 'say_hello_response',
28 body => "Hello $name" });
31 with 'SomeModelClassInterface';
33 __PACKAGE__->meta->make_immutable;