Module: Pilipinas

Defined in:
lib/pilipinas.rb,
lib/pilipinas/base.rb,
lib/pilipinas/city.rb,
lib/pilipinas/cache.rb,
lib/pilipinas/loader.rb,
lib/pilipinas/region.rb,
lib/pilipinas/db/city.rb,
lib/pilipinas/railtie.rb,
lib/pilipinas/version.rb,
lib/pilipinas/barangay.rb,
lib/pilipinas/province.rb,
lib/pilipinas/db/region.rb,
lib/pilipinas/db/barangay.rb,
lib/pilipinas/db/province.rb,
lib/pilipinas/db/concerns/static_record.rb,
lib/generators/pilipinas/migration_generator.rb

Overview

Top-level namespace for the Pilipinas gem.

Pilipinas is a read-only, file-backed directory of Philippine geographic divisions: Regions → Provinces → Cities/Municipalities → Barangays.

Data is loaded from YAML files bundled inside the gem, cached in memory for the lifetime of the process, and exposed through a clean query API.

Quick start

require "pilipinas"

Pilipinas::Region.all                              # => [#<Region ...>, ...]
Pilipinas::Region.count                            # => 17

region = Pilipinas::Region.find_by(name: "REGION V (Bicol Region)")
region.provinces                                   # => [#<Province ...>, ...]

province = Pilipinas::Province.find_by(name: "CAMARINES SUR")
province.cities                                    # => [#<City ...>, ...]

city = Pilipinas::City.find_by(name: "NAGA CITY")
city.barangays                                     # => [#<Barangay ...>, ...]

Database integration (optional – Rails only)

For ActiveRecord-backed models, run:

rails generate pilipinas:migration
rake pilipinas:load

Defined Under Namespace

Modules: Cache, Db, Loader Classes: Barangay, Base, City, Error, MigrationGenerator, Province, Railtie, Region, UnknownAttribute

Constant Summary collapse

DATA_DIR =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Absolute path to the bundled data/ directory.

File.expand_path('data', __dir__).freeze
VERSION =

Semantic version of the gem.

Follows Semantic Versioning: MAJOR.MINOR.PATCH.

'1.0.0'