Sha256: 242cd3a0a0cb4525c981026e4821d628be20cabdc648f3cd2b41c290e0efb6e1

Contents?: true

Size: 1.48 KB

Versions: 7

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

module USGeo
  # Mapping of urban areas to counties they overlap with.
  class UrbanAreaCounty < BaseRecord
    include Area

    belongs_to :county, foreign_key: :county_geoid, inverse_of: :urban_area_counties
    belongs_to :urban_area, foreign_key: :urban_area_geoid, inverse_of: :urban_area_counties

    validates :county_geoid, length: {is: 5}
    validates :urban_area_geoid, length: {is: 5}
    validates :land_area, numericality: true, presence: true
    validates :water_area, numericality: true, presence: true

    class << self
      def load!(uri = nil)
        location = data_uri(uri || "urban_area_counties.csv")

        import! do
          load_data_file(location) do |row|
            load_record!(urban_area_geoid: row["Urban Area GEOID"], county_geoid: row["County GEOID"]) do |record|
              record.land_area = row["Land Area"]
              record.water_area = row["Water Area"]
            end
          end
        end
      end
    end

    # Percentage of the urban area land area.
    def percent_urban_area_land_area
      land_area / urban_area.land_area
    end

    # Percentage of the urban area total area.
    def percent_urban_area_total_area
      total_area / urban_area.total_area
    end

    # Percentage of the county land area.
    def percent_county_land_area
      land_area / county.land_area
    end

    # Percentage of the county total area.
    def percent_county_total_area
      total_area / county.total_area
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
us_geo-2.1.1 lib/us_geo/urban_area_county.rb
us_geo-2.1.0 lib/us_geo/urban_area_county.rb
us_geo-2.0.4 lib/us_geo/urban_area_county.rb
us_geo-2.0.3 lib/us_geo/urban_area_county.rb
us_geo-2.0.2 lib/us_geo/urban_area_county.rb
us_geo-2.0.1 lib/us_geo/urban_area_county.rb
us_geo-2.0.0 lib/us_geo/urban_area_county.rb