The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package My::MooseEmitter;
# vim: ts=8 sts=4 et sw=4 sr sta
use Moose;

has c => (
    is          => 'ro',
    init_arg    => 'c',
);

has jason => (
    is          => 'rw',
    default     => 'tired',
);

has faked_value => (
    is          => 'rw',
    init_arg    => 'faked_config_value',
    required    => 1,
);

has from_config => (
    is          => 'ro',
    init_arg    => 'some_config_value',
    required    => 1,
);

sub BUILDARGS {
   my ($class, $args) = @_; 

   $args->{faked_config_value} = 'not really here';

   return {
       %{$args},
       %{ $args->{c}->config->{$class} }
   };
}

sub BUILD {
    my $self = shift;
    $self->c->config->{"My::MooseEmitter"}{set_in_new} = 1;
    return 1;
}

sub emit {
    my $self    = shift;
    my $c       = shift;
    my $output  = shift;
    $self->c->config->{"My::MooseEmitter"}{set_in_emit} = 1;
}

1;