App-SpreadRevolutionaryDate
view release on metacpan or search on metacpan
lib/App/SpreadRevolutionaryDate/MsgMaker/RevolutionaryDate/Locale.pm view on Meta::CPAN
#
# This file is part of App-SpreadRevolutionaryDate
#
# This software is Copyright (c) 2019-2026 by Gérald Sédrati.
#
# This is free software, licensed under:
#
# The GNU General Public License, Version 3, June 2007
#
use 5.014;
use utf8;
package App::SpreadRevolutionaryDate::MsgMaker::RevolutionaryDate::Locale;
$App::SpreadRevolutionaryDate::MsgMaker::RevolutionaryDate::Locale::VERSION = '0.54';
# ABSTRACT: Role providing interface for localization of revolutionary date built by L<App::SpreadRevolutionaryDate::MsgMaker::RevolutionaryDate>.
use Moose::Role;
use DateTime::Calendar::FrenchRevolutionary;
use Locale::TextDomain 'App-SpreadRevolutionaryDate';
use namespace::autoclean;
has months => (
is => 'ro',
isa => 'ArrayRef[Str]',
required => 1,
);
has decade_days => (
is => 'ro',
isa => 'ArrayRef[Str]',
required => 1,
);
has feast => (
is => 'ro',
isa => 'ArrayRef[Str]',
required => 1,
);
has prefixes => (
is => 'ro',
isa => 'ArrayRef[Str]',
required => 1,
default => sub {['']},
);
has suffix => (
is => 'ro',
isa => 'Str',
required => 1,
default => '',
);
has wikipedia_entries => (
is => 'ro',
isa => 'HashRef[HashRef[Str]]',
required => 1,
);
sub month_name {
my ($self, $date) = @_;
return $self->months->[$date->month_0]
}
sub day_name {
my ($self, $date) = @_;
return $self->decade_days->[$date->day_of_decade_0];
}
sub feast_short {
my ($self, $date) = @_;
my $lb = $self->feast->[$date->day_of_year_0];
$lb =~ s/_/ /g;
return substr($lb, 1);
}
( run in 0.687 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )