Class: HasGeoLookup::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/has_geo_lookup/install_generator.rb

Overview

Generates database migrations for HasGeoLookup gem

Creates all necessary tables for geographic lookup functionality:

  • geonames: Geographic place data from Geonames.org
  • geoboundaries: Administrative boundaries from GeoBoundaries.org
  • feature_codes: Classification codes for geographic features
  • metros: Metropolitan area definitions
  • geoboundaries_metros: Join table for metro-boundary associations
  • geonames_metros: Join table for geoname-metro associations

Examples:

Generate migrations

rails generate has_geo_lookup:install

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

Provide a migration timestamp



28
29
30
31
# File 'lib/generators/has_geo_lookup/install_generator.rb', line 28

def self.next_migration_number(dirname)
  next_migration_number = current_migration_number(dirname) + 1
  ActiveRecord::Migration.next_migration_number(next_migration_number)
end

Instance Method Details

#create_migrationsObject



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/generators/has_geo_lookup/install_generator.rb', line 33

def create_migrations
  migration_template 'create_geonames.rb.erb', 'db/migrate/create_geonames.rb'
  sleep 1 # Ensure different timestamps
  migration_template 'create_geoboundaries.rb.erb', 'db/migrate/create_geoboundaries.rb'
  sleep 1
  migration_template 'create_feature_codes.rb.erb', 'db/migrate/create_feature_codes.rb'
  sleep 1
  migration_template 'create_metros.rb.erb', 'db/migrate/create_metros.rb'
  sleep 1
  migration_template 'create_geoboundaries_metros.rb.erb', 'db/migrate/create_geoboundaries_metros.rb'
  sleep 1
  migration_template 'create_geonames_metros.rb.erb', 'db/migrate/create_geonames_metros.rb'
end

#display_readmeObject



47
48
49
# File 'lib/generators/has_geo_lookup/install_generator.rb', line 47

def display_readme
  readme "INSTALL.md"
end