Beagle
view release on metacpan or search on metacpan
lib/Beagle/Model/Info.pm view on Meta::CPAN
isa => 'Str',
is => 'rw',
default => '',
);
has 'name' => (
isa => 'Str',
is => 'rw',
default => 'beagle user',
trigger => sub {
my $self = shift;
my $value = shift;
require Beagle::Backend;
my $backend = Beagle::Backend->new( root => $self->root );
if ( $backend->isa('Beagle::Backend::Git') ) {
my $old_name = $backend->git->config( '--get', 'user.name' ) || '';
chomp $old_name;
if ( $old_name ne $value ) {
$backend->git->config( '--replace-all', 'user.name', $value );
}
}
},
);
has 'email' => (
isa => 'Str',
is => 'rw',
default => '',
trigger => sub {
my $self = shift;
my $value = shift;
require Beagle::Backend;
my $backend = Beagle::Backend->new( root => $self->root );
if ( $backend->isa('Beagle::Backend::Git') ) {
my $old_email = $backend->git->config( '--get', 'user.email' )
|| '';
chomp $old_email;
if ( $old_email ne $value ) {
$backend->git->config( '--replace-all', 'user.email', $value );
}
}
},
);
has 'career' => (
isa => 'Str',
is => 'rw',
default => '',
);
has 'location' => (
isa => 'Str',
is => 'rw',
default => '',
);
has 'avatar' => (
isa => 'Str',
is => 'rw',
default => 'system/images/beagle.png',
trigger => sub {
my $self = shift;
my $value = shift;
return unless $value && $value !~ m{/};
$value = join '/', 'static', split_id($self->id), $value;
$self->{avatar} = $value;
},
);
has 'page_limit' => (
isa => 'Str',
is => 'rw',
default => sub {
$ENV{BEAGLE_PAGE_LIMIT} || core_config->{page_limit} || 10;
},
);
has 'feed_limit' => (
isa => 'Str',
is => 'rw',
default => sub {
$ENV{BEAGLE_FEED_LIMIT} || core_config->{feed_limit} || 20;
},
);
has 'public_key' => (
isa => 'Str',
is => 'rw',
default => '',
trigger => sub {
my $self = shift;
my $value = shift;
return unless $value && $value !~ m{/};
$value = join '/', 'static', split_id($self->id), $value;
$self->{public_key} = $value;
},
);
sub parse_sites {
my $self = shift;
my $str = shift;
return [] unless $str;
# , is valid in url, so let's force spaces after it.
my @sites = split /\s*,\s+/, $str;
my $value = [];
for my $site (@sites) {
my ( $name, $url ) = split /=/, $site, 2;
if ( defined $name && $url ) {
push @$value, { name => $name, url => $url };
}
else {
warn "invalid site format: $site";
}
}
return $value;
}
around 'serialize_meta' => sub {
( run in 2.140 seconds using v1.01-cache-2.11-cpan-df04353d9ac )