Skip to content

Skulli/ruby_german_zip_codes

 
 

Repository files navigation

ZipCodes Gem Version

Testing Ruby Code Style

Ruby-Gem zur Suche nach deutschen Postleitzahlen (PLZ). Gibt zu einer PLZ die zugehörige Stadt, den Landkreis bzw. Bezirk und das Bundesland zurück. Der vollständige Datensatz (~8.000 PLZ) ist als YAML-Datei eingebettet und wird beim ersten Zugriff in den Arbeitsspeicher geladen.

Installation

In der Gemfile eintragen:

gem 'zip-codes'

Dann ausführen:

$ bundle install

Oder direkt installieren:

$ gem install zip-codes

Verwendung

Exakte Suche

ZipCodes.identify('20535')
# => { city: "Hamburg", code: "20535", county: "Hamburg-Mitte", osm_id: "62782", state: "Hamburg" }

ZipCodes.identify('99999')
# => nil

Präfix-Suche

ZipCodes.identify('205', like_search: true)
# => { "20535" => { city: "Hamburg", ... }, "20537" => { ... }, ... }

# Kurzform:
ZipCodes.like('205')

Alle PLZ einer Stadt

ZipCodes.codes('Hamburg')
# => ["20095", "20097", ..., "22769"]  # 98 Einträge

Rails: Vorladen beim Start

Damit die YAML-Datei nicht beim ersten Request geparst wird, kann die Datenbank in einem Initializer vorgeladen werden:

# config/initializers/zip_codes.rb
ZipCodes.load unless Rails.env.development?

Datenfelder

Feld Beispiel Beschreibung
code "20535" PLZ (5-stelliger String)
city "Hamburg" Stadt / Gemeinde
county "Hamburg-Mitte" Landkreis oder Bezirk
state "Hamburg" Bundesland
osm_id "62782" OpenStreetMap-Relation

Die Daten basieren auf OpenStreetMap-Daten.

Mitwirken

  1. Fork erstellen
  2. Feature-Branch anlegen (git checkout -b mein-feature)
  3. Änderungen committen (git commit -am 'Feature hinzufügen')
  4. Branch pushen (git push origin mein-feature)
  5. Pull Request öffnen

About

Identify city and state for given zip code

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Ruby 100.0%