summaryrefslogtreecommitdiff
path: root/lib/Travel/Status/DE/URA/Result.pm
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2014-01-17 23:42:04 +0100
committerDaniel Friesel <derf@finalrewind.org>2014-01-17 23:42:04 +0100
commitf0fba026a14cbee4af4d033244237d257aeaa15c (patch)
tree6c92b5f0f6149ec8df6939443a519fc6504c67a4 /lib/Travel/Status/DE/URA/Result.pm
parenta88abfec0080fdb4ade8db22b8660968d785c546 (diff)
Only do DateTime math when needed (makes code ~2x as fast)
Diffstat (limited to 'lib/Travel/Status/DE/URA/Result.pm')
-rw-r--r--lib/Travel/Status/DE/URA/Result.pm35
1 files changed, 32 insertions, 3 deletions
diff --git a/lib/Travel/Status/DE/URA/Result.pm b/lib/Travel/Status/DE/URA/Result.pm
index bb1c0a9..e8cb1e8 100644
--- a/lib/Travel/Status/DE/URA/Result.pm
+++ b/lib/Travel/Status/DE/URA/Result.pm
@@ -9,9 +9,7 @@ use parent 'Class::Accessor';
our $VERSION = '0.02';
Travel::Status::DE::URA::Result->mk_ro_accessors(
- qw(countdown countdown_sec date datetime destination line line_id
- stop stop_id time)
-);
+ qw(datetime destination line line_id stop stop_id));
sub new {
my ( $obj, %conf ) = @_;
@@ -21,6 +19,37 @@ sub new {
return bless( $ref, $obj );
}
+sub countdown {
+ my ($self) = @_;
+
+ $self->{countdown} //= $self->datetime->subtract_datetime( $self->{dt_now} )
+ ->in_units('minutes');
+
+ return $self->{countdown};
+}
+
+sub countdown_sec {
+ my ($self) = @_;
+
+ $self->{countdown_sec}
+ //= $self->datetime->subtract_datetime( $self->{dt_now} )
+ ->in_units('seconds');
+
+ return $self->{countdown_sec};
+}
+
+sub date {
+ my ($self) = @_;
+
+ return $self->datetime->strftime('%d.%m.%Y');
+}
+
+sub time {
+ my ($self) = @_;
+
+ return $self->datetime->strftime('%H:%M:%S');
+}
+
sub route_timetable {
my ($self) = @_;