[Rubin] Biblioteka wyborcza

Tu rozwiązujemy problemy natury informatycznej, dzielimy się naszymi spostrzeżeniami i opiniami na te tematy.

[Rubin] Biblioteka wyborcza

Postprzez Pierreq » Wt lip 13, 2010 06:48

W ramach cwiczen z nowym jezykiem programowania Rubin (ang. Ruby) postanowilem napisac mala biblioteke. Biblioteka jest napisana w srednio-zaawansowanym stylu i uwazam, ze jest dobra do nauki i podpatrywania dla poczatkujacych w Rubinie. Biblioteka wymaga wersji Ruby 1.9.x lub nowszej.

Biblioteka election umozliwia tworzenie wlasnych wyborow parlamentarnych / prezydenckich. :)
Biblioteka opcjonalnie umozliwia wielowatkowe ladowanie danych z rzadowych serwerow PKW z ostatnich wyborow prezydenckich (dla kazdej komisji) a pozniej przetwarzanie tych danych. W ten sposob udalo mi sie potwierdzic, ze to co prezentuja na stronie PKW jest dobrze przeliczane.
Biblioteka posiada tez mozliwosc zapisu stanu statystyk na dysk lub ich ladowanie.

Aby zainstalowac biblioteke (Ubuntu ale dla Windowsa jest podobnie):
wget http://www.taboretsoft.com/public/election-1.0.gem
sudo gem install election-1.0

Rezultat powinien byc:
Successfully installed election-1.0
1 gem installed
Installing ri documentation for election-1.0...
Installing RDoc documentation for election-1.0...


Przyklad uzycia biblioteki we wlasnym programie:
Kod: Zaznacz cały
require 'election'

#tworzymy nasza instancje biura wyborczego
election = Election.instance

#tworzymy dwoch kandydatow
cand1 = Candidate.new "Anna", "ZIELINSKI"
cand2 = Candidate.new "Joanna", "ZAB"

election.register_candidate cand1
election.register_candidate cand2

#utworzenie i rejestracja komisji wyborczej
commision = Commision.new
election.register_commision commision
commision.address = '101 Street 5N, Brooklyn'
commision.commune = 'NYC'
commision.county = 'Brooklyn'
commision.province = 'NY'

#dodajemy glosy dla kandydatow

commision.set_votes(:ZIELINSKI, 100)
commision.set_votes(:ZAB, 200)

#wydruk podsumowania
election.print_data

#zapis naszych danych (wlaczajac kandydatow i komisje) na dysk (podobnie tez mozna ladowac)
ElectionIO.save_to_file(election, "wybory.txt")


Aby natomiast przetestowac jak mozna ladowac z Intrnetu dane z PKW mozna uzyc prostego, podstawowego kodu:
Kod: Zaznacz cały
election = Election.instance

election = ElectionInternet.load_from_internet
election.print_data


Ten kod tworzy parenascie watkow sciagajacych rownoczesnie dane z PKW i wyswietla co 30 sekund postep a na koncu podsumowanie (dokladnie dla kazdego wojewodztwa jest watek w tej wersji). Jesli PKW kiedys usunie te strony zrobilem lokalna kopie danych z wyborow prezydenckich 2010 z calego swiata z kazdej komisji tu: http://www.taboretsoft.com/public/election_data.txt.gz. (Po rozpakowaniu to tylko 6 MB). Po sciagnieciu mozna to zaladowac do biblioteki wpisujac: ElectionIO.load_from_file election, 'data.txt'.

Pozdrawiam i prosze o komentarze. Chetnie odpowiem na pytania poczatkujacych w Rubinie dot. tej biblioteki.
Avatar użytkownika
Pierreq
TaboretSoft Support
 
Posty: 1407
Dołączył(a): Śr cze 01, 2005 22:58
Lokalizacja: København

Powrót do Forum Cyber-Informatyczne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość