package Testproject::Object; use base qw(Froody::Implementation); sub implements { "Testproject::API" => "testproject.object.*" } use strict; use warnings; use List::Util 'reduce'; sub myget :FroodyMethod(get) { return 'myget reached'; } sub method { return {}; } sub text { } sub email { } sub sum { my ($self, $args) = @_; return reduce { $a + $b } @{$args->{values}} } sub range { my ($self, $args) = @_; return { value => [$args->{base} - $args->{offset}, $args->{base} + $args->{offset} ] }; } sub range2 { my ($self, $args) = @_; return { value => [{ num => $args->{base} - $args->{offset} }, { num => $args->{base} + $args->{offset} }, ]}; } sub extra { return { blah => 'bleh' }; } sub texttest { return { next => 100, blah => "foo\nhate\n"}; } sub params { my ($invoker, $args) = @_; # do this in 2 steps, because keys %{ undef } doesn't break. Weird. # use Data::Dumper; warn Dumper($args); my %hash = %{ $args->{the_rest} }; my $count = scalar keys %hash; return $count; } sub upload { my ($invoker, $args) = @_; return -s $args->{file}[0]->filename; } 1;