Class-Maker

 view release on metacpan or  search on metacpan

lib/Class/Maker/Examples/Soccer.pm  view on Meta::CPAN

	#
	# PS: Zum ersetzen von Object::Auth

Class::Maker::class 'Sicherheit::Raum',
{
	isa => [qw(Object::Auth)],

	public =>
	{
		#int => [qw( groesse )],

		array => { besucher => 'Mensch', waechter => 'Sicherheit::Waechter::Raeume' },
	},
};

Class::Maker::class 'Sicherheit::Raum::Bewacht',
{
	isa => [qw( Sicherheit::Raum )],

	public =>
	{
		array => { waechter => 'Sicherheit::Waechter::Raeume' },
	},
};

Class::Maker::class 'Raum::Tippen',
{
	isa => [qw(Sicherheit::Raum)],
}

1;

__END__

	my @vereine = qw( Hertha München Bayern Rostock Bremen Dortmund Stuttgart );

	my @schiris = qw( Murat Firat Mehmet Elias Sülo Hans Franz Horst );

	for (1..10)
	{
		my $spiel = new Spiel(

			elfmeter => "ja",

			schiedsrichter => new Spiel::Schiedsrichter( name => $schiris[ rand(@schiris-1) ] ),

			mannschaften =>
			[
				new Spiel::Mannschaft( name => $vereine[ rand(@vereine-1) ] ),

				new Spiel::Mannschaft( name => $vereine[ rand(@vereine-1) ] ),
			],

			);

		$spiel->printout();

		#print $spiel->to_html( type => 'FILE', source => 'spiel.tmpl' );
	}

	my $formular = new Formular::Antrag::Anmeldung();

		# wir simulieren ein ausgefülltes formular

	$formular->antragsteller( new Mensch( name => 'Horst', email => 'horsttappert@web.de' ) );

		# Wir brauchen einen Waechter (Object::Bouncer) der:
		#	- die Formulare auf ihre Rightigkeit überprüft.
		#
		# )=> 'Sicherheit::Waechter::Anmeldung'

		# Beim Login:
		#	- den Schatzmeister fragt ob dieser User eintreten darf, wenn nicht
		#   ihn darauf hinweist zu zahlen.
		#
		# )=> 'Sicherheit::Waechter::Anmeldung'

		# Wir testen die Registrierung
		#
		# 	# 1. Der Mensch begleicht beim Schatzmeister seinen Eintritt
		#	# 	a) Falls der Schatzmeister bestätigt dass der Mensch bezahlt hat.
		#	#		- Akzeptiert der Spielleiter den Menschen zum Mitglied
		#	#		- Schicken wir dem glücklichen Mitglied eine email
		#	#	b) Fall noch nicht bezahlt
		#	#		- Weisen wir Ihn darauf hin und lehnen ein einloggen des Menschen noch ab

	my $schatzmeister = new Schatzmeister( name => 'Dagobert' );

		# dummy Zahlung

	$schatzmeister->annehmen( $formular->antragsteller, 100, 'Eintritt' );

	if( $schatzmeister->hatbezahlt( $formular->antragsteller ) )
	{
			# Voila ...Antrag akzeptiert ! der "antragsteller" wird zum mitgleid

		my $mitglied = $spielleiter->akzeptiert( $formular->antragsteller );

		printfln "\nHallo Herr %s, ihr Mitgliedname lautet %s und Passwort lautet %s. Herzliche Grüsse %s",

			$mitglied->name, $mitglied->userid, $mitglied->passwd, $spielleiter->name;

				# Und nun loggt sich das Mitglied ein

			if( $mitglied->login( 'blubb' ) )
			{
				printfln "Login successfull for '%s'", $mitglied->userid;

				$mitglied->debugDump();

				$mitglied->logout();
			}

			print "after the login...";

			$mitglied->debugDump();
	}
	else
	{
		# Mensch wurde abgelehnt

		printfln "Hallo Herr %s, leider können wir sie noch nicht in unser Spiel aufnehmen. Sie müssen erst ihre Gebühr bezahlen. Herzliche Grüsse %s", $mensch->name, $spielleiter->name;
	}



( run in 0.905 second using v1.01-cache-2.11-cpan-39bf76dae61 )