diff options
| author | mo khan <mo@mokhan.ca> | 2024-05-24 12:50:20 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2024-05-24 12:50:20 -0600 |
| commit | abd466be2c6787d1e287c3f24a2632042b34eeb4 (patch) | |
| tree | d8b69884dc42e33a78926991084e96793fee2ddc /bin/community | |
| parent | 2801e040bca9351d0a1fbcf05fb277c98f68c59b (diff) | |
add placeholder link for each sector
Diffstat (limited to 'bin/community')
| -rwxr-xr-x | bin/community | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/bin/community b/bin/community deleted file mode 100755 index 4202702..0000000 --- a/bin/community +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env ruby - -require 'bundler/inline' - -gemfile do - source 'https://rubygems.org' - - gem 'activesupport' - gem 'csv' -end - -require 'active_support' -require 'active_support/core_ext/string' -require 'csv' -require 'erb' - -class Community - # https://data.calgary.ca/Demographics/Census-by-Community-2019/rkfr-buzb/about_data - # CLASS,CLASS_CODE,COMM_CODE,NAME,SECTOR,SRG,COMM_STRUCTURE,CNSS_YR,FOIP_IND,RES_CNT,DWELL_CNT,PRSCH_CHLD,ELECT_CNT,EMPLYD_CNT,OWNSHP_CNT,DOG_CNT,CAT_CNT,PUB_SCH,SEP_SCH,PUBSEP_SCH,OTHER_SCH,UNKNWN_SCH,SING_FAMLY,DUPLEX,MULTI_PLEX,APARTMENT,TOWN_HOUSE,MANUF_HOME,CONV_STRUC,COMUNL_HSE,RES_COMM,OTHER_RES,NURSING_HM,OTHER_INST,HOTEL_CNT,OTHER_MISC,APT_NO_RES,APT_OCCPD,APT_OWNED,APT_PERSON,APT_VACANT,APT_UC,APT_NA,CNV_NO_RES,CNV_OCCPD,CNV_OWNED,CNV_PERSON,CNV_VACANT,CNV_UC,CNV_NA,DUP_NO_RES,DUP_OCCPD,DUP_OWNED,DUP_PERSON,DUP_VACANT,DUP_UC,DUP_NA,MFH_NO_RES,MFH_OCCPD,MFH_OWNED,MFH_PERSON,MFH_VACANT,MFH_UC,MFH_NA,MUL_NO_RES,MUL_OCCPD,MUL_OWNED,MUL_PERSON,MUL_VACANT,MUL_UC,MUL_NA,OTH_NO_RES,OTH_OCCPD,OTH_OWNED,OTH_PERSON,OTH_VACANT,OTH_UC,OTH_NA,TWN_NO_RES,TWN_OCCPD,TWN_OWNED,TWN_PERSON,TWN_VACANT,TWN_UC,TWN_NA,SF_NO_RES,SF_OCCPD,SF_OWNED,SF_PERSON,SF_VACANT,SF_UC,SF_NA,OTH_STRTY,DWELSZ_1,DWELSZ_2,DWELSZ_3,DWELSZ_4_5,DWELSZ_6,MALE_CNT,FEMALE_CNT,MALE_0_4,MALE_5_14,MALE_15_19,MALE_20_24,MALE_25_34,MALE_35_44,MALE_45_54,MALE_55_64,MALE_65_74,MALE_75,FEM_0_4,FEM_5_14,FEM_15_19,FEM_20_24,FEM_25_34,FEM_35_44,FEM_45_54,FEM_55_64,FEM_65_74,FEM_75,MF_0_4,MF_5_14,MF_15_19,MF_20_24,MF_25_34,MF_35_44,MF_45_54,MF_55_64,MF_65_74,MF_75,OTHER_CNT,OTHER_0_4,OTHER_5_14,OTHER_15_19,OTHER_20_24,OTHER_25_34,OTHER_35_44,OTHER_45_54,OTHER_55_64,OTHER_65_74,OTHER_75,multipolygon - - def initialize(row) - @row = row - end - - def name - self[:name] - end - - def percent(key) - return 0 if self[:res_cnt].to_i.zero? - - ((self[key].to_f / self[:res_cnt].to_f) * 100).round(1) - end - - def homepage_url - "https://www.calgary.ca/communities/profiles/#{name.parameterize}.html" - end - - def profile_url - "https://www.calgary.ca/content/dam/www/csps/cns/documents/community_social_statistics/community-profiles/#{name.parameterize}.pdf" - end - - def projection_url - "https://www.calgary.ca/content/dam/www/csps/cns/documents/community_social_statistics/#{name.parameterize}-pp.pdf" - end - - def [](key) - @row.fetch(key.to_s.upcase) - end - - def <=>(other) - [self[:sector], self.name] <=> [other[:sector], other.name] - # self.name <=> other.name - end - - def create_content_in(root_dir) - target_dir = "#{root_dir}/#{self[:sector].parameterize}/#{name.parameterize}" - FileUtils.mkdir_p(target_dir, verbose: true) - create_readme_in(target_dir) - end - - private - - def create_readme_in(dir) - erb = ERB.new(IO.read("templates/community.md.erb")) - IO.write("#{dir}/README.md", erb.result(binding)) - end -end - -class Census - include Enumerable - - def initialize(path) - @path = path - end - - def each - CSV.foreach(@path, headers: true) do |row| - community = Community.new(row) - yield community if community[:class].include?("Residential") - end - end - - def create_content_in(dir) - FileUtils.mkdir_p(dir, verbose: true) - erb = ERB.new(IO.read("templates/city.md.erb"), trim_mode: "-") - IO.write("#{dir}/README.md", erb.result(binding)) - - each { |x| x.create_content_in(dir) } - end -end - -Census - .new("data/Census_by_Community_2019_20240524.csv") - .create_content_in("yyc") |
