usps-imis-api 0.13.9 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/usps/imis/api.rb +9 -6
- data/lib/usps/imis/base_data.rb +0 -3
- data/lib/usps/imis/blank_object.rb +0 -4
- data/lib/usps/imis/business_object.rb +17 -10
- data/lib/usps/imis/command_line/formatters.rb +5 -3
- data/lib/usps/imis/command_line/interface.rb +7 -0
- data/lib/usps/imis/command_line/options.yml +3 -3
- data/lib/usps/imis/command_line.rb +2 -3
- data/lib/usps/imis/config.rb +12 -6
- data/lib/usps/imis/data.rb +0 -5
- data/lib/usps/imis/dependencies.rb +33 -0
- data/lib/usps/imis/error.rb +10 -17
- data/lib/usps/imis/errors/embedded_model_find_error.rb +20 -0
- data/lib/usps/imis/errors/empty_payload_error.rb +23 -0
- data/lib/usps/imis/errors/missing_party_field_error.rb +24 -0
- data/lib/usps/imis/errors/pattern_matching_error.rb +0 -2
- data/lib/usps/imis/logger.rb +0 -3
- data/lib/usps/imis/models/associations/individual_demog.rb +11 -0
- data/lib/usps/imis/models/base/finders.rb +80 -0
- data/lib/usps/imis/models/base/persistence.rb +110 -0
- data/lib/usps/imis/models/base.rb +279 -0
- data/lib/usps/imis/models/education.rb +25 -0
- data/lib/usps/imis/models/generated/abc_cs_contact.rb +91 -0
- data/lib/usps/imis/models/generated/abc_fed990.rb +17 -0
- data/lib/usps/imis/models/generated/abc_ps_volunteer_skills.rb +16 -0
- data/lib/usps/imis/models/generated/access_area.rb +22 -0
- data/lib/usps/imis/models/generated/access_item.rb +18 -0
- data/lib/usps/imis/models/generated/access_main.rb +18 -0
- data/lib/usps/imis/models/generated/action_plan.rb +21 -0
- data/lib/usps/imis/models/generated/activity.rb +57 -0
- data/lib/usps/imis/models/generated/activity_ldao.rb +58 -0
- data/lib/usps/imis/models/generated/activity_ldcdr.rb +57 -0
- data/lib/usps/imis/models/generated/activity_ldxo.rb +57 -0
- data/lib/usps/imis/models/generated/add_family.rb +13 -0
- data/lib/usps/imis/models/generated/advanced_email_twelve_months_delivered_by_date.rb +16 -0
- data/lib/usps/imis/models/generated/advanced_email_twelve_months_totals.rb +16 -0
- data/lib/usps/imis/models/generated/aec_chapter_events.rb +28 -0
- data/lib/usps/imis/models/generated/aec_chapter_link_all_events.rb +18 -0
- data/lib/usps/imis/models/generated/aec_district_administrators.rb +19 -0
- data/lib/usps/imis/models/generated/aec_district_squadron_admins.rb +14 -0
- data/lib/usps/imis/models/generated/aec_district_squadron_events.rb +15 -0
- data/lib/usps/imis/models/generated/aec_si_r_charge_fee_percentages.rb +14 -0
- data/lib/usps/imis/models/generated/aec_si_r_charge_params.rb +16 -0
- data/lib/usps/imis/models/generated/appeal.rb +39 -0
- data/lib/usps/imis/models/generated/appeal_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/asc_ps_abc_squadron_price.rb +25 -0
- data/lib/usps/imis/models/generated/atom_panel_purpose.rb +15 -0
- data/lib/usps/imis/models/generated/auto_pay_instruction_detail.rb +22 -0
- data/lib/usps/imis/models/generated/auto_pay_invoices.rb +24 -0
- data/lib/usps/imis/models/generated/auto_pay_invoices_dues.rb +29 -0
- data/lib/usps/imis/models/generated/auto_pay_member_instruction_detail.rb +22 -0
- data/lib/usps/imis/models/generated/auto_pay_membership_invoices_base.rb +28 -0
- data/lib/usps/imis/models/generated/bad_address_reason_ref.rb +18 -0
- data/lib/usps/imis/models/generated/batch_line_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/billing_cycles.rb +50 -0
- data/lib/usps/imis/models/generated/billing_fees.rb +61 -0
- data/lib/usps/imis/models/generated/billing_fees_by_bill_to_party.rb +20 -0
- data/lib/usps/imis/models/generated/billing_issue_notification_by_bill_run.rb +20 -0
- data/lib/usps/imis/models/generated/billing_issue_notification_by_party.rb +30 -0
- data/lib/usps/imis/models/generated/billing_log_by_bill_cycle_data.rb +28 -0
- data/lib/usps/imis/models/generated/billing_log_by_party.rb +29 -0
- data/lib/usps/imis/models/generated/billing_product.rb +30 -0
- data/lib/usps/imis/models/generated/bo_district_dues.rb +26 -0
- data/lib/usps/imis/models/generated/bo_dues_fees.rb +21 -0
- data/lib/usps/imis/models/generated/bo_dues_pricing.rb +18 -0
- data/lib/usps/imis/models/generated/bo_national_dues.rb +84 -0
- data/lib/usps/imis/models/generated/bo_no_natl_dist_dues.rb +135 -0
- data/lib/usps/imis/models/generated/bo_squadron_dues.rb +26 -0
- data/lib/usps/imis/models/generated/bo_total.rb +17 -0
- data/lib/usps/imis/models/generated/campaign.rb +42 -0
- data/lib/usps/imis/models/generated/campaign_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/campaign_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/certification_module_status.rb +14 -0
- data/lib/usps/imis/models/generated/change_log_report.rb +25 -0
- data/lib/usps/imis/models/generated/change_property.rb +18 -0
- data/lib/usps/imis/models/generated/chapt_subscriptions.rb +14 -0
- data/lib/usps/imis/models/generated/chapter.rb +15 -0
- data/lib/usps/imis/models/generated/chapter_events.rb +30 -0
- data/lib/usps/imis/models/generated/commerce_product.rb +47 -0
- data/lib/usps/imis/models/generated/commission_rate_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/committee.rb +16 -0
- data/lib/usps/imis/models/generated/committee_districts_org_id.rb +16 -0
- data/lib/usps/imis/models/generated/committee_i_ds_temp.rb +13 -0
- data/lib/usps/imis/models/generated/committee_squadrons_org_id.rb +16 -0
- data/lib/usps/imis/models/generated/communication_log_summary_for_charts.rb +15 -0
- data/lib/usps/imis/models/generated/communication_message_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/communication_reason_ref.rb +22 -0
- data/lib/usps/imis/models/generated/community_items.rb +25 -0
- data/lib/usps/imis/models/generated/community_subscriptions.rb +25 -0
- data/lib/usps/imis/models/generated/comparison_ref.rb +14 -0
- data/lib/usps/imis/models/generated/component_registry.rb +28 -0
- data/lib/usps/imis/models/generated/contact.rb +32 -0
- data/lib/usps/imis/models/generated/contact_birthday_info.rb +20 -0
- data/lib/usps/imis/models/generated/contact_communication_reason_preferences.rb +25 -0
- data/lib/usps/imis/models/generated/contact_detail_report.rb +49 -0
- data/lib/usps/imis/models/generated/contact_offering_ref.rb +14 -0
- data/lib/usps/imis/models/generated/contact_profile_image.rb +22 -0
- data/lib/usps/imis/models/generated/contact_report.rb +23 -0
- data/lib/usps/imis/models/generated/contact_salutation.rb +18 -0
- data/lib/usps/imis/models/generated/contact_skill_ref.rb +14 -0
- data/lib/usps/imis/models/generated/contact_social_network.rb +19 -0
- data/lib/usps/imis/models/generated/contact_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/contact_type_ref.rb +16 -0
- data/lib/usps/imis/models/generated/content_filter.rb +18 -0
- data/lib/usps/imis/models/generated/content_manager_authority_group.rb +14 -0
- data/lib/usps/imis/models/generated/cost_method_ref.rb +15 -0
- data/lib/usps/imis/models/generated/country_ref.rb +27 -0
- data/lib/usps/imis/models/generated/credit_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/cs_activity.rb +50 -0
- data/lib/usps/imis/models/generated/cs_activity_basic.rb +51 -0
- data/lib/usps/imis/models/generated/cs_activity_forms.rb +38 -0
- data/lib/usps/imis/models/generated/cs_activity_types.rb +16 -0
- data/lib/usps/imis/models/generated/cs_address.rb +40 -0
- data/lib/usps/imis/models/generated/cs_address_formats.rb +15 -0
- data/lib/usps/imis/models/generated/cs_appeal.rb +23 -0
- data/lib/usps/imis/models/generated/cs_calls.rb +20 -0
- data/lib/usps/imis/models/generated/cs_campaign.rb +20 -0
- data/lib/usps/imis/models/generated/cs_committee.rb +23 -0
- data/lib/usps/imis/models/generated/cs_committee_code.rb +20 -0
- data/lib/usps/imis/models/generated/cs_committee_member.rb +38 -0
- data/lib/usps/imis/models/generated/cs_committee_member_group.rb +15 -0
- data/lib/usps/imis/models/generated/cs_committee_position.rb +16 -0
- data/lib/usps/imis/models/generated/cs_contact.rb +91 -0
- data/lib/usps/imis/models/generated/cs_contact_basic.rb +79 -0
- data/lib/usps/imis/models/generated/cs_country_names.rb +19 -0
- data/lib/usps/imis/models/generated/cs_donations.rb +31 -0
- data/lib/usps/imis/models/generated/cs_donations_detail.rb +33 -0
- data/lib/usps/imis/models/generated/cs_donor_data.rb +21 -0
- data/lib/usps/imis/models/generated/cs_dues_history.rb +22 -0
- data/lib/usps/imis/models/generated/cs_event.rb +92 -0
- data/lib/usps/imis/models/generated/cs_event_history.rb +20 -0
- data/lib/usps/imis/models/generated/cs_exchange_rate.rb +14 -0
- data/lib/usps/imis/models/generated/cs_freight_dollar.rb +14 -0
- data/lib/usps/imis/models/generated/cs_function.rb +57 -0
- data/lib/usps/imis/models/generated/cs_function_fees.rb +20 -0
- data/lib/usps/imis/models/generated/cs_gen_tables_union.rb +15 -0
- data/lib/usps/imis/models/generated/cs_general_lookup_tables.rb +17 -0
- data/lib/usps/imis/models/generated/cs_inventory.rb +37 -0
- data/lib/usps/imis/models/generated/cs_invoice.rb +51 -0
- data/lib/usps/imis/models/generated/cs_iso_currency_codes.rb +14 -0
- data/lib/usps/imis/models/generated/cs_member_type.rb +18 -0
- data/lib/usps/imis/models/generated/cs_name_fin.rb +27 -0
- data/lib/usps/imis/models/generated/cs_name_fr.rb +27 -0
- data/lib/usps/imis/models/generated/cs_name_log.rb +17 -0
- data/lib/usps/imis/models/generated/cs_name_note.rb +18 -0
- data/lib/usps/imis/models/generated/cs_name_picture.rb +19 -0
- data/lib/usps/imis/models/generated/cs_name_user.rb +18 -0
- data/lib/usps/imis/models/generated/cs_order_history.rb +22 -0
- data/lib/usps/imis/models/generated/cs_order_lines.rb +54 -0
- data/lib/usps/imis/models/generated/cs_order_type.rb +15 -0
- data/lib/usps/imis/models/generated/cs_orders.rb +85 -0
- data/lib/usps/imis/models/generated/cs_org_control.rb +47 -0
- data/lib/usps/imis/models/generated/cs_product.rb +49 -0
- data/lib/usps/imis/models/generated/cs_product_category.rb +18 -0
- data/lib/usps/imis/models/generated/cs_product_fundraising.rb +22 -0
- data/lib/usps/imis/models/generated/cs_product_location.rb +14 -0
- data/lib/usps/imis/models/generated/cs_product_type.rb +14 -0
- data/lib/usps/imis/models/generated/cs_reg_functions.rb +36 -0
- data/lib/usps/imis/models/generated/cs_registrant_classes.rb +15 -0
- data/lib/usps/imis/models/generated/cs_registration.rb +39 -0
- data/lib/usps/imis/models/generated/cs_relationship.rb +25 -0
- data/lib/usps/imis/models/generated/cs_relationship_types.rb +17 -0
- data/lib/usps/imis/models/generated/cs_salutations.rb +14 -0
- data/lib/usps/imis/models/generated/cs_staff_user.rb +34 -0
- data/lib/usps/imis/models/generated/cs_state_province_codes.rb +15 -0
- data/lib/usps/imis/models/generated/cs_subscriptions.rb +58 -0
- data/lib/usps/imis/models/generated/cs_subscriptions_chapters.rb +15 -0
- data/lib/usps/imis/models/generated/cs_system_params.rb +15 -0
- data/lib/usps/imis/models/generated/cs_terms.rb +17 -0
- data/lib/usps/imis/models/generated/cs_trans_notify.rb +16 -0
- data/lib/usps/imis/models/generated/cs_web_security_group.rb +14 -0
- data/lib/usps/imis/models/generated/cs_web_user.rb +18 -0
- data/lib/usps/imis/models/generated/culture_ref.rb +14 -0
- data/lib/usps/imis/models/generated/customer_experience_status.rb +14 -0
- data/lib/usps/imis/models/generated/data_type.rb +16 -0
- data/lib/usps/imis/models/generated/data_vault_attempt_settlement_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/data_vault_attempt_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/data_vault_attempt_summary.rb +39 -0
- data/lib/usps/imis/models/generated/data_vault_batch_summary.rb +21 -0
- data/lib/usps/imis/models/generated/data_vault_log_attempt.rb +25 -0
- data/lib/usps/imis/models/generated/data_vault_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/data_vault_status_summary.rb +15 -0
- data/lib/usps/imis/models/generated/data_vault_status_summary_detail.rb +19 -0
- data/lib/usps/imis/models/generated/date_dimension.rb +24 -0
- data/lib/usps/imis/models/generated/day_of_the_week_ref.rb +14 -0
- data/lib/usps/imis/models/generated/discountable_item.rb +20 -0
- data/lib/usps/imis/models/generated/discountable_item_class.rb +15 -0
- data/lib/usps/imis/models/generated/distinct_user_defined_multi_select_properties.rb +17 -0
- data/lib/usps/imis/models/generated/districts_and_primary_members.rb +15 -0
- data/lib/usps/imis/models/generated/document_path.rb +14 -0
- data/lib/usps/imis/models/generated/document_storage.rb +23 -0
- data/lib/usps/imis/models/generated/document_system_size_info.rb +36 -0
- data/lib/usps/imis/models/generated/document_system_size_info_by_type.rb +37 -0
- data/lib/usps/imis/models/generated/document_system_status_count_info.rb +14 -0
- data/lib/usps/imis/models/generated/document_system_status_size_info.rb +15 -0
- data/lib/usps/imis/models/generated/document_system_type_count_info.rb +14 -0
- data/lib/usps/imis/models/generated/document_system_type_size_info.rb +15 -0
- data/lib/usps/imis/models/generated/document_type.rb +34 -0
- data/lib/usps/imis/models/generated/document_type_status_path_info.rb +28 -0
- data/lib/usps/imis/models/generated/donation.rb +31 -0
- data/lib/usps/imis/models/generated/donation_performance.rb +19 -0
- data/lib/usps/imis/models/generated/donation_summary.rb +36 -0
- data/lib/usps/imis/models/generated/dynamic_group.rb +18 -0
- data/lib/usps/imis/models/generated/educ_abc.rb +21 -0
- data/lib/usps/imis/models/generated/educ_boc.rb +21 -0
- data/lib/usps/imis/models/generated/educ_crs.rb +21 -0
- data/lib/usps/imis/models/generated/educ_id.rb +21 -0
- data/lib/usps/imis/models/generated/educ_ot.rb +21 -0
- data/lib/usps/imis/models/generated/educ_sem.rb +21 -0
- data/lib/usps/imis/models/generated/education_in_progress.rb +16 -0
- data/lib/usps/imis/models/generated/education_level_ref.rb +15 -0
- data/lib/usps/imis/models/generated/effective_contact_communication_preferences_data.rb +23 -0
- data/lib/usps/imis/models/generated/effective_fundraising_preferences_data.rb +18 -0
- data/lib/usps/imis/models/generated/engagement_category.rb +23 -0
- data/lib/usps/imis/models/generated/engagement_measure.rb +24 -0
- data/lib/usps/imis/models/generated/engagement_score_current_data.rb +21 -0
- data/lib/usps/imis/models/generated/engagement_score_formula.rb +19 -0
- data/lib/usps/imis/models/generated/engagement_score_monthly_data.rb +22 -0
- data/lib/usps/imis/models/generated/engagement_score_result.rb +21 -0
- data/lib/usps/imis/models/generated/engagement_score_yearly_data.rb +21 -0
- data/lib/usps/imis/models/generated/event_category_list.rb +16 -0
- data/lib/usps/imis/models/generated/event_function_resource_data.rb +22 -0
- data/lib/usps/imis/models/generated/event_question.rb +24 -0
- data/lib/usps/imis/models/generated/event_question_response.rb +25 -0
- data/lib/usps/imis/models/generated/event_registrants_report.rb +45 -0
- data/lib/usps/imis/models/generated/execution_mode_ref.rb +15 -0
- data/lib/usps/imis/models/generated/experience_definition_status.rb +14 -0
- data/lib/usps/imis/models/generated/expired_member_update_detail_log.rb +19 -0
- data/lib/usps/imis/models/generated/family_add_contact.rb +91 -0
- data/lib/usps/imis/models/generated/family_member_count.rb +37 -0
- data/lib/usps/imis/models/generated/file_type_ref.rb +16 -0
- data/lib/usps/imis/models/generated/first_notify_contact_per_gift.rb +14 -0
- data/lib/usps/imis/models/generated/first_payment_date_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/form_definition_field_data.rb +19 -0
- data/lib/usps/imis/models/generated/form_field_response_data.rb +22 -0
- data/lib/usps/imis/models/generated/fundraising_preference_ref.rb +15 -0
- data/lib/usps/imis/models/generated/fundraising_profile_donor_data.rb +18 -0
- data/lib/usps/imis/models/generated/gateway_result_ref.rb +14 -0
- data/lib/usps/imis/models/generated/gateway_transaction_data.rb +35 -0
- data/lib/usps/imis/models/generated/gateway_transaction_ref.rb +15 -0
- data/lib/usps/imis/models/generated/gateway_type_ref.rb +17 -0
- data/lib/usps/imis/models/generated/gift.rb +41 -0
- data/lib/usps/imis/models/generated/gift_adjustment_log_summary.rb +25 -0
- data/lib/usps/imis/models/generated/gift_aid_claim_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/gift_array.rb +16 -0
- data/lib/usps/imis/models/generated/gift_detail.rb +29 -0
- data/lib/usps/imis/models/generated/gift_history.rb +45 -0
- data/lib/usps/imis/models/generated/gift_history_summary.rb +33 -0
- data/lib/usps/imis/models/generated/gift_history_summary_basic.rb +33 -0
- data/lib/usps/imis/models/generated/gift_summary.rb +16 -0
- data/lib/usps/imis/models/generated/gift_totals_by_date.rb +15 -0
- data/lib/usps/imis/models/generated/gift_transaction.rb +43 -0
- data/lib/usps/imis/models/generated/gifts_received.rb +32 -0
- data/lib/usps/imis/models/generated/gifts_received_for_receipting.rb +44 -0
- data/lib/usps/imis/models/generated/gifts_received_summary.rb +33 -0
- data/lib/usps/imis/models/generated/gifts_with_void_and_replaced_receipts.rb +43 -0
- data/lib/usps/imis/models/generated/gl_batch_transaction_data.rb +30 -0
- data/lib/usps/imis/models/generated/gl_daily_transaction_data.rb +30 -0
- data/lib/usps/imis/models/generated/gl_detail_due_to_due_from_transaction_data.rb +17 -0
- data/lib/usps/imis/models/generated/gl_detail_transaction_data.rb +36 -0
- data/lib/usps/imis/models/generated/gl_detail_transaction_data_full.rb +36 -0
- data/lib/usps/imis/models/generated/gl_due_to_due_from_transaction_data.rb +18 -0
- data/lib/usps/imis/models/generated/gl_entry_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/gl_export_format_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/gl_export_log_detail.rb +15 -0
- data/lib/usps/imis/models/generated/gl_export_log_summary.rb +26 -0
- data/lib/usps/imis/models/generated/gl_export_multiple.rb +15 -0
- data/lib/usps/imis/models/generated/gl_export_summary_level_ref.rb +15 -0
- data/lib/usps/imis/models/generated/gl_monthly_due_to_due_from_transaction_data.rb +18 -0
- data/lib/usps/imis/models/generated/gl_monthly_transaction_data.rb +29 -0
- data/lib/usps/imis/models/generated/gl_source_item_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/gl_transaction_data.rb +41 -0
- data/lib/usps/imis/models/generated/grade.rb +14 -0
- data/lib/usps/imis/models/generated/group_info.rb +28 -0
- data/lib/usps/imis/models/generated/group_member_administrator_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/group_member_detail.rb +29 -0
- data/lib/usps/imis/models/generated/group_member_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/group_perspective.rb +16 -0
- data/lib/usps/imis/models/generated/group_price_sheet.rb +17 -0
- data/lib/usps/imis/models/generated/group_role_ref.rb +17 -0
- data/lib/usps/imis/models/generated/group_status_ref.rb +16 -0
- data/lib/usps/imis/models/generated/group_type_member_status.rb +17 -0
- data/lib/usps/imis/models/generated/group_type_ref.rb +33 -0
- data/lib/usps/imis/models/generated/group_type_role.rb +22 -0
- data/lib/usps/imis/models/generated/handling_price_ref.rb +15 -0
- data/lib/usps/imis/models/generated/hierarchy.rb +21 -0
- data/lib/usps/imis/models/generated/hierarchy_root.rb +22 -0
- data/lib/usps/imis/models/generated/i_series_data.rb +15 -0
- data/lib/usps/imis/models/generated/individual_demog.rb +34 -0
- data/lib/usps/imis/models/generated/institute_type_code_ref.rb +16 -0
- data/lib/usps/imis/models/generated/interaction_log.rb +35 -0
- data/lib/usps/imis/models/generated/interaction_log_event.rb +24 -0
- data/lib/usps/imis/models/generated/interaction_log_event_summary.rb +30 -0
- data/lib/usps/imis/models/generated/interval_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/invoice_line_data.rb +39 -0
- data/lib/usps/imis/models/generated/invoice_lines.rb +42 -0
- data/lib/usps/imis/models/generated/invoice_number.rb +16 -0
- data/lib/usps/imis/models/generated/invoice_payment_summary.rb +14 -0
- data/lib/usps/imis/models/generated/invoice_purpose.rb +15 -0
- data/lib/usps/imis/models/generated/invoice_source_system_ref.rb +13 -0
- data/lib/usps/imis/models/generated/invoice_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/journal_entry_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/license_ref.rb +15 -0
- data/lib/usps/imis/models/generated/line_pricing_ref.rb +15 -0
- data/lib/usps/imis/models/generated/list_entity.rb +14 -0
- data/lib/usps/imis/models/generated/locale_ref.rb +14 -0
- data/lib/usps/imis/models/generated/location_status.rb +14 -0
- data/lib/usps/imis/models/generated/mail_code_ref.rb +16 -0
- data/lib/usps/imis/models/generated/matching_gift_plan_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/matching_mode_ref.rb +15 -0
- data/lib/usps/imis/models/generated/matching_period_ref.rb +15 -0
- data/lib/usps/imis/models/generated/memorial_tribute_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/method_set_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/month_ref.rb +18 -0
- data/lib/usps/imis/models/generated/name_prefixes.rb +15 -0
- data/lib/usps/imis/models/generated/name_suffixes.rb +13 -0
- data/lib/usps/imis/models/generated/navigation_pane.rb +18 -0
- data/lib/usps/imis/models/generated/net_contact.rb +99 -0
- data/lib/usps/imis/models/generated/net_contact_basic.rb +88 -0
- data/lib/usps/imis/models/generated/net_contact_data.rb +88 -0
- data/lib/usps/imis/models/generated/note_purpose_ref.rb +14 -0
- data/lib/usps/imis/models/generated/offering_status.rb +14 -0
- data/lib/usps/imis/models/generated/opportunity_class_ref.rb +15 -0
- data/lib/usps/imis/models/generated/opportunity_default_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/opportunity_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/opportunity_task_user.rb +20 -0
- data/lib/usps/imis/models/generated/opportunity_type.rb +29 -0
- data/lib/usps/imis/models/generated/order_category.rb +14 -0
- data/lib/usps/imis/models/generated/order_fulfillment_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/order_invoice.rb +14 -0
- data/lib/usps/imis/models/generated/order_state_ref.rb +14 -0
- data/lib/usps/imis/models/generated/order_type_detail.rb +17 -0
- data/lib/usps/imis/models/generated/org_demog.rb +28 -0
- data/lib/usps/imis/models/generated/organization_demo.rb +18 -0
- data/lib/usps/imis/models/generated/organization_hierarchy.rb +19 -0
- data/lib/usps/imis/models/generated/package.rb +25 -0
- data/lib/usps/imis/models/generated/package_item.rb +19 -0
- data/lib/usps/imis/models/generated/package_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/payment_application.rb +31 -0
- data/lib/usps/imis/models/generated/payment_application_detail.rb +35 -0
- data/lib/usps/imis/models/generated/payment_application_restriction_ref.rb +14 -0
- data/lib/usps/imis/models/generated/payment_application_summary.rb +18 -0
- data/lib/usps/imis/models/generated/payment_application_type.rb +14 -0
- data/lib/usps/imis/models/generated/payment_category_ref.rb +14 -0
- data/lib/usps/imis/models/generated/payment_detail_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/payment_method_data.rb +20 -0
- data/lib/usps/imis/models/generated/payment_reconciliation.rb +26 -0
- data/lib/usps/imis/models/generated/payment_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/percentile_ranking.rb +20 -0
- data/lib/usps/imis/models/generated/picture_purpose_ref.rb +14 -0
- data/lib/usps/imis/models/generated/pin_update.rb +13 -0
- data/lib/usps/imis/models/generated/pipeline.rb +15 -0
- data/lib/usps/imis/models/generated/pipeline_stage.rb +17 -0
- data/lib/usps/imis/models/generated/postal_code_ref.rb +26 -0
- data/lib/usps/imis/models/generated/prefix_ref.rb +17 -0
- data/lib/usps/imis/models/generated/price_basis_ref.rb +15 -0
- data/lib/usps/imis/models/generated/pricing_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/primary_fam_members.rb +14 -0
- data/lib/usps/imis/models/generated/process_type_default_owner_all_users.rb +15 -0
- data/lib/usps/imis/models/generated/product_price_sheet.rb +20 -0
- data/lib/usps/imis/models/generated/product_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/product_trans.rb +31 -0
- data/lib/usps/imis/models/generated/product_trans_detail.rb +17 -0
- data/lib/usps/imis/models/generated/profile_documents.rb +15 -0
- data/lib/usps/imis/models/generated/profile_page.rb +36 -0
- data/lib/usps/imis/models/generated/program_group_status.rb +14 -0
- data/lib/usps/imis/models/generated/program_status.rb +14 -0
- data/lib/usps/imis/models/generated/promotion_rule_ref.rb +15 -0
- data/lib/usps/imis/models/generated/property_definition.rb +33 -0
- data/lib/usps/imis/models/generated/prospect.rb +38 -0
- data/lib/usps/imis/models/generated/publish_priority.rb +14 -0
- data/lib/usps/imis/models/generated/publish_request.rb +18 -0
- data/lib/usps/imis/models/generated/publish_request_detail.rb +22 -0
- data/lib/usps/imis/models/generated/publish_request_status.rb +15 -0
- data/lib/usps/imis/models/generated/publish_server.rb +29 -0
- data/lib/usps/imis/models/generated/quality_ref.rb +15 -0
- data/lib/usps/imis/models/generated/rank.rb +21 -0
- data/lib/usps/imis/models/generated/receipt_report.rb +24 -0
- data/lib/usps/imis/models/generated/receipt_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/recurring_donation_expected_payment_set.rb +19 -0
- data/lib/usps/imis/models/generated/recurring_donation_expected_payment_set_list.rb +20 -0
- data/lib/usps/imis/models/generated/recurring_donation_expected_payment_set_status.rb +15 -0
- data/lib/usps/imis/models/generated/recurring_donation_expected_payment_status.rb +15 -0
- data/lib/usps/imis/models/generated/recurring_donation_frequency_ref.rb +15 -0
- data/lib/usps/imis/models/generated/reference_date.rb +13 -0
- data/lib/usps/imis/models/generated/registered_component.rb +27 -0
- data/lib/usps/imis/models/generated/registration_status.rb +14 -0
- data/lib/usps/imis/models/generated/relationship.rb +18 -0
- data/lib/usps/imis/models/generated/relationship_category.rb +17 -0
- data/lib/usps/imis/models/generated/relationship_type_category.rb +17 -0
- data/lib/usps/imis/models/generated/relationship_type_ref.rb +16 -0
- data/lib/usps/imis/models/generated/relationship_update.rb +16 -0
- data/lib/usps/imis/models/generated/relationship_update_contact_panel.rb +16 -0
- data/lib/usps/imis/models/generated/remove_district_org_committee_terms.rb +28 -0
- data/lib/usps/imis/models/generated/remove_squadron_org_committee_terms.rb +28 -0
- data/lib/usps/imis/models/generated/reporting_group_user.rb +14 -0
- data/lib/usps/imis/models/generated/response_media_ref.rb +14 -0
- data/lib/usps/imis/models/generated/response_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/restock_price_ref.rb +15 -0
- data/lib/usps/imis/models/generated/sales_location_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/salutation_ref.rb +22 -0
- data/lib/usps/imis/models/generated/sbuddy_answers.rb +23 -0
- data/lib/usps/imis/models/generated/sbuddy_definition.rb +28 -0
- data/lib/usps/imis/models/generated/schedule_frequency_ref.rb +14 -0
- data/lib/usps/imis/models/generated/segmentation_job_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/sequence_counter.rb +16 -0
- data/lib/usps/imis/models/generated/set_district_org_committee_terms.rb +28 -0
- data/lib/usps/imis/models/generated/set_squadron_org_committee_terms.rb +28 -0
- data/lib/usps/imis/models/generated/ship_price_ref.rb +15 -0
- data/lib/usps/imis/models/generated/soa_group.rb +21 -0
- data/lib/usps/imis/models/generated/soa_group_member.rb +19 -0
- data/lib/usps/imis/models/generated/soa_group_member_detail.rb +28 -0
- data/lib/usps/imis/models/generated/social_network_ref.rb +15 -0
- data/lib/usps/imis/models/generated/solicitation.rb +40 -0
- data/lib/usps/imis/models/generated/solicitation_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/source_code.rb +43 -0
- data/lib/usps/imis/models/generated/source_code_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/source_code_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/squad_form_add_fam.rb +23 -0
- data/lib/usps/imis/models/generated/squad_form_add_individual.rb +31 -0
- data/lib/usps/imis/models/generated/squad_leader_add_individual_contact.rb +28 -0
- data/lib/usps/imis/models/generated/squad_note.rb +13 -0
- data/lib/usps/imis/models/generated/squad_to_district.rb +18 -0
- data/lib/usps/imis/models/generated/squadron_chap_com.rb +16 -0
- data/lib/usps/imis/models/generated/squadron_district_lookup.rb +18 -0
- data/lib/usps/imis/models/generated/squadrons_and_primary_members.rb +15 -0
- data/lib/usps/imis/models/generated/standard_page.rb +15 -0
- data/lib/usps/imis/models/generated/state_province_ref.rb +21 -0
- data/lib/usps/imis/models/generated/suffix_ref.rb +16 -0
- data/lib/usps/imis/models/generated/supplement.rb +27 -0
- data/lib/usps/imis/models/generated/supplement_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/supplement_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/system_config_xml.rb +14 -0
- data/lib/usps/imis/models/generated/system_param_int.rb +23 -0
- data/lib/usps/imis/models/generated/tag_hierarchy.rb +32 -0
- data/lib/usps/imis/models/generated/tag_relationship_type.rb +16 -0
- data/lib/usps/imis/models/generated/task_item.rb +32 -0
- data/lib/usps/imis/models/generated/task_item_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/task_latest_log.rb +15 -0
- data/lib/usps/imis/models/generated/task_notify_creator_ref.rb +15 -0
- data/lib/usps/imis/models/generated/task_priority.rb +15 -0
- data/lib/usps/imis/models/generated/task_status.rb +16 -0
- data/lib/usps/imis/models/generated/task_type.rb +15 -0
- data/lib/usps/imis/models/generated/tax_authority_level_ref.rb +15 -0
- data/lib/usps/imis/models/generated/time_zone_ref.rb +20 -0
- data/lib/usps/imis/models/generated/top_level_parent_organization.rb +20 -0
- data/lib/usps/imis/models/generated/transaction_detail.rb +56 -0
- data/lib/usps/imis/models/generated/transaction_summary_large_batch.rb +44 -0
- data/lib/usps/imis/models/generated/uniform_registry.rb +14 -0
- data/lib/usps/imis/models/generated/uniform_tag.rb +17 -0
- data/lib/usps/imis/models/generated/upgrade_log_detail.rb +19 -0
- data/lib/usps/imis/models/generated/url_mapping_type_ref.rb +15 -0
- data/lib/usps/imis/models/generated/user_data.rb +33 -0
- data/lib/usps/imis/models/generated/user_role.rb +14 -0
- data/lib/usps/imis/models/generated/user_token.rb +14 -0
- data/lib/usps/imis/models/generated/vertical_alignment_ref.rb +15 -0
- data/lib/usps/imis/models/generated/vessels.rb +18 -0
- data/lib/usps/imis/models/generated/volunteer_information.rb +22 -0
- data/lib/usps/imis/models/generated/warehouse_status_ref.rb +14 -0
- data/lib/usps/imis/models/generated/warehouse_type_ref.rb +14 -0
- data/lib/usps/imis/models/generated/web_user_control_ref.rb +15 -0
- data/lib/usps/imis/models/generated/workflow_queue_item.rb +25 -0
- data/lib/usps/imis/models/generated/workflow_queue_item_with_status.rb +25 -0
- data/lib/usps/imis/models/generated/workflow_queue_status_ref.rb +15 -0
- data/lib/usps/imis/models/generated/workflow_status_ref.rb +15 -0
- data/lib/usps/imis/models/party/address.rb +32 -0
- data/lib/usps/imis/models/party/alternate_id.rb +16 -0
- data/lib/usps/imis/models/party/email.rb +17 -0
- data/lib/usps/imis/models/party/phone.rb +17 -0
- data/lib/usps/imis/models/party/salutation.rb +18 -0
- data/lib/usps/imis/models/party.rb +131 -0
- data/lib/usps/imis/models/types/upcase_string.rb +18 -0
- data/lib/usps/imis/models/vessel_safety_checks.rb +20 -0
- data/lib/usps/imis/models.rb +92 -0
- data/lib/usps/imis/party_data.rb +1 -6
- data/lib/usps/imis/query.rb +5 -1
- data/lib/usps/imis/version.rb +1 -1
- data/lib/usps/imis.rb +10 -19
- data/spec/support/usps/simple_cov_uncovered_lines_formatter.rb +53 -0
- metadata +477 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Usps
|
|
4
|
+
module Imis
|
|
5
|
+
# Namespace and routing registry for ActiveModel-backed iMIS wrappers.
|
|
6
|
+
# Subclass +Models::Base+ and declare +business_object+ to opt a Business
|
|
7
|
+
# Object into Model wrapping; +BusinessObject+ and +Query+ consult this
|
|
8
|
+
# registry to decide whether to wrap parsed responses.
|
|
9
|
+
#
|
|
10
|
+
module Models
|
|
11
|
+
@registry = {}
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
# Process-wide default +Api+ used when callers omit +api:+ on
|
|
15
|
+
# +find+ / +find_by+. Memoized lazily; assignment overrides.
|
|
16
|
+
#
|
|
17
|
+
attr_writer :default_api
|
|
18
|
+
|
|
19
|
+
def default_api = @default_api ||= Imis::Api.new
|
|
20
|
+
|
|
21
|
+
# Look up the registered Model class for an iMIS Business Object name.
|
|
22
|
+
# Returns +nil+ if none is registered.
|
|
23
|
+
#
|
|
24
|
+
def for_entity(name)
|
|
25
|
+
load!
|
|
26
|
+
@registry[name.to_s]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# All registered Business Object names, sorted.
|
|
30
|
+
#
|
|
31
|
+
def entity_names
|
|
32
|
+
load!
|
|
33
|
+
@registry.keys.sort
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Register a Model subclass under its +business_object_name+. Called
|
|
37
|
+
# from +Base.business_object+; tests can call +deregister+ for cleanup.
|
|
38
|
+
#
|
|
39
|
+
def register(klass) = @registry[klass.business_object_name] = klass
|
|
40
|
+
|
|
41
|
+
# Remove a Model subclass from the routing registry.
|
|
42
|
+
#
|
|
43
|
+
def deregister(name) = @registry.delete(name.to_s)
|
|
44
|
+
|
|
45
|
+
# Require all model files. Hand-written files at the top level go first
|
|
46
|
+
# (some — e.g. party.rb — require their own subdirectory). Auto-generated
|
|
47
|
+
# wrappers under generated/ are loaded next. Finally, files in associations/
|
|
48
|
+
# reopen previously-loaded classes to declare cross-model relationships;
|
|
49
|
+
# they're separated from generated/ so the generator doesn't clobber them.
|
|
50
|
+
#
|
|
51
|
+
# Deferred until first registry lookup so CLI startup (--help, --version)
|
|
52
|
+
# doesn't pay the cost of requiring several hundred model files.
|
|
53
|
+
#
|
|
54
|
+
# Trigger lazy load when callers reference a model constant directly
|
|
55
|
+
# (e.g. +Usps::Imis::Models::Party+) before any registry lookup has
|
|
56
|
+
# forced loading.
|
|
57
|
+
#
|
|
58
|
+
def const_missing(name)
|
|
59
|
+
return super if loaded? || skipped? || name == :Base
|
|
60
|
+
|
|
61
|
+
load!
|
|
62
|
+
const_get(name)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def load!
|
|
66
|
+
return if loaded? || skipped?
|
|
67
|
+
|
|
68
|
+
dir = File.expand_path('models', __dir__)
|
|
69
|
+
paths =
|
|
70
|
+
Dir[File.join(dir, '*.rb')] +
|
|
71
|
+
Dir[File.join(dir, 'generated', '*.rb')] +
|
|
72
|
+
Dir[File.join(dir, 'associations', '*.rb')]
|
|
73
|
+
paths
|
|
74
|
+
.reject { it.end_with?('models/base.rb') }
|
|
75
|
+
.map { it.sub(/\.rb$/, '') }
|
|
76
|
+
.each { require it }
|
|
77
|
+
|
|
78
|
+
@loaded = true
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def skip!
|
|
82
|
+
@skipped = true
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def loaded? = @loaded
|
|
86
|
+
def skipped? = @skipped
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
require_relative 'models/base'
|
data/lib/usps/imis/party_data.rb
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'pp'
|
|
4
|
-
require 'stringio'
|
|
5
|
-
|
|
6
|
-
require_relative 'base_data'
|
|
7
|
-
|
|
8
3
|
module Usps
|
|
9
4
|
module Imis
|
|
10
5
|
# Convenience wrapper for accessing specific properties within an API data response for the
|
|
@@ -79,7 +74,7 @@ module Usps
|
|
|
79
74
|
when String, Integer, true, false then next
|
|
80
75
|
end
|
|
81
76
|
|
|
82
|
-
if %w[Addresses AlternateIds CommunicationPreferences Emails Salutations].include?(key)
|
|
77
|
+
if %w[Addresses AlternateIds CommunicationPreferences Emails Phones Salutations].include?(key)
|
|
83
78
|
hash[key] = value.map { format_extracted(it.to_h) }
|
|
84
79
|
elsif value.all?(String)
|
|
85
80
|
# Do nothing
|
data/lib/usps/imis/query.rb
CHANGED
|
@@ -153,7 +153,11 @@ module Usps
|
|
|
153
153
|
end
|
|
154
154
|
end
|
|
155
155
|
|
|
156
|
-
def wrap(data)
|
|
156
|
+
def wrap(data)
|
|
157
|
+
wrapped = query_name == 'Party' ? Imis::PartyData[data] : Imis::Data[data]
|
|
158
|
+
model_klass = Imis::Models.for_entity(query_name)
|
|
159
|
+
model_klass ? model_klass.from_data(wrapped, api:) : wrapped
|
|
160
|
+
end
|
|
157
161
|
end
|
|
158
162
|
end
|
|
159
163
|
end
|
data/lib/usps/imis/version.rb
CHANGED
data/lib/usps/imis.rb
CHANGED
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require 'net/https'
|
|
5
|
-
require 'json'
|
|
6
|
-
require 'yaml'
|
|
7
|
-
require 'time'
|
|
8
|
-
require 'cgi'
|
|
3
|
+
require_relative 'imis/dependencies'
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
require 'active_support/core_ext/object/to_query'
|
|
12
|
-
require 'active_support/core_ext/enumerable'
|
|
13
|
-
require 'active_support/core_ext/module/delegation'
|
|
14
|
-
require 'active_support/string_inquirer'
|
|
15
|
-
require 'active_support/duration'
|
|
16
|
-
require 'logger'
|
|
17
|
-
require 'active_support/isolated_execution_state' # Fix constant loading issue with TaggedLogging
|
|
18
|
-
require 'active_support/tagged_logging'
|
|
19
|
-
|
|
20
|
-
require 'dotenv/load'
|
|
21
|
-
|
|
22
|
-
# Internal requires
|
|
5
|
+
# Shared infrastructure (used by multiple files below)
|
|
23
6
|
require_relative 'imis/helpers'
|
|
7
|
+
require_relative 'imis/requests'
|
|
8
|
+
require_relative 'imis/logger_formatter'
|
|
9
|
+
require_relative 'imis/logger_helpers'
|
|
10
|
+
require_relative 'imis/base_data'
|
|
11
|
+
require_relative 'imis/data'
|
|
12
|
+
require_relative 'imis/party_data'
|
|
13
|
+
|
|
24
14
|
require_relative 'imis/config'
|
|
25
15
|
require_relative 'imis/error'
|
|
26
16
|
require_relative 'imis/api'
|
|
27
17
|
require_relative 'imis/properties'
|
|
28
18
|
require_relative 'imis/blank_object'
|
|
19
|
+
require_relative 'imis/models'
|
|
29
20
|
require_relative 'imis/panels'
|
|
30
21
|
require_relative 'imis/mocks'
|
|
31
22
|
require_relative 'imis/version'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Simple coverage formatter to display paths of any uncovered lines
|
|
4
|
+
#
|
|
5
|
+
# Intended to make it quicker to know what was uncovered, especially when
|
|
6
|
+
# running in GitHub Actions
|
|
7
|
+
#
|
|
8
|
+
# Extracted from gem `usps-support`
|
|
9
|
+
#
|
|
10
|
+
# rubocop:disable RSpec/Output
|
|
11
|
+
module Usps
|
|
12
|
+
class SimpleCovUncoveredLinesFormatter
|
|
13
|
+
attr_reader :uncovered_files
|
|
14
|
+
|
|
15
|
+
def format(result)
|
|
16
|
+
@uncovered_files = result.files.reject { it.missed_lines.empty? }
|
|
17
|
+
return unless uncovered_files.any?
|
|
18
|
+
|
|
19
|
+
puts 'Uncovered lines:'
|
|
20
|
+
uncovered_files.each { report(it) }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def report(file)
|
|
26
|
+
missed = pad(file.missed_lines.size)
|
|
27
|
+
total = pad(file.lines_of_code)
|
|
28
|
+
percent = file.covered_percent.round(2).to_s.rjust(5, ' ')
|
|
29
|
+
|
|
30
|
+
puts " [#{missed} / #{total} : #{percent}%] #{file.filename}"
|
|
31
|
+
puts " Lines: #{line_number_ranges(file).join(', ')}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def pad(number) = number.to_s.rjust(max_line_count_length, ' ')
|
|
35
|
+
|
|
36
|
+
def max_line_count_length
|
|
37
|
+
@max_line_count_length ||= uncovered_files.map(&:lines_of_code).max.to_s.length
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def line_number_ranges(file)
|
|
41
|
+
file
|
|
42
|
+
.missed_lines
|
|
43
|
+
.map(&:line_number)
|
|
44
|
+
.chunk
|
|
45
|
+
.with_index { |number, index| number - index }
|
|
46
|
+
.map do |_diff, group|
|
|
47
|
+
first, *, last = group
|
|
48
|
+
last.nil? ? first : "#{first}-#{last}"
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
# rubocop:enable RSpec/Output
|