@@ -5,4 +5,5 @@ MANIFEST This list of files
README
script/berlin-pm
t/load.t
-META.yml Module meta-data (added by MakeMaker)
+META.yml Module YAML meta-data (added by MakeMaker)
+META.json Module JSON meta-data (added by MakeMaker)
@@ -0,0 +1,48 @@
+{
+ "abstract" : "unknown",
+ "author" : [
+ "unknown"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630",
+ "license" : [
+ "unknown"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Acme-PM-Berlin-Meetings",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "DateTime" : "0",
+ "DateTime::Event::Recurrence" : "0",
+ "Exporter" : "5.57"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "repository" : {
+ "url" : "git://github.com/eserte/acme-pm-berlin-meetings.git"
+ }
+ },
+ "version" : "201212.19"
+}
@@ -1,25 +1,26 @@
---- #YAML:1.0
-name: Acme-PM-Berlin-Meetings
-version: 201008.26
-abstract: ~
-author: []
-license: unknown
-distribution_type: module
-configure_requires:
- ExtUtils::MakeMaker: 0
+---
+abstract: unknown
+author:
+ - unknown
build_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630'
+license: unknown
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Acme-PM-Berlin-Meetings
+no_index:
+ directory:
+ - t
+ - inc
requires:
- DateTime: 0
- DateTime::Event::Recurrence: 0
- Exporter: 5.57
+ DateTime: 0
+ DateTime::Event::Recurrence: 0
+ Exporter: 5.57
resources:
- repository: git://github.com/eserte/acme-pm-berlin-meetings.git
-no_index:
- directory:
- - t
- - inc
-generated_by: ExtUtils::MakeMaker version 6.56
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ repository: git://github.com/eserte/acme-pm-berlin-meetings.git
+version: 201212.19
@@ -2,20 +2,21 @@
use strict;
use ExtUtils::MakeMaker;
-eval {
- if ((getpwuid($<))[0] eq 'eserte' && $ExtUtils::MakeMaker::VERSION < 6.54) {
- warn <<EOF;
-**********************************************************************
-* WARNING:
-* ExtUtils::MakeMaker too old. META.yml will be imcomplete
-**********************************************************************
+my $eumm_recent_enough = $ExtUtils::MakeMaker::VERSION >= 6.54;
+
+if (!$eumm_recent_enough) {
+ *MY::dist_core = sub {
+ <<'EOF';
+dist :
+ $(NOECHO) $(ECHO) "Sorry, use a newer EUMM!"
+
EOF
- }
-};
+ };
+}
WriteMakefile(NAME => 'Acme::PM::Berlin::Meetings',
VERSION_FROM => 'lib/Acme/PM/Berlin/Meetings.pm',
- ($ExtUtils::MakeMaker::VERSION >= 6.54 ?
+ ($eumm_recent_enough ?
(META_ADD => { resources => { repository => 'git://github.com/eserte/acme-pm-berlin-meetings.git' },
}) : ()),
PREREQ_PM => { 'DateTime' => 0,
@@ -19,6 +19,8 @@ L<http://www.openstreetmap.org/?lat=52.50716&lon=13.4653&zoom=17&layers=M>
- BBBike-Route
L<http://bbbike.de/cgi-bin/bbbike.cgi?zielname=Holteistr/Sonntagstr>
+L<geo:52.50716,13.4653>
+
=head2 Treffen im Juli 2010
Mittwoch, 28. Juli 2010, ab 20 Uhr c.t.
@@ -31,6 +33,8 @@ L<http://bbbike.de/cgi-bin/bbbike.cgi?zielname=Elisabeth-Abegg-Str> -
Google Maps
L<http://maps.google.com/maps?oe=utf-8&client=firefox-a&ie=UTF8&q=zollpackhof&fb=1&hq=zollpackhof&cid=0,0,16858087506954263585&ei=X-lPTMjCC-LGOKeZmb8B&ved=0CBoQnwIwAQ&hnear=&ll=52.519459,13.380876&spn=0.028699,0.03047&z=15>
+L<geo:52.521293,13.367068>
+
=head2 Treffen im Juni 2010
Mittwoch, 30. Juni 2010, ab 20 Uhr c.t.
@@ -43,6 +47,8 @@ L<http://bbbike.de/cgi-bin/bbbike.cgi?zielname=Triftstr(wedding)/brunnenstr>
- Google Maps
L<http://maps.google.de/maps?f=q&hl=de&geocode=&q=Triftstr+67+13353+berlin>
+L<geo:52.492937,13.401261>
+
=head2 Treffen im Mai 2010
Mittwoch, 26. Mai, ab 20 Uhr c.t.
@@ -174,6 +180,8 @@ L<http://maps.google.de/maps?f=q&source=s_q&hl=de&geocode=&q=Vor+dem+Schlesische
- BBBike-Route
L<http://bbbike.de/cgi-bin/bbbike.cgi?ziel=Vor+dem+Schlesischen+Tor>
+L<geo:52.497206,13.450492>
+
=head2 Treffen im Juli 2009
Mittwoch, 29. Juli, 20 Uhr c.t.
@@ -1286,4 +1294,8 @@ Converted by taking the pages L<http://perlmongers.de/?BerlinPM> and
L<http://perlmongers.de/?BerlinPMNochAeltereTreffen> using
L<Pod::HTML2Pod> and manual work.
+=head1 TODO
+
+Add the entries between 2010 and 2012.
+
=cut
@@ -3,7 +3,7 @@
#
# Author: Slaven Rezic
#
-# Copyright (C) 2010 Slaven Rezic. All rights reserved.
+# Copyright (C) 2010,2012 Slaven Rezic. All rights reserved.
# This package is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
@@ -14,7 +14,7 @@
package Acme::PM::Berlin::Meetings;
use strict;
-our $VERSION = '201008.26';
+our $VERSION = '201212.19';
use Exporter 'import'; # needs Exporter 5.57
our @EXPORT = qw(next_meeting);
@@ -23,7 +23,7 @@ use DateTime;
use DateTime::Event::Recurrence;
our $NORMAL_RECURRENCE;
-our $XMAS_FALLBACK_RECURRENCE;
+our $ADVANCE_ONE_WEEK_RECURRENCE;
sub next_meeting {
my $count = shift || 1;
@@ -41,14 +41,14 @@ sub next_meeting_dt {
$der;
};
my $next_dt = $NORMAL_RECURRENCE->next($dt);
- if (($next_dt->month == 12 && $next_dt->day >= 24) ||
- ($next_dt->month == 1 && $next_dt->day == 1)) {
- $XMAS_FALLBACK_RECURRENCE ||= do {
- my $der = DateTime::Event::Recurrence->monthly(weeks => 1, days => 'we', hours => 20, week_start_day => 'mo');
+ while(($next_dt->month == 12 && $next_dt->day >= 24) ||
+ ($next_dt->month == 1 && $next_dt->day <= 2)) {
+ $ADVANCE_ONE_WEEK_RECURRENCE ||= do {
+ my $der = DateTime::Event::Recurrence->weekly(days => 'we', hours => 20, week_start_day => 'mo');
# $der->set_time_zone('Europe/Berlin');
$der;
};
- $next_dt = $XMAS_FALLBACK_RECURRENCE->next($next_dt);
+ $next_dt = $ADVANCE_ONE_WEEK_RECURRENCE->next($next_dt);
}
$next_dt;
}
@@ -66,6 +66,11 @@ Acme::PM::Berlin::Meetings - get the next date of the Berlin PM meeting
use Acme::PM::Berlin::Meetings;
next_meeting(1)
+=head1 NOTES
+
+This module knows about special Berlin.PM traditions like postponing
+the December meeting to the first or second week in January.
+
=head1 AUTHOR
Slaven Rezic