ncs_mdes_warehouse 0.6.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +12 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero.rb +817 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/address.rb +101 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit.rb +365 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_2.rb +359 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_3.rb +368 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name_2.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_baby_name_3.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_decorate_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_diagnose_2_3.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_ethnic_origin_3.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_household_3.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li.rb +374 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_baby_name.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_decorate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_li_renovate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_race_new_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/birth_visit_renovate_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/contact.rb +77 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/drf_therm_verification.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/dwelling_unit.rb +53 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_2.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_cond.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_detail.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_detail_2.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_habits.rb +164 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_habits_2.rb +173 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_lice.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_lice_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_otc.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_otc_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_pet_type.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_pet_type_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_prescr.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_prescr_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_renovate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_renovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_room_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_room_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_saq.rb +260 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_suppl.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/eighteen_mth_mother_suppl_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/email.rb +74 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/env_equipment.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/env_equipment_prob_log.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/event.rb +68 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1.rb +374 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_2.rb +380 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_cancer.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_cancer_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_educ.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_race.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/father_pv1_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration.rb +239 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_age_elig.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_hidden_du.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_enumeration_pregnant.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory.rb +203 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory_age.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_inventory_age_elig.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/household_unit.rb +53 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident.rb +98 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident_media.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/incident_unanticipated.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/institution.rb +68 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/instrument.rb +74 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/internet_usage.rb +92 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/internet_usage_participate.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_contact.rb +41 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_household_dwelling.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_household.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_institute.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_participant.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/link_person_provider.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/listing_unit.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/low_high_script.rb +119 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/multi_mode.rb +62 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/nine_mth_mother.rb +65 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/nine_mth_mother_detail.rb +143 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_provider.rb +80 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_provider_refusal.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_respondent.rb +152 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_respondent_influ.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt.rb +128 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_dutype.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_noaccess.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_refusal.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/non_interview_rpt_vacant.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach.rb +98 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_eval.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_lang2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_race.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_staff.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/outreach_target.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant.rb +62 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_auth.rb +44 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent.rb +95 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent_reconsideration.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_consent_sample.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_rvis.rb +74 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif.rb +215 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif_child.rb +41 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_verif_diff.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/participant_vis_consent.rb +53 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment.rb +275 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_2.rb +275 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_info_source.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_info_source_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_source.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_source_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_svc.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_recruitment_prov_svc_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pb_samp_frame.rb +299 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener.rb +293 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_day1.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_day2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_employ.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_ethnic_orig.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_pr_office.rb +62 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_elig_screener_race.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pbs_list.rb +89 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person.rb +119 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_ethnic_origin.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_race.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/person_race_new.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_cati.rb +98 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_details.rb +41 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_saq.rb +92 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ppg_status_history.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg.rb +422 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_cool.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_heat2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_pdecorate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_prenovate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_room_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_saq.rb +116 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_preg_sp_race.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/pre_screening_performed.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/prec_therm_cert.rb +41 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_2.rb +362 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_know_ncs.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_know_ncs_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_race.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_eh_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi.rb +371 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_2.rb +380 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_know_ncs.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_know_ncs_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_race.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_hi_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb.rb +371 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_2.rb +380 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_know_ncs.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_know_ncs_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_race.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_screen_pb_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1.rb +521 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_2.rb +497 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_3.rb +422 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_commute_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_cool_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_diagnose_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_diagnose_2_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_ethnic_origin_3.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_heat2_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_local_trav_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_nonenglish2_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pdecorate_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_pet_type_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate2_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_prenovate_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_race_new_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_room_mold_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq.rb +188 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_2.rb +236 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_3.rb +236 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_saq_4.rb +227 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_ethnic_origin_3.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_1_sp_race_new_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2.rb +452 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_2.rb +440 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_3.rb +359 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_cool_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_diagnose_2_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_heat2_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_pdecorate2_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_prenovate_room_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_room_mold_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq.rb +116 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_2.rb +116 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_3.rb +116 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_2_saq_4.rb +110 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_2.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_cool.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/preg_visit_li_cool_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider.rb +77 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_logistics.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_role.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/provider_role_pbs.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/psu.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ref_freezer_verification.rb +62 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_dist.rb +74 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_dist_samp.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_receipt_confirm.rb +53 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_receipt_store.rb +65 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sample_shipping.rb +53 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/sampled_persons_ineligibility.rb +44 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother.rb +281 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother_detail.rb +266 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_mother_pet.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq.rb +218 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_2.rb +221 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_3.rb +221 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_formula_type_3.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_supp_3.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/six_mth_saq_water_3.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood.rb +194 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_2.rb +197 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_draw.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_draw_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_hemolyze.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_hemolyze_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_2.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_comments.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_blood_tube_comments_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood.rb +110 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_2.rb +110 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_3.rb +122 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen_2.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_cord_blood_specimen_3.rb +35 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_equipment.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_pickup.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_receipt.rb +80 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_shipping.rb +56 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_spsc_info.rb +26 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_storage.rb +62 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/spec_urine.rb +110 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/srsc_info.rb +26 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/ssu.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff.rb +65 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_cert_training.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_exp_data_cllctn_tasks.rb +44 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_exp_mngmnt_tasks.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_language.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_validation.rb +38 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/staff_weekly_expense.rb +44 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/study_center.rb +26 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/subsample_doc.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf.rb +152 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_2.rb +155 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_blank_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_blank_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_filled.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_dup_filled_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_n_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_n_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled2_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_reason_filled_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_sample.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_sample_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq.rb +98 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq_eat.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_saq_prob.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_subsamples.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twf_subsamples_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq.rb +143 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_2.rb +146 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_blank_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_blank_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_filled.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_dup_filled_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_n_collected.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_n_collected_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled2_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_reason_filled_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_sample.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_sample_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_saq.rb +98 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_saq_prob.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_subsamples.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tap_water_twq_subsamples_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/telephone.rb +83 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother.rb +92 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_2.rb +92 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_detail.rb +59 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_detail_2.rb +59 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_habits.rb +185 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_child_habits_2.rb +185 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_race.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/three_mth_mother_race_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tracing_int.rb +395 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/trh_meter_calibration.rb +77 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/tsu.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother.rb +302 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_2.rb +305 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_detail.rb +302 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_detail_2.rb +302 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_lice.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_lice_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_renovate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_renovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_room_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_mother_room_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq.rb +293 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_2.rb +296 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_brand.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_brand_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_type.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_formula_type_2.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_supplement.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_supplement_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_water.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twelve_mth_saq_water_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother.rb +350 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_2.rb +353 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_cond.rb +29 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_detail.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_detail_2.rb +50 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_habits.rb +194 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_habits_2.rb +200 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_otc.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_otc_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_prescr.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_prescr_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_suppl.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_mother_suppl_2.rb +47 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_pet_type.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_pet_type_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_renovate_room.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_renovate_room_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_room_mold.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_room_mold_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/twenty_four_mth_saq.rb +245 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag.rb +131 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_2.rb +137 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_outside.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_outside_2.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq.rb +89 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq_outside.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/vacuum_bag_saq_prob.rb +32 -0
- data/generated_models/ncs_navigator/warehouse/models/three_point_zero/validation_ins.rb +233 -0
- data/lib/ncs_navigator/warehouse/configuration.rb +21 -0
- data/lib/ncs_navigator/warehouse/transformers.rb +2 -0
- data/lib/ncs_navigator/warehouse/transformers/enum_transformer.rb +130 -29
- data/lib/ncs_navigator/warehouse/transformers/foreign_key_index.rb +126 -0
- data/lib/ncs_navigator/warehouse/transformers/foreign_key_index/database_key_provider.rb +16 -0
- data/lib/ncs_navigator/warehouse/transformers/foreign_key_index/static_key_provider.rb +20 -0
- data/lib/ncs_navigator/warehouse/transformers/sql/sql_statements.treetop +27 -0
- data/lib/ncs_navigator/warehouse/transformers/sql_transformer.rb +107 -0
- data/lib/ncs_navigator/warehouse/version.rb +1 -1
- data/ncs_mdes_warehouse.gemspec +3 -1
- data/spec/ncs_navigator/warehouse/configuration_spec.rb +13 -0
- data/spec/ncs_navigator/warehouse/transformers/enum_transformer_spec.rb +160 -9
- data/spec/ncs_navigator/warehouse/transformers/foreign_key_index/database_key_provider_spec.rb +18 -0
- data/spec/ncs_navigator/warehouse/transformers/foreign_key_index_spec.rb +115 -0
- data/spec/ncs_navigator/warehouse/transformers/sql_transformer_spec.rb +157 -0
- data/spec/spec_helper.rb +1 -0
- metadata +431 -12
data/ncs_mdes_warehouse.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
16
|
s.require_paths = ["lib", "generated_models"]
|
17
17
|
|
18
|
-
s.add_dependency 'ncs_mdes', '~> 0.
|
18
|
+
s.add_dependency 'ncs_mdes', '~> 0.7'
|
19
19
|
s.add_dependency 'ncs_navigator_configuration', '~> 0.2'
|
20
20
|
|
21
21
|
# Post-3.2.4 breaks DataMapper due to https://github.com/rails/rails/pull/6857
|
@@ -40,6 +40,8 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.add_dependency 'bcdatabase', '~> 1.1'
|
41
41
|
s.add_dependency 'actionmailer', '~> 3.0'
|
42
42
|
|
43
|
+
s.add_dependency 'treetop'
|
44
|
+
|
43
45
|
s.add_development_dependency 'rspec', '~> 2.6'
|
44
46
|
s.add_development_dependency 'rake', '~> 0.9.2'
|
45
47
|
s.add_development_dependency 'yard', '~> 0.7.2'
|
@@ -41,6 +41,19 @@ module NcsNavigator::Warehouse
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
describe '#foreign_key_index' do
|
45
|
+
it 'provides an index by default' do
|
46
|
+
config.foreign_key_index.should respond_to(:record_and_verify)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'allows the index to be overridden' do
|
50
|
+
i = Transformers::ForeignKeyIndex.new
|
51
|
+
|
52
|
+
config.foreign_key_index = i
|
53
|
+
config.foreign_key_index.should be(i)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
44
57
|
describe 'add_post_etl_hook' do
|
45
58
|
let(:success_hook) {
|
46
59
|
Object.new.tap do |o|
|
@@ -13,14 +13,39 @@ module NcsNavigator::Warehouse::Transformers
|
|
13
13
|
property :name, String, :required => true
|
14
14
|
end
|
15
15
|
|
16
|
+
class Subsample
|
17
|
+
include ::DataMapper::Resource
|
18
|
+
|
19
|
+
property :id, Integer, :key => true
|
20
|
+
property :name, String
|
21
|
+
property :age, Integer
|
22
|
+
belongs_to :sample,
|
23
|
+
'NcsNavigator::Warehouse::Transformers::Sample', :child_key => [ :sample_id ], :required => false
|
24
|
+
end
|
25
|
+
|
16
26
|
before(:all) do
|
17
27
|
DataMapper.finalize
|
18
28
|
end
|
19
29
|
|
30
|
+
shared_examples 'a foreign key index updater' do
|
31
|
+
it 'records the IDs of saved records as seen' do
|
32
|
+
expected_saved_record_ids.each do |id|
|
33
|
+
foreign_key_index.seen?(Sample, id).should be_true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'does not record the IDs of not-saved records as seen' do
|
38
|
+
expected_not_saved_record_ids.each do |id|
|
39
|
+
foreign_key_index.seen?(Sample, id).should be_false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
20
44
|
describe '#transform' do
|
21
45
|
let(:config) {
|
22
46
|
NcsNavigator::Warehouse::Configuration.new.tap do |c|
|
23
47
|
c.log_file = tmpdir + 'enum_transformer_test.log'
|
48
|
+
c.foreign_key_index = foreign_key_index
|
24
49
|
end
|
25
50
|
}
|
26
51
|
let(:records) { [
|
@@ -29,6 +54,7 @@ module NcsNavigator::Warehouse::Transformers
|
|
29
54
|
Sample.new(:id => 3, :psu_id => '20000030', :name => 'Three')
|
30
55
|
] }
|
31
56
|
let(:transform_status) { NcsNavigator::Warehouse::TransformStatus.memory_only('test') }
|
57
|
+
let(:foreign_key_index) { ForeignKeyIndex.new(:existing_key_provider => nil) }
|
32
58
|
subject { EnumTransformer.new(config, records) }
|
33
59
|
|
34
60
|
it 'saves valid records when all are valid' do
|
@@ -82,6 +108,11 @@ module NcsNavigator::Warehouse::Transformers
|
|
82
108
|
it 'saves the other instances' do
|
83
109
|
# in `before`
|
84
110
|
end
|
111
|
+
|
112
|
+
let(:expected_saved_record_ids) { [1, 2] }
|
113
|
+
let(:expected_not_saved_record_ids) { [3] }
|
114
|
+
|
115
|
+
include_examples 'a foreign key index updater'
|
85
116
|
end
|
86
117
|
|
87
118
|
describe 'with an instance with an invalid PSU' do
|
@@ -91,28 +122,25 @@ module NcsNavigator::Warehouse::Transformers
|
|
91
122
|
records[2].should_receive(:save).and_return(true)
|
92
123
|
|
93
124
|
records[1].psu_id = '20000041'
|
125
|
+
|
126
|
+
subject.transform(transform_status)
|
94
127
|
end
|
95
128
|
|
96
129
|
it 'does not save that instance' do
|
97
|
-
|
130
|
+
# in before
|
98
131
|
end
|
99
132
|
|
100
133
|
it 'saves the other instances' do
|
101
|
-
|
134
|
+
# in before
|
102
135
|
end
|
103
136
|
|
104
137
|
it 'records an error' do
|
105
|
-
subject.transform(transform_status)
|
106
138
|
transform_status.transform_errors.collect(&:record_id).should == ['2']
|
107
139
|
end
|
108
140
|
|
109
141
|
describe 'the recorded error' do
|
110
142
|
let(:error) { transform_status.transform_errors.first }
|
111
143
|
|
112
|
-
before do
|
113
|
-
subject.transform(transform_status)
|
114
|
-
end
|
115
|
-
|
116
144
|
it 'has the correct model class' do
|
117
145
|
error.model_class.should == Sample.to_s
|
118
146
|
end
|
@@ -134,6 +162,30 @@ module NcsNavigator::Warehouse::Transformers
|
|
134
162
|
error.attribute_value.should == '"20000041"'
|
135
163
|
end
|
136
164
|
end
|
165
|
+
|
166
|
+
let(:expected_saved_record_ids) { [1, 3] }
|
167
|
+
let(:expected_not_saved_record_ids) { [2] }
|
168
|
+
|
169
|
+
include_examples 'a foreign key index updater'
|
170
|
+
end
|
171
|
+
|
172
|
+
describe 'with an unsatisfied foreign key' do
|
173
|
+
let(:error) { transform_status.transform_errors.first }
|
174
|
+
|
175
|
+
before do
|
176
|
+
records << Subsample.new(:id => 3, :sample_id => 912)
|
177
|
+
|
178
|
+
records.each do |m|
|
179
|
+
m.stub!(:valid?).and_return(true)
|
180
|
+
m.stub!(:save).and_return(true)
|
181
|
+
end
|
182
|
+
|
183
|
+
subject.transform(transform_status)
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'reports the unsatisfied foreign key' do
|
187
|
+
error.message.should =~ /Unsatisfied foreign key sample_id=912/
|
188
|
+
end
|
137
189
|
end
|
138
190
|
|
139
191
|
describe 'with an unsaveable instance' do
|
@@ -155,6 +207,11 @@ module NcsNavigator::Warehouse::Transformers
|
|
155
207
|
it 'saves the saveable instances' do
|
156
208
|
# in `before`
|
157
209
|
end
|
210
|
+
|
211
|
+
let(:expected_saved_record_ids) { [1, 3] }
|
212
|
+
let(:expected_not_saved_record_ids) { [2] }
|
213
|
+
|
214
|
+
include_examples 'a foreign key index updater'
|
158
215
|
end
|
159
216
|
|
160
217
|
describe 'with an instance that errors on save' do
|
@@ -177,6 +234,11 @@ module NcsNavigator::Warehouse::Transformers
|
|
177
234
|
it 'saves the saveable instances' do
|
178
235
|
# in `before`
|
179
236
|
end
|
237
|
+
|
238
|
+
let(:expected_saved_record_ids) { [2, 3] }
|
239
|
+
let(:expected_not_saved_record_ids) { [1] }
|
240
|
+
|
241
|
+
include_examples 'a foreign key index updater'
|
180
242
|
end
|
181
243
|
|
182
244
|
describe 'with an enumeration that throws an exception' do
|
@@ -262,8 +324,14 @@ module NcsNavigator::Warehouse::Transformers
|
|
262
324
|
EnumTransformer.new(config, records, :filters => filters)
|
263
325
|
end
|
264
326
|
|
265
|
-
|
327
|
+
before do
|
328
|
+
records.each do |r|
|
329
|
+
r.stub!(:valid?).and_return(true)
|
330
|
+
r.stub!(:save).and_return(true)
|
331
|
+
end
|
332
|
+
end
|
266
333
|
|
334
|
+
it 'applies all the filters' do
|
267
335
|
transformer_with_filters(filter_one, filter_two).transform(transform_status)
|
268
336
|
|
269
337
|
records.each { |m| m.name.should == 'filtered' }
|
@@ -272,10 +340,93 @@ module NcsNavigator::Warehouse::Transformers
|
|
272
340
|
it 'saves only the results from the filter' do
|
273
341
|
records[0].should_not_receive(:save)
|
274
342
|
records[2].should_not_receive(:save)
|
275
|
-
records[1].should_receive(:save).exactly(3).times
|
343
|
+
records[1].should_receive(:save).exactly(3).times.and_return(true)
|
276
344
|
|
277
345
|
transformer_with_filters(replacing_filter).transform(transform_status)
|
278
346
|
end
|
347
|
+
|
348
|
+
context do
|
349
|
+
before do
|
350
|
+
transformer_with_filters(replacing_filter).transform(transform_status)
|
351
|
+
end
|
352
|
+
|
353
|
+
let(:expected_saved_record_ids) { [2] }
|
354
|
+
let(:expected_not_saved_record_ids) { [1, 3] }
|
355
|
+
|
356
|
+
include_examples 'a foreign key index updater'
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
360
|
+
describe 'duplicates modes' do
|
361
|
+
let(:sample_1_en) { Subsample.new(:id => 1, :name => 'One', :age => 80) }
|
362
|
+
let(:sample_1_es) { Subsample.new(:id => 1, :name => 'Uno', :age => nil) }
|
363
|
+
|
364
|
+
let(:records) { [sample_1_en, sample_1_es] }
|
365
|
+
|
366
|
+
def transformer_for_dups(mode)
|
367
|
+
EnumTransformer.new(config, records, :duplicates => mode)
|
368
|
+
end
|
369
|
+
|
370
|
+
it 'defaults the duplicates mode to :error' do
|
371
|
+
EnumTransformer.new(config, records).duplicates.should == :error
|
372
|
+
end
|
373
|
+
|
374
|
+
it 'accepts a duplicates mode option' do
|
375
|
+
transformer_for_dups(:ignore).duplicates.should == :ignore
|
376
|
+
end
|
377
|
+
|
378
|
+
it 'fails for an unknown duplicates mode' do
|
379
|
+
lambda { transformer_for_dups(:explode) }.
|
380
|
+
should raise_error(/Unknown duplicates mode :explode\./)
|
381
|
+
end
|
382
|
+
|
383
|
+
describe ':error' do
|
384
|
+
it 'tries to save everything' do
|
385
|
+
sample_1_en.should_receive(:save).and_return(true)
|
386
|
+
sample_1_es.should_receive(:save).and_return(true)
|
387
|
+
|
388
|
+
# If we weren't mocking, the transaction commit would result in
|
389
|
+
# an exception. I don't think it's important to test that here.
|
390
|
+
transformer_for_dups(:error).transform(transform_status)
|
391
|
+
transform_status.transform_errors.should == []
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
395
|
+
describe ':ignore' do
|
396
|
+
it 'does not try to save the duplicate' do
|
397
|
+
sample_1_en.should_receive(:save).and_return(true)
|
398
|
+
sample_1_es.should_not_receive(:save)
|
399
|
+
|
400
|
+
transformer_for_dups(:ignore).transform(transform_status)
|
401
|
+
transform_status.transform_errors.should == []
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
describe ':replace' do
|
406
|
+
let(:reloaded_sample) { sample_1_en.clone }
|
407
|
+
|
408
|
+
before do
|
409
|
+
sample_1_en.should_receive(:save).once.and_return(true)
|
410
|
+
sample_1_es.should_not_receive(:save)
|
411
|
+
|
412
|
+
Subsample.should_receive(:get).with(1).and_return(reloaded_sample)
|
413
|
+
reloaded_sample.should_receive(:save).once.and_return(true)
|
414
|
+
|
415
|
+
transformer_for_dups(:replace).transform(transform_status)
|
416
|
+
end
|
417
|
+
|
418
|
+
it 'loads and updates the existing record' do
|
419
|
+
transform_status.transform_errors.should == []
|
420
|
+
end
|
421
|
+
|
422
|
+
it 'replaces a set property with a new value' do
|
423
|
+
reloaded_sample.name.should == 'Uno'
|
424
|
+
end
|
425
|
+
|
426
|
+
it 'replaces a nil property with nil' do
|
427
|
+
reloaded_sample.age.should be_nil
|
428
|
+
end
|
429
|
+
end
|
279
430
|
end
|
280
431
|
end
|
281
432
|
end
|
data/spec/ncs_navigator/warehouse/transformers/foreign_key_index/database_key_provider_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class NcsNavigator::Warehouse::Transformers::ForeignKeyIndex
|
4
|
+
describe DatabaseKeyProvider, :slow, :use_mdes, :use_database, :modifies_warehouse_state do
|
5
|
+
let(:provider) { DatabaseKeyProvider.new }
|
6
|
+
let(:psu_model) { mdes_model(:Psu) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
DataMapper.repository(:mdes_warehouse_working) do
|
10
|
+
psu_model.new(:sc_id => '20000013', :psu_id => '20000054', :recruit_type => '-4').save.should be_true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'provides the existing IDs for a model out of the working repo' do
|
15
|
+
provider.existing_keys(psu_model).should == %w(20000054)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module NcsNavigator::Warehouse::Transformers
|
4
|
+
describe ForeignKeyIndex, :modifies_warehouse_state do
|
5
|
+
class Addr
|
6
|
+
include ::DataMapper::Resource
|
7
|
+
|
8
|
+
property :psu_id, String
|
9
|
+
property :id, Integer, :key => true
|
10
|
+
|
11
|
+
belongs_to :old_one, self, :child_key => [ :old_one_id ]
|
12
|
+
belongs_to :frob, 'NcsNavigator::Warehouse::Transformers::Frob', :child_key => [ :frob_id ]
|
13
|
+
end
|
14
|
+
|
15
|
+
class Frob
|
16
|
+
include ::DataMapper::Resource
|
17
|
+
|
18
|
+
property :psu_id, String
|
19
|
+
property :id, Integer, :key => true
|
20
|
+
end
|
21
|
+
|
22
|
+
before(:each) do
|
23
|
+
DataMapper.finalize
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:fk_index) { ForeignKeyIndex.new(:existing_key_provider => key_provider) }
|
27
|
+
let(:key_provider) { ForeignKeyIndex::StaticKeyProvider.new(Addr.to_s => [120, 180]) }
|
28
|
+
let(:transform_status) { NcsNavigator::Warehouse::TransformStatus.memory_only('test') }
|
29
|
+
let(:errors) { transform_status.transform_errors }
|
30
|
+
|
31
|
+
describe '#initialize' do
|
32
|
+
describe ':existing_key_provider' do
|
33
|
+
it 'defaults to a database provider' do
|
34
|
+
ForeignKeyIndex.new.existing_key_provider.should be_a ForeignKeyIndex::DatabaseKeyProvider
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'uses the provided instance' do
|
38
|
+
fk_index.existing_key_provider.should be key_provider
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'disables existing key resolution when set to nil explicitly' do
|
42
|
+
provider = ForeignKeyIndex.new(:existing_key_provider => nil).existing_key_provider
|
43
|
+
provider.existing_keys(Addr).should be_nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'reporting errors' do
|
49
|
+
before do
|
50
|
+
fk_index.record_and_verify(Frob.new(:id => 8))
|
51
|
+
fk_index.record_and_verify(Frob.new(:id => 16))
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'does not report for a key which is satisfied when it is first recorded' do
|
55
|
+
fk_index.record_and_verify(Addr.new(:frob_id => 8, :id => 1))
|
56
|
+
fk_index.report_errors(transform_status)
|
57
|
+
|
58
|
+
errors.should == []
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'does not report for a key which is not initially satisfied but is later' do
|
62
|
+
fk_index.record_and_verify(Addr.new(:frob_id => 4, :id => 1))
|
63
|
+
fk_index.record_and_verify(Frob.new(:id => 4))
|
64
|
+
fk_index.report_errors(transform_status)
|
65
|
+
|
66
|
+
errors.should == []
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'does not report for a key which is provided by the external key provider' do
|
70
|
+
fk_index.record_and_verify(Addr.new(:id => 8, :old_one_id => 120))
|
71
|
+
fk_index.report_errors(transform_status)
|
72
|
+
|
73
|
+
errors.should == []
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'when a key is never satisfied' do
|
77
|
+
before do
|
78
|
+
fk_index.record_and_verify(Addr.new(:frob_id => 4, :id => 1))
|
79
|
+
fk_index.report_errors(transform_status)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'reports the error' do
|
83
|
+
errors.size.should == 1
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'includes the correct model_class' do
|
87
|
+
errors.first.model_class.should == Addr.to_s
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'includes the correct record_id' do
|
91
|
+
errors.first.record_id.should == '1'
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'includes a useful message' do
|
95
|
+
errors.first.message.should ==
|
96
|
+
'Unsatisfied foreign key frob_id=4 referencing NcsNavigator::Warehouse::Transformers::Frob.'
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'only reports the error once if #report_errors is called multiple times' do
|
100
|
+
fk_index.report_errors(transform_status)
|
101
|
+
|
102
|
+
errors.size.should == 1
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'reports multiple failed references for a single record' do
|
107
|
+
fk_index.record_and_verify(Addr.new(:id => 1, :frob_id => 2, :old_one_id => 3))
|
108
|
+
fk_index.report_errors(transform_status)
|
109
|
+
|
110
|
+
errors.collect { |e| e.message.match(/foreign key (\S+)/)[1] }.sort.should ==
|
111
|
+
%w(frob_id=2 old_one_id=3)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module NcsNavigator::Warehouse::Transformers
|
4
|
+
describe SqlTransformer do
|
5
|
+
describe '.extract_statements' do
|
6
|
+
it 'splits on semicolons' do
|
7
|
+
SqlTransformer.extract_statements("SELECT 1; SELECT 2; SELECT 'A';").should == [
|
8
|
+
'SELECT 1',
|
9
|
+
'SELECT 2',
|
10
|
+
"SELECT 'A'"
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'includes the last statement even if it does not end with a semicolon' do
|
15
|
+
SqlTransformer.extract_statements("SELECT 3; SELECT 7; SELECT 'B'").should == [
|
16
|
+
'SELECT 3',
|
17
|
+
'SELECT 7',
|
18
|
+
"SELECT 'B'"
|
19
|
+
]
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'ignores semicolons inside of string literals' do
|
23
|
+
SqlTransformer.extract_statements("SELECT ';'; SELECT 7;").should == [
|
24
|
+
"SELECT ';'",
|
25
|
+
'SELECT 7'
|
26
|
+
]
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'handles strings with escaped quotes properly' do
|
30
|
+
SqlTransformer.extract_statements("SELECT 'Fred'';s'; SELECT '7';").should == [
|
31
|
+
"SELECT 'Fred'';s'",
|
32
|
+
"SELECT '7'"
|
33
|
+
]
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'handles E-strings with escaped quotes properly'
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:options) { { :adapter => mock('adapter') } }
|
40
|
+
let(:transformer) { SqlTransformer.new(spec_config, options) }
|
41
|
+
|
42
|
+
describe '#initialize' do
|
43
|
+
it 'accepts an array of statements' do
|
44
|
+
options[:statements] = ['SELECT 1', 'SELECT 8']
|
45
|
+
|
46
|
+
transformer.statements.should == ['SELECT 1', 'SELECT 8']
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'accepts and splits a string containing a script' do
|
50
|
+
options[:script] = "SELECT 1; SELECT ';'"
|
51
|
+
|
52
|
+
transformer.statements.should == ['SELECT 1', "SELECT ';'"]
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'can read a script from a file' do
|
56
|
+
filename = tmpdir + 'a_script.sql'
|
57
|
+
|
58
|
+
filename.open('w') do |f|
|
59
|
+
f.puts "SELECT 1;"
|
60
|
+
f.puts "SELECT ';';"
|
61
|
+
end
|
62
|
+
|
63
|
+
options[:file] = filename.to_s
|
64
|
+
|
65
|
+
transformer.statements.should == ['SELECT 1', "SELECT ';'"]
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'accepts a name' do
|
69
|
+
options[:statements] = []
|
70
|
+
options[:name] = 'Foo'
|
71
|
+
transformer.name.should == 'Foo'
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'provides a default name' do
|
75
|
+
options[:statements] = []
|
76
|
+
transformer.name.should == 'SQL Transformer with 0 statements'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#transform', :use_database do
|
81
|
+
let(:adapter) { mock('adapter') }
|
82
|
+
|
83
|
+
let(:statements) {
|
84
|
+
[
|
85
|
+
'UPDATE a SET x=42',
|
86
|
+
'UPDATE b SET y=42',
|
87
|
+
'UPDATE c SET z=42'
|
88
|
+
]
|
89
|
+
}
|
90
|
+
|
91
|
+
let(:transformer) {
|
92
|
+
SqlTransformer.new(spec_config, :statements => statements, :adapter => adapter)
|
93
|
+
}
|
94
|
+
|
95
|
+
let(:transform_status) {
|
96
|
+
NcsNavigator::Warehouse::TransformStatus.memory_only('test')
|
97
|
+
}
|
98
|
+
|
99
|
+
def result(count)
|
100
|
+
mock('result').tap do |m|
|
101
|
+
m.stub!(:affected_rows).and_return(count)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe 'when successful' do
|
106
|
+
before do
|
107
|
+
adapter.should_receive(:execute).with(statements[0]).ordered.and_return(result(4))
|
108
|
+
adapter.should_receive(:execute).with(statements[1]).ordered.and_return(result(7))
|
109
|
+
adapter.should_receive(:execute).with(statements[2]).ordered.and_return(result(1))
|
110
|
+
|
111
|
+
transformer.transform(transform_status)
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'executes all statements in series' do
|
115
|
+
# in before
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'stores the total affected record count' do
|
119
|
+
transform_status.record_count.should == (4 + 7 + 1)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe 'when there is an error' do
|
124
|
+
before do
|
125
|
+
adapter.should_receive(:execute).with(statements[0]).ordered.and_return(result(4))
|
126
|
+
adapter.should_receive(:execute).with(statements[1]).ordered.and_raise('Give up now')
|
127
|
+
adapter.should_not_receive(:execute).with(statements[2])
|
128
|
+
|
129
|
+
transformer.transform(transform_status)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'stops on the first statement with an error' do
|
133
|
+
# in before
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'records a transform error' do
|
137
|
+
transform_status.transform_errors.size.should == 1
|
138
|
+
end
|
139
|
+
|
140
|
+
describe 'the error' do
|
141
|
+
let(:the_error) {
|
142
|
+
transform_status.transform_errors.first
|
143
|
+
}
|
144
|
+
|
145
|
+
it 'has an appropriate message' do
|
146
|
+
the_error.message.should =~
|
147
|
+
/^Exception while executing SQL statement "UPDATE b SET y=42" \(2 of 3\).\s+RuntimeError: Give up now/
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'records the record count up to that point' do
|
152
|
+
transform_status.record_count.should == 4
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|