class Recs2009Response::Parser
Constants
- AGE
- BOOLEAN
- BOOLEAN_NO_NIL
- BUILDING_TYPE
- CHARGING
- COMPUTER_MONITOR
- COMPUTER_TYPE
- CONDO_COOP
- CONVERTED_HOUSE
- COOLER
- COOLER_USE
- DEFROST
- DEVICES
- DRAFTY
- DRYER_USE
- EDUCATION
- EMPLOYMENT
- FINISHED_SPACE
- FREEZER_SIZE
- FREEZER_TYPE
- FRIDGE_SIZE
- FRIDGE_TYPE
- FUEL
- GARAGE_SIZE
- HEATER
- HEATER_PORTION
- INCENTIVE
- INCOME
- INSULATION
- MEMBER_AGE
- METRO_MICRO
- MICROWAVE_USE
- MONTHLY_TIMES
- MONTHS_USE
- OWN_RENT
- RACE
- RENEWABLE
- ROOF_MATERIAL
- SEX
- STORIES
- TV_SIZE
- TV_TYPE
- TV_USE
- URBAN_RURAL
- WALL_MATERIAL
- WASHER_TEMP
- WASHER_TYPE
- WASHER_USE
- WATER_HEATER
- WATER_HEATER_SIZE
- WINDOWS
- WINDOWS_REPLACED
- WINDOW_PANES
- YEAR_INCENTIVIZED
- YEAR_OCCUPIED
Public Class Methods
new(*)
click to toggle source
required by remote_table transform
# File lib/earth/residence/recs_2009_response/parser.rb, line 397 def initialize(*) # nothing to see here end
Public Instance Methods
apply(row)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 515 def apply(row) parsed_row = { 'area' => row['TOTSQFT'], 'bathrooms' => row['NCOMBATH'], 'cdd_2009' => row['CDD65'], 'cdd_avg' => row['CDD30YR'], 'census_region_number' => row['REGIONC'], 'census_division_number' => row['DIVISION'], 'climate_region_id' => row['Climate_Region_Pub'], 'climate_zone_id' => row['AIA_Zone'], 'computers' => row['NUMPC'], 'cooktops' => row['STOVE'], 'cool_area' => row['TOTCSQFT'], 'electricity' => row['KWH'], 'electricity_cost' => row['DOLLAREL'], 'energy' => row['TOTALBTU'], 'energy_cost' => row['TOTALDOL'], 'fans' => row['NUMCFAN'], 'fridges' => row['NUMFRIG'], 'fuel_oil' => row['BTUFO'], 'fuel_oil_cost' => row['DOLLARFO'], 'half_baths' => row['NHAFBATH'], 'hdd_2009' => row['HDD65'], 'hdd_avg' => row['HDD30YR'], 'heat_area' => row['TOTHSQFT'], 'household_size' => row['NHSLDMEM'], 'id' => row['DOEID'], 'kerosene' => row['BTUKER'], 'kerosene_cost' => row['DOLLARKER'], 'lights_high_use' => row['LGT12'], 'lights_low_use' => row['LGT1'], 'lights_med_use' => row['LGT4'], 'member_1_age' => row['HHAGE'], 'other_rooms' => row['OTHROOMS'], 'natural_gas' => row['BTUNG'], 'natural_gas_cost' => row['DOLLARNG'], 'ovens' => row['OVEN'], 'propane' => row['BTULP'], 'propane_cost' => row['DOLLARLP'], 'recs_grouping_id' => row['REPORTABLE_DOMAIN'], 'rooms' => row['TOTROOMS'], 'stoves' => row['STOVEN'], 'tvs' => row['TVCOLOR'], 'weighting' => row['NWEIGHT'], 'wood' => row['BTUWOOD'], 'year_built' => row['YEARMADE'] } @secondary_heating_systems = nil (2..6).each do |i| parsed_row.merge!({ "heater_#{i}" => secondary_heating_systems(row).keys[i - 2], "heater_#{i}_fuel" => FUEL[secondary_heating_systems(row).values[i - 2]] }) end parsed_row.merge!({ 'answering_machine' => BOOLEAN[row['ANSMACH']], 'aquarium' => BOOLEAN[row['AQUARIUM']], 'apartments' => numerize(row['NUMAPTS'], nil), 'attic_type' => FINISHED_SPACE[row['ATTICFIN']], 'attic_rooms' => numerize(row['FINATTRMS'], 0), 'basement_type' => FINISHED_SPACE[row['BASEFIN']], 'basement_rooms' => numerize(row['FINBASERMS'], 0), 'bedrooms' => numerize(row['BEDROOMS'], 0), 'building_floors' => [numerize(row['NUMFLRS'], nil), STORIES[row['STORIES']]].compact.first, 'building_type' => BUILDING_TYPE[row['TYPEHUQ']], 'caulking_added' => BOOLEAN[row['INSTLWS']], 'caulking_added_year' => year_improved(AGE[row['AGEWS']]), 'caulking_incent' => INCENTIVE[row['HELPWS']], 'caulking_incent_year' => YEAR_INCENTIVIZED[row['HELPWSY']], 'coffee' => BOOLEAN[row['COFFEE']], 'computer_idle' => computer_idle(row['PCONOFF1'], row['PCSLEEP1']), 'computer_monitor' => COMPUTER_MONITOR[row['MONITOR1']], 'computer_type' => COMPUTER_TYPE[row['PCTYPE1']], 'computer_use' => TV_USE[row['TIMEON1']], 'computer_2_idle' => computer_idle(row['PCONOFF2'], row['PCSLEEP2']), 'computer_2_monitor' => COMPUTER_MONITOR[row['MONITOR2']], 'computer_2_type' => COMPUTER_TYPE[row['PCTYPE2']], 'computer_2_use' => TV_USE[row['TIMEON2']], 'computer_3_idle' => computer_idle(row['PCONOFF3'], row['PCSLEEP3']), 'computer_3_monitor' => COMPUTER_MONITOR[row['MONITOR3']], 'computer_3_type' => COMPUTER_TYPE[row['PCTYPE3']], 'computer_3_use' => TV_USE[row['TIMEON3']], 'condo_coop' => CONDO_COOP[row['CONDCOOP']], 'converted_house' => CONVERTED_HOUSE[row['LOOKLIKE']], 'cooking_fuel' => FUEL[row['FUELFOOD']], 'cooking_frequency' => MONTHLY_TIMES[row['NUMMEAL']], 'cooktop_fuel' => FUEL[row['STOVEFUEL']], 'cool_attic_portion' => heat_cool_coverage(row['ATTCCOOL'], row['ATTCCL2'], row['PCTATTCL']), 'cool_auto_adjust_day' => BOOLEAN[row['AUTOCOOLDAY']], 'cool_auto_adjust_night' => BOOLEAN[row['AUTOCOOLNITE']], 'cool_basement_portion' => heat_cool_coverage(row['BASECOOL'], row['BASECL2'], row['PCTBSTCL']), 'cool_garage' => BOOLEAN[row['GARGCOOL']], 'cool_rooms' => numerize(row['ACROOMS'], 0), 'cool_temp_away' => numerize(row['TEMPGONEAC'], nil), 'cool_temp_day' => numerize(row['TEMPHOMEAC'], nil), 'cool_temp_night' => numerize(row['TEMPNITEAC'], nil), 'cooler_ac_age' => AGE[row['WWACAGE']], 'cooler_ac_energy_star' => BOOLEAN[row['ESWWAC']], 'cooler_ac_incent' => INCENTIVE[row['HELPWWAC']], 'cooler_ac_incent_year' => YEAR_INCENTIVIZED[row['HELPWWACY']], 'cooler_ac_replaced' => BOOLEAN[row['REPLCWWAC']], 'cooler_ac_use' => COOLER_USE[row['USEWWAC']], 'cooler_ac_units' => numerize(row['NUMBERAC'], 0), 'cooler_central_age' => AGE[row['AGECENAC']], 'cooler_central_incent' => INCENTIVE[row['HELPCAC']], 'cooler_central_incent_year' => YEAR_INCENTIVIZED[row['HELPCACY']], 'cooler_central_maintained' => BOOLEAN[row['MAINTAC']], 'cooler_central_replaced' => BOOLEAN[row['REPLCCAC']], 'cooler_central_shared' => BOOLEAN[row['ACOTHERS']], 'cooler_central_use' => COOLER_USE[row['USECENAC']], 'cooling' => BOOLEAN[row['AIRCOND']], 'copier' => BOOLEAN[row['COPIER']], 'cordless_phone' => BOOLEAN[row['NOCORD']], 'crawlspace' => BOOLEAN_NO_NIL[row['CRAWL']], 'dehumidifier_use' => MONTHS_USE[row['USENOTMOIST']], 'dishwasher_age' => AGE[row['AGEDW']], 'dishwasher_energy_star' => BOOLEAN[row['ESDISHW']], 'dishwasher_use' => MONTHLY_TIMES[row['DWASHUSE']], 'dishwasher_incent' => INCENTIVE[row['HELPDW']], 'dishwasher_incent_year' => YEAR_INCENTIVIZED[row['HELPDWY']], 'dishwasher_replaced' => BOOLEAN[row['REPLCDW']], 'drafty' => DRAFTY[row['DRAFTY']], 'dryer_age' => AGE[row['AGECDRYER']], 'dryer_fuel' => FUEL[row['DRYRFUEL']], 'dryer_use' => DRYER_USE[row['DRYRUSE']], 'education' => EDUCATION[row['EDUCATION']], 'electricity_heat' => BOOLEAN[row['ELWARM']], 'electricity_heat_2' => BOOLEAN[row['ELECAUX']], 'electricity_cool' => BOOLEAN[row['ELCOOL']], 'electricity_water' => BOOLEAN[row['ELWATER']], 'electricity_cooking' => BOOLEAN[row['ELFOOD']], 'electricity_other' => BOOLEAN[row['ELOTHER']], 'electronic_charging' => CHARGING[row['ELECCHRG']], 'electronic_vampires' => vampires(row['ELECCHRG'], row['CHRGPLGE']), 'electronics' => DEVICES[row['ELECDEV']], 'employment' => EMPLOYMENT[row['EMPLOYHH']], 'energy_audit' => BOOLEAN[row['AUDIT']], 'energy_audit_incent' => INCENTIVE[row['HELPAUD']], 'energy_audit_incent_year' => YEAR_INCENTIVIZED[row['HELPAUDY']], 'energy_audit_year' => year_improved(AGE[row['AGEAUD']]), 'engine_block_heater' => BOOLEAN[row['DIPSTICK']], 'fax' => BOOLEAN[row['FAX']], 'fan_use' => COOLER_USE[row['USECFAN']], 'food_stamps' => BOOLEAN[row['FOODASST']], 'freezers' => numerize(row['NUMFREEZ'], 0), 'freezer_age' => AGE[row['AGEFRZR']], 'freezer_defrost' => DEFROST[row['FREEZER']], 'freezer_incent' => INCENTIVE[row['HELPFRZ']], 'freezer_incent_year' => YEAR_INCENTIVIZED[row['HELPFRZY']], 'freezer_replaced' => BOOLEAN[row['REPLCFRZ']], 'freezer_size' => FREEZER_SIZE[row['SIZFREEZ']], 'freezer_type' => FREEZER_TYPE[row['UPRTFRZR']], 'freezer_2_age' => AGE[row['AGEFRZR2']], 'freezer_2_defrost' => DEFROST[row['FREEZER2']], 'freezer_2_size' => FREEZER_SIZE[row['SIZFREEZ2']], 'freezer_2_type' => FREEZER_TYPE[row['UPRTFRZR2']], 'fridge_age' => AGE[row['AGERFRI1']], 'fridge_defrost' => DEFROST[row['REFRIGT1']], 'fridge_door_ice' => BOOLEAN[row['ICE']], 'fridge_energy_star' => BOOLEAN[row['ESFRIG']], 'fridge_size' => FRIDGE_SIZE[row['SIZRFRI1']], 'fridge_type' => FRIDGE_TYPE[row['TYPERFR1']], 'fridge_2_age' => AGE[row['AGERFRI2']], 'fridge_2_defrost' => DEFROST[row['REFRIGT2']], 'fridge_2_energy_star' => BOOLEAN[row['ESFRIG2']], 'fridge_2_size' => FRIDGE_SIZE[row['SIZRFRI2']], 'fridge_2_type' => FRIDGE_TYPE[row['TYPERFR2']], 'fridge_2_use' => numerize(row['MONRFRI2'], nil), 'fridge_3_age' => AGE[row['AGERFRI3']], 'fridge_3_defrost' => DEFROST[row['REFRIGT3']], 'fridge_3_energy_star' => BOOLEAN[row['ESFRIG3']], 'fridge_3_size' => FRIDGE_SIZE[row['SIZRFRI3']], 'fridge_3_type' => FRIDGE_TYPE[row['TYPERFR3']], 'fridge_3_use' => numerize(row['MONRFRI3'], nil), 'fridge_incent' => INCENTIVE[row['HELPFRI']], 'fridge_incent_year' => YEAR_INCENTIVIZED[row['HELPFRIY']], 'fridge_replaced' => BOOLEAN[row['REPLCFRI']], 'fuel_oil_heat' => BOOLEAN[row['FOWARM']], 'fuel_oil_heat_2' => BOOLEAN[row['FOILAUX']], 'fuel_oil_water' => BOOLEAN[row['FOWATER']], 'fuel_oil_other' => BOOLEAN[row['FOOTHER']], 'garage_type' => garage(row), 'garage_size' => GARAGE_SIZE[(BOOLEAN[row['PRKGPLC1']] ? row['SIZEOFGARAGE'] : row['SIZEOFDETACH'])], 'heat_attic_portion' => heat_cool_coverage(row['ATTCHEAT'], row['ATTCHT2'], row['PCTATTHT']), 'heat_auto_adjust_day' => BOOLEAN[row['AUTOHEATDAY']], 'heat_auto_adjust_night' => BOOLEAN[row['AUTOHEATNITE']], 'heat_basement_portion' => heat_cool_coverage(row['BASEHEAT'], row['BASEHT2'], row['PCTBSTHT']), 'heat_garage' => BOOLEAN[row['GARGHEAT']], 'heat_rooms' => numerize(row['HEATROOM'], 0), 'heat_temp_away' => numerize(row['TEMPGONE'], nil), 'heat_temp_day' => numerize(row['TEMPHOME'], nil), 'heat_temp_night' => numerize(row['TEMPNITE'], nil), 'heater' => [HEATER[row['EQUIPM']], HEATER[row['EQUIPNOHEAT']]].compact.first, 'heater_age' => AGE[row['EQUIPAGE']], 'heater_fuel' => [FUEL[row['FUELHEAT']], FUEL[row['FUELNOHEAT']]].compact.first, 'heater_incent' => INCENTIVE[row['HELPHT']], 'heater_incent_year' => YEAR_INCENTIVIZED[row['HELPHTY']], 'heater_maintained' => BOOLEAN[row['MAINTHT']], 'heater_portion' => HEATER_PORTION[row['EQMAMT']], 'heater_replaced' => BOOLEAN[row['REPLCHT']], 'heater_shared' => BOOLEAN[row['HEATOTH']], 'heater_thermostats' => numerize(row['NUMTHERM'], 0), 'heating' => BOOLEAN[row['HEATHOME']], 'high_ceiling' => BOOLEAN_NO_NIL[row['HIGHCEIL']], 'home_business' => BOOLEAN[row['HBUSNESS']], 'home_during_week' => BOOLEAN[row['ATHOME']], 'hot_tub_fuel' => FUEL[row['FUELTUB']], 'humidifier_use' => MONTHS_USE[row['USEMOISTURE']], 'indoor_grill_fuel' => FUEL[row['STGRILA']], 'income' => INCOME[row['MONEYPY']], 'income_employment' => BOOLEAN[row['WORKPAY']], 'income_retirement' => BOOLEAN[row['RETIREPY']], 'income_ssi' => BOOLEAN[row['SSINCOME']], 'income_welfare' => BOOLEAN[row['CASHBEN']], 'income_investment' => BOOLEAN[row['INVESTMT']], 'income_other' => BOOLEAN[row['RGLRPAY']], 'insulation' => INSULATION[row['ADQINSUL']], 'insulation_added' => BOOLEAN[row['INSTLINS']], 'insulation_added_year' => year_improved(AGE[row['AGEINS']]), 'insulation_incent' => INCENTIVE[row['HELPINS']], 'insulation_incent_year' => YEAR_INCENTIVIZED[row['HELPINSY']], 'internet' => BOOLEAN_NO_NIL[row['INTERNET']], 'kerosene_heat' => BOOLEAN[row['KRWARM']], 'kerosene_heat_2' => BOOLEAN[row['KEROAUX']], 'kerosene_water' => BOOLEAN[row['KRWATER']], 'kerosene_other' => BOOLEAN[row['KROTHER']], 'latino' => BOOLEAN[row['SDESCENT']], 'levels' => [numerize(row['NAPTFLRS'], nil), STORIES[row['STORIES']]].compact.first, 'lights_high_use_efficient' => numerize(row['LGT12EE'], 0), 'lights_incent' => INCENTIVE[row['HELPCFL']], 'lights_incent_year' => YEAR_INCENTIVIZED[row['HELPCFLY']], 'lights_low_use_efficient' => numerize(row['LGT1EE'], 0), 'lights_med_use_efficient' => numerize(row['LGT4EE'], 0), 'lights_outdoor' => numerize(row['NOUTLGTNT'], 0), 'lights_outdoor_efficient' => numerize(row['LGTOEE'], 0), 'lights_replaced' => BOOLEAN[row['INSTLCFL']], 'low_rent' => BOOLEAN[row['RENTHELP']], 'member_2_age' => MEMBER_AGE[row['AGEHHMEMCAT2']], 'member_3_age' => MEMBER_AGE[row['AGEHHMEMCAT3']], 'member_4_age' => MEMBER_AGE[row['AGEHHMEMCAT4']], 'member_5_age' => MEMBER_AGE[row['AGEHHMEMCAT5']], 'member_6_age' => MEMBER_AGE[row['AGEHHMEMCAT6']], 'member_7_age' => MEMBER_AGE[row['AGEHHMEMCAT7']], 'member_8_age' => MEMBER_AGE[row['AGEHHMEMCAT8']], 'member_9_age' => MEMBER_AGE[row['AGEHHMEMCAT9']], 'member_10_age' => MEMBER_AGE[row['AGEHHMEMCAT10']], 'member_11_age' => MEMBER_AGE[row['AGEHHMEMCAT11']], 'member_12_age' => MEMBER_AGE[row['AGEHHMEMCAT12']], 'member_13_age' => MEMBER_AGE[row['AGEHHMEMCAT13']], 'member_14_age' => MEMBER_AGE[row['AGEHHMEMCAT14']], 'metro_micro' => METRO_MICRO[row['METROMICRO']], 'microwave_defrost' => BOOLEAN[row['DEFROST']], 'microwave_use' => MICROWAVE_USE[row['AMTMICRO']], 'natural_gas_heat' => BOOLEAN[row['UGWARM']], 'natural_gas_heat_2' => BOOLEAN[row['UGASAUX']], 'natural_gas_water' => BOOLEAN[row['UGWATER']], 'natural_gas_cooking' => BOOLEAN[row['UGCOOK']], 'natural_gas_other' => BOOLEAN[row['UGOTH']], 'other_heat' => BOOLEAN[row['OTHWARM']], 'other_heat_2' => BOOLEAN[row['OTHERAUX']], 'other_water' => BOOLEAN[row['OTHWATER']], 'other_cooking' => BOOLEAN[row['OTHCOOK']], 'outdoor_grill_fuel' => FUEL[row['OUTGRILLFUEL']], 'oven_fuel' => FUEL[row['OVENFUEL']], 'oven_type' => oven_type(row), 'oven_use' => MONTHLY_TIMES[row['OVENUSE']], 'own_rent' => OWN_RENT[row['KOWNRENT']], 'pays_electricity_heat' => payer(row['PELHEAT'], row['OTHERWAYEL']), 'pays_electricity_water' => payer(row['PELHOTWA'], row['OTHERWAYEL']), 'pays_electricity_cooking' => payer(row['PELCOOK'], row['OTHERWAYEL']), 'pays_electricity_cool' => payer(row['PELAC'], row['OTHERWAYEL']), 'pays_electricity_lighting' => payer(row['PELLIGHT'], row['OTHERWAYEL']), 'pays_natural_gas_heat' => payer(row['PGASHEAT'], row['OTHERWAYNG']), 'pays_natural_gas_water' => payer(row['PGASHTWA'], row['OTHERWAYNG']), 'pays_natural_gas_cooking' => payer(row['PUGCOOK'], row['OTHERWAYNG']), 'pays_natural_gas_other' => payer(row['PUGOTH'], row['OTHERWAYNG']), 'pays_fuel_oil' => payer(row['FOPAY'], row['OTHERWAYFO']), 'pays_propane' => payer(row['LPGPAY'], row['OTHERWAYLPG']), 'pool' => BOOLEAN_NO_NIL[row['SWIMPOOL']], 'pool_fuel' => FUEL[row['FUELPOOL']], 'poverty_100' => BOOLEAN[row['POVERTY100']], 'poverty_150' => BOOLEAN[row['POVERTY150']], 'printers' => numerize(row['PCPRINT'], 0), 'propane_heat' => BOOLEAN[row['LPWARM']], 'propane_heat_2' => BOOLEAN[row['LPGAUX']], 'propane_water' => BOOLEAN[row['LPWATER']], 'propane_cooking' => BOOLEAN[row['LPCOOK']], 'propane_other' => BOOLEAN[row['LPOTHER']], 'public_housing_authority' => BOOLEAN[row['HUPROJ']], 'race' => RACE[row['Householder_Race']], 'renewable_energy' => RENEWABLE[row['ONSITEGRID']], 'roof_material' => ROOF_MATERIAL[row['ROOFTYPE']], 'sex' => SEX[row['HHSEX']], 'shaded' => BOOLEAN[row['TREESHAD']], 'slab' => BOOLEAN_NO_NIL[row['CONCRETE']], 'sliding_doors' => numerize(row['DOOR1SUM'], 0), 'solar_heat' => BOOLEAN[row['SOLWARM']], 'solar_heat_2' => BOOLEAN[row['SOLARAUX']], 'solar_water' => BOOLEAN[row['SOLWATER']], 'solar_other' => BOOLEAN[row['SOLOTHER']], 'live_with_spouse' => BOOLEAN[row['SPOUSE']], 'stereo' => BOOLEAN[row['STEREO']], 'stove_fuel' => FUEL[row['STOVENFUEL']], 'telecommuting' => numerize(row['TELLDAYS'], 0), 'toaster' => BOOLEAN[row['TOASTER']], 'tool_charging' => CHARGING[row['BATCHRG']], 'tool_vampires' => vampires(row['BATCHRG'], row['CHRGPLGT']), 'tools' => DEVICES[row['BATTOOLS']], 'tv_size' => TV_SIZE[row['TVSIZE1']], 'tv_theater' => BOOLEAN[row['TVAUDIOSYS1']], 'tv_type' => TV_TYPE[row['TVTYPE1']], 'tv_weekday_use' => TV_USE[row['TVONWD1']], 'tv_weekend_use' => TV_USE[row['TVONWE1']], 'tv_2_size' => TV_SIZE[row['TVSIZE2']], 'tv_2_theater' => BOOLEAN[row['TVAUDIOSYS2']], 'tv_2_type' => TV_TYPE[row['TVTYPE2']], 'tv_2_weekday_use' => TV_USE[row['TVONWD2']], 'tv_2_weekend_use' => TV_USE[row['TVONWE2']], 'tv_3_size' => TV_SIZE[row['TVSIZE3']], 'tv_3_theater' => BOOLEAN[row['TVAUDIOSYS3']], 'tv_3_type' => TV_TYPE[row['TVTYPE3']], 'tv_3_weekday_use' => TV_USE[row['TVONWD3']], 'tv_3_weekend_use' => TV_USE[row['TVONWE3']], 'urban_rural' => URBAN_RURAL[row['UR']], 'unusual_activities' => BOOLEAN[row['OTHWORK']], 'wall_material' => WALL_MATERIAL[row['WALLTYPE']], 'washer_age' => AGE[row['AGECWASH']], 'washer_energy_star' => BOOLEAN[row['ESCWASH']], 'washer_incent' => INCENTIVE[row['HELPCW']], 'washer_incent_year' => YEAR_INCENTIVIZED[row['HELPCWY']], 'washer_replaced' => BOOLEAN[row['REPLCCW']], 'washer_temp_rinse' => WASHER_TEMP[row['RNSETEMP']], 'washer_temp_wash' => WASHER_TEMP[row['WASHTEMP']], 'washer_type' => WASHER_TYPE[row['TOPFRONT']], 'washer_use' => WASHER_USE[row['WASHLOAD']], 'water_heater' => WATER_HEATER[row['H2OTYPE1']], 'water_heater_age' => AGE[row['WHEATAGE']], 'water_heater_blanket' => BOOLEAN[row['WHEATBKT']], 'water_heater_fuel' => FUEL[row['FUELH2O']], 'water_heater_incent' => INCENTIVE[row['HELPWH']], 'water_heater_incent_year' => YEAR_INCENTIVIZED[row['HELPWHY']], 'water_heater_size' => WATER_HEATER_SIZE[row['WHEATSIZ']], 'water_heater_shared' => BOOLEAN[row['WHEATOTH']], 'water_heater_2' => WATER_HEATER[row['H2OTYPE2']], 'water_heater_2_age' => AGE[row['WHEATAGE2']], 'water_heater_2_fuel' => FUEL[row['FUELH2O2']], 'water_heater_2_size' => WATER_HEATER_SIZE[row['WHEATSIZ2']], 'water_heaters_storage' => row['NUMH2OHTRS'], 'water_heaters_tankless' => row['NUMH2ONOTNK'], 'well_pump' => BOOLEAN[row['WELLPUMP']], 'window_panes' => WINDOW_PANES[row['TYPEGLASS']], 'windows' => WINDOWS[row['WINDOWS']], 'windows_incent' => INCENTIVE[row['HELPWIN']], 'windows_incent_year' => YEAR_INCENTIVIZED[row['HELPWINY']], 'windows_replaced' => WINDOWS_REPLACED[row['NEWGLASS']], 'wood_heat' => BOOLEAN[row['WDWARM']], 'wood_heat_2' => BOOLEAN[row['WOODAUX']], 'wood_water' => BOOLEAN[row['WDWATER']], 'wood_other' => BOOLEAN[row['WDOTHUSE']], 'year_occupied' => YEAR_OCCUPIED[row['OCCUPYYRANGE']] }) end
computer_idle(on_off, sleep)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 401 def computer_idle(on_off, sleep) if BOOLEAN[on_off] 'Turned off' elsif BOOLEAN[sleep] 'Sleep / standby' end end
garage(row)
click to toggle source
Type of garage
# File lib/earth/residence/recs_2009_response/parser.rb, line 410 def garage(row) if BOOLEAN[row['PRKGPLC1']] 'Attached' elsif BOOLEAN[row['PRKGPLC2']] 'Detached' end end
heat_cool_coverage(any, all_some, portion)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 418 def heat_cool_coverage(any, all_some, portion) case any when '0' # no heating or cooling 0 when '1' # some heating or cooling case all_some when '1' # entire space heated or cooled 1 when '2' # part of space heated or cooled case portion when '1' # Very Little (1-4%) 0.025 when '2' # Some (5-33%) 0.19 when '3' # About Half (33-66%) 0.5 when '4' # About Three-Quarters (67-95%) 0.75 when '5' # Most of It (96-99%) 0.975 end end end end
numerize(value, negative_interpretation)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 443 def numerize(value, negative_interpretation) number = value.to_i number < 0 ? negative_interpretation : number end
oven_type(row)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 448 def oven_type(row) if BOOLEAN[row['OVENCLN']] case row['TYPECLN'] when '1' 'Continuous self-cleaning' when '2' 'Manual self-cleaning' else "Not self-cleaning" end end end
payer(initial, follow_up)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 461 def payer(initial, follow_up) case initial when '1' 'Paid by the household' when '2' 'Included in rent' when '3' case follow_up when '1' 'Paid by a relative' when '2' 'Paid by rental or condo agency' when '3' 'Paid by some other party' end end end
secondary_heating_systems(row)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 479 def secondary_heating_systems(row) @secondary_heating_systems ||= { 'Steam or Hot Water System' => (row['RADFUEL'] if BOOLEAN[row['STEAMR' ]]), 'Central Warm-Air Furnace' => (row['FURNFUEL'] if BOOLEAN[row['WARMAIR' ]]), 'Heat Pump' => ('5' if BOOLEAN[row['REVERSE' ]]), 'Built-In Electric Units' => ('5' if BOOLEAN[row['PERMELEC']]), 'Floor or Wall Pipeless Furnace' => (row['PIPEFUEL'] if BOOLEAN[row['PIPELESS']]), 'Built-In Room Heaters' => (row['RMHTFUEL'] if BOOLEAN[row['ROOMHEAT']]), 'Heating Stove' => (row['HSFUEL'] if BOOLEAN[row['WOODKILN']]), 'Fireplace' => (row['FPFUEL'] if BOOLEAN[row['CHIMNEY' ]]), 'Portable Electric Heaters' => ('5' if BOOLEAN[row['CARRYEL' ]]), 'Portable Kerosene Heaters' => ('4' if BOOLEAN[row['CARRYKER']]), 'Cooking Stove' => (row['RNGFUEL'] if BOOLEAN[row['RANGE' ]]), 'Other' => (row['DIFFUEL'] if BOOLEAN[row['DIFEQUIP']]) }.keep_if{|k,v| v} end
vampires(charging, unplugging)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 496 def vampires(charging, unplugging) if charging == '1' 'Chargers never unplugged' else case unplugging when '1' 'Chargers always unplugged' when '2' 'Chargers never unplugged' when '3' 'Chargers sometimes unplugged' end end end
year_improved(improvement_age)
click to toggle source
# File lib/earth/residence/recs_2009_response/parser.rb, line 511 def year_improved(improvement_age) 2009 - improvement_age if improvement_age end