xero-ruby 2.10.2 → 3.1.3
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/README.md +6 -6
- data/lib/xero-ruby.rb +4 -0
- data/lib/xero-ruby/api/accounting_api.rb +307 -151
- data/lib/xero-ruby/models/accounting/account.rb +13 -7
- data/lib/xero-ruby/models/accounting/accounts.rb +13 -7
- data/lib/xero-ruby/models/accounting/accounts_payable.rb +13 -7
- data/lib/xero-ruby/models/accounting/accounts_receivable.rb +13 -7
- data/lib/xero-ruby/models/accounting/action.rb +13 -7
- data/lib/xero-ruby/models/accounting/actions.rb +13 -7
- data/lib/xero-ruby/models/accounting/address.rb +13 -7
- data/lib/xero-ruby/models/accounting/address_for_organisation.rb +13 -7
- data/lib/xero-ruby/models/accounting/allocation.rb +13 -7
- data/lib/xero-ruby/models/accounting/allocations.rb +13 -7
- data/lib/xero-ruby/models/accounting/attachment.rb +13 -7
- data/lib/xero-ruby/models/accounting/attachments.rb +13 -7
- data/lib/xero-ruby/models/accounting/balance_details.rb +13 -7
- data/lib/xero-ruby/models/accounting/balances.rb +13 -7
- data/lib/xero-ruby/models/accounting/bank_transaction.rb +13 -7
- data/lib/xero-ruby/models/accounting/bank_transactions.rb +13 -7
- data/lib/xero-ruby/models/accounting/bank_transfer.rb +13 -7
- data/lib/xero-ruby/models/accounting/bank_transfers.rb +13 -7
- data/lib/xero-ruby/models/accounting/batch_payment.rb +13 -7
- data/lib/xero-ruby/models/accounting/batch_payment_details.rb +13 -7
- data/lib/xero-ruby/models/accounting/batch_payments.rb +13 -7
- data/lib/xero-ruby/models/accounting/bill.rb +13 -7
- data/lib/xero-ruby/models/accounting/branding_theme.rb +13 -7
- data/lib/xero-ruby/models/accounting/branding_themes.rb +13 -7
- data/lib/xero-ruby/models/accounting/budget.rb +327 -0
- data/lib/xero-ruby/models/accounting/budget_balance.rb +267 -0
- data/lib/xero-ruby/models/accounting/budget_line.rb +244 -0
- data/lib/xero-ruby/models/accounting/budgets.rb +224 -0
- data/lib/xero-ruby/models/accounting/cis_org_setting.rb +13 -7
- data/lib/xero-ruby/models/accounting/cis_org_settings.rb +13 -7
- data/lib/xero-ruby/models/accounting/cis_setting.rb +13 -7
- data/lib/xero-ruby/models/accounting/cis_settings.rb +13 -7
- data/lib/xero-ruby/models/accounting/contact.rb +13 -7
- data/lib/xero-ruby/models/accounting/contact_group.rb +13 -7
- data/lib/xero-ruby/models/accounting/contact_groups.rb +13 -7
- data/lib/xero-ruby/models/accounting/contact_person.rb +13 -7
- data/lib/xero-ruby/models/accounting/contacts.rb +13 -7
- data/lib/xero-ruby/models/accounting/conversion_balances.rb +13 -7
- data/lib/xero-ruby/models/accounting/conversion_date.rb +13 -7
- data/lib/xero-ruby/models/accounting/credit_note.rb +13 -7
- data/lib/xero-ruby/models/accounting/credit_notes.rb +13 -7
- data/lib/xero-ruby/models/accounting/currencies.rb +13 -7
- data/lib/xero-ruby/models/accounting/currency.rb +13 -7
- data/lib/xero-ruby/models/accounting/element.rb +13 -7
- data/lib/xero-ruby/models/accounting/employee.rb +13 -7
- data/lib/xero-ruby/models/accounting/employees.rb +13 -7
- data/lib/xero-ruby/models/accounting/error.rb +13 -7
- data/lib/xero-ruby/models/accounting/expense_claim.rb +13 -7
- data/lib/xero-ruby/models/accounting/expense_claims.rb +13 -7
- data/lib/xero-ruby/models/accounting/external_link.rb +13 -7
- data/lib/xero-ruby/models/accounting/history_record.rb +13 -7
- data/lib/xero-ruby/models/accounting/history_records.rb +13 -7
- data/lib/xero-ruby/models/accounting/import_summary.rb +13 -7
- data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +13 -7
- data/lib/xero-ruby/models/accounting/import_summary_object.rb +13 -7
- data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +13 -7
- data/lib/xero-ruby/models/accounting/invoice.rb +13 -7
- data/lib/xero-ruby/models/accounting/invoice_reminder.rb +13 -7
- data/lib/xero-ruby/models/accounting/invoice_reminders.rb +13 -7
- data/lib/xero-ruby/models/accounting/invoices.rb +13 -7
- data/lib/xero-ruby/models/accounting/item.rb +13 -7
- data/lib/xero-ruby/models/accounting/items.rb +13 -7
- data/lib/xero-ruby/models/accounting/journal.rb +13 -7
- data/lib/xero-ruby/models/accounting/journal_line.rb +13 -7
- data/lib/xero-ruby/models/accounting/journals.rb +13 -7
- data/lib/xero-ruby/models/accounting/line_item.rb +24 -8
- data/lib/xero-ruby/models/accounting/line_item_tracking.rb +13 -7
- data/lib/xero-ruby/models/accounting/linked_transaction.rb +13 -7
- data/lib/xero-ruby/models/accounting/linked_transactions.rb +13 -7
- data/lib/xero-ruby/models/accounting/manual_journal.rb +13 -7
- data/lib/xero-ruby/models/accounting/manual_journal_line.rb +13 -7
- data/lib/xero-ruby/models/accounting/manual_journals.rb +13 -7
- data/lib/xero-ruby/models/accounting/online_invoice.rb +13 -7
- data/lib/xero-ruby/models/accounting/online_invoices.rb +13 -7
- data/lib/xero-ruby/models/accounting/organisation.rb +13 -7
- data/lib/xero-ruby/models/accounting/organisations.rb +13 -7
- data/lib/xero-ruby/models/accounting/overpayment.rb +13 -7
- data/lib/xero-ruby/models/accounting/overpayments.rb +13 -7
- data/lib/xero-ruby/models/accounting/payment.rb +13 -7
- data/lib/xero-ruby/models/accounting/payment_delete.rb +13 -7
- data/lib/xero-ruby/models/accounting/payment_service.rb +13 -7
- data/lib/xero-ruby/models/accounting/payment_services.rb +13 -7
- data/lib/xero-ruby/models/accounting/payment_term.rb +13 -7
- data/lib/xero-ruby/models/accounting/payments.rb +13 -7
- data/lib/xero-ruby/models/accounting/phone.rb +13 -7
- data/lib/xero-ruby/models/accounting/prepayment.rb +26 -8
- data/lib/xero-ruby/models/accounting/prepayments.rb +13 -7
- data/lib/xero-ruby/models/accounting/purchase.rb +13 -7
- data/lib/xero-ruby/models/accounting/purchase_order.rb +13 -7
- data/lib/xero-ruby/models/accounting/purchase_orders.rb +13 -7
- data/lib/xero-ruby/models/accounting/quote.rb +13 -7
- data/lib/xero-ruby/models/accounting/quotes.rb +13 -7
- data/lib/xero-ruby/models/accounting/receipt.rb +13 -7
- data/lib/xero-ruby/models/accounting/receipts.rb +13 -7
- data/lib/xero-ruby/models/accounting/repeating_invoice.rb +13 -7
- data/lib/xero-ruby/models/accounting/repeating_invoices.rb +13 -7
- data/lib/xero-ruby/models/accounting/report.rb +14 -18
- data/lib/xero-ruby/models/accounting/report_attribute.rb +13 -7
- data/lib/xero-ruby/models/accounting/report_cell.rb +13 -7
- data/lib/xero-ruby/models/accounting/report_fields.rb +13 -7
- data/lib/xero-ruby/models/accounting/report_row.rb +13 -7
- data/lib/xero-ruby/models/accounting/report_rows.rb +13 -7
- data/lib/xero-ruby/models/accounting/report_with_row.rb +14 -8
- data/lib/xero-ruby/models/accounting/report_with_rows.rb +13 -7
- data/lib/xero-ruby/models/accounting/reports.rb +13 -7
- data/lib/xero-ruby/models/accounting/request_empty.rb +13 -7
- data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +13 -7
- data/lib/xero-ruby/models/accounting/schedule.rb +13 -7
- data/lib/xero-ruby/models/accounting/setup.rb +13 -7
- data/lib/xero-ruby/models/accounting/tax_component.rb +13 -7
- data/lib/xero-ruby/models/accounting/tax_rate.rb +13 -7
- data/lib/xero-ruby/models/accounting/tax_rates.rb +13 -7
- data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +13 -7
- data/lib/xero-ruby/models/accounting/tracking_categories.rb +13 -7
- data/lib/xero-ruby/models/accounting/tracking_category.rb +13 -7
- data/lib/xero-ruby/models/accounting/tracking_option.rb +13 -7
- data/lib/xero-ruby/models/accounting/tracking_options.rb +13 -7
- data/lib/xero-ruby/models/accounting/user.rb +13 -7
- data/lib/xero-ruby/models/accounting/users.rb +13 -7
- data/lib/xero-ruby/models/accounting/validation_error.rb +13 -7
- data/lib/xero-ruby/models/assets/asset.rb +13 -7
- data/lib/xero-ruby/models/assets/asset_type.rb +13 -7
- data/lib/xero-ruby/models/assets/assets.rb +13 -7
- data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +13 -7
- data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +13 -7
- data/lib/xero-ruby/models/assets/error.rb +13 -7
- data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +13 -7
- data/lib/xero-ruby/models/assets/pagination.rb +13 -7
- data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +13 -7
- data/lib/xero-ruby/models/assets/setting.rb +13 -7
- data/lib/xero-ruby/models/files/association.rb +13 -7
- data/lib/xero-ruby/models/files/file_object.rb +13 -7
- data/lib/xero-ruby/models/files/files.rb +13 -7
- data/lib/xero-ruby/models/files/folder.rb +13 -7
- data/lib/xero-ruby/models/files/folders.rb +13 -7
- data/lib/xero-ruby/models/files/upload_object.rb +13 -7
- data/lib/xero-ruby/models/files/user.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/account.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/api_exception.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/bank_account.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/deduction_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/deduction_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/employee.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/employees.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/home_address.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_application.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_applications.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_lines.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_period.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/leave_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/opening_balances.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/pay_item.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/pay_items.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/pay_run.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/pay_runs.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/pay_template.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payslip.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payslip_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/payslips.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/settings.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/settings_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_fund.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_funds.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/super_membership.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/tax_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/timesheet.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/timesheets.rb +13 -7
- data/lib/xero-ruby/models/payroll_au/validation_error.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/account.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/accounts.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/address.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/bank_account.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/benefit.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/deduction.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/deductions.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employees.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employment.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/employment_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_period.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/leave_types.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pagination.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/payment_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/payment_method.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/problem.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/settings.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/superannuations.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/tax_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/timesheets.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +13 -7
- data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/account.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/accounts.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/address.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/bank_account.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/benefit.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/benefits.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/deduction.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/deductions.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +16 -9
- data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employees.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employment.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/employment_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_period.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_type.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/leave_types.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pagination.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payment_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payment_method.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payslip.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/payslips.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/problem.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/settings.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/tax_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/timesheets.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +13 -7
- data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +13 -7
- data/lib/xero-ruby/models/projects/amount.rb +13 -7
- data/lib/xero-ruby/models/projects/error.rb +13 -7
- data/lib/xero-ruby/models/projects/pagination.rb +13 -7
- data/lib/xero-ruby/models/projects/project.rb +13 -7
- data/lib/xero-ruby/models/projects/project_create_or_update.rb +13 -7
- data/lib/xero-ruby/models/projects/project_patch.rb +13 -7
- data/lib/xero-ruby/models/projects/project_user.rb +13 -7
- data/lib/xero-ruby/models/projects/project_users.rb +13 -7
- data/lib/xero-ruby/models/projects/projects.rb +13 -7
- data/lib/xero-ruby/models/projects/task.rb +13 -7
- data/lib/xero-ruby/models/projects/task_create_or_update.rb +13 -7
- data/lib/xero-ruby/models/projects/tasks.rb +13 -7
- data/lib/xero-ruby/models/projects/time_entries.rb +13 -7
- data/lib/xero-ruby/models/projects/time_entry.rb +13 -7
- data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +13 -7
- data/lib/xero-ruby/version.rb +2 -2
- data/spec/helper_methods_spec.rb +28 -0
- metadata +9 -5
|
@@ -489,7 +489,7 @@ module XeroRuby::Accounting
|
|
|
489
489
|
value = self.send(attr)
|
|
490
490
|
next if value.nil?
|
|
491
491
|
key = downcase ? attr : param
|
|
492
|
-
hash[key] = _to_hash(value)
|
|
492
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
493
493
|
end
|
|
494
494
|
hash
|
|
495
495
|
end
|
|
@@ -503,15 +503,17 @@ module XeroRuby::Accounting
|
|
|
503
503
|
# For object, use to_hash. Otherwise, just return the value
|
|
504
504
|
# @param [Object] value Any valid value
|
|
505
505
|
# @return [Hash] Returns the value in the form of hash
|
|
506
|
-
def _to_hash(value)
|
|
506
|
+
def _to_hash(value, downcase: false)
|
|
507
507
|
if value.is_a?(Array)
|
|
508
|
-
value.
|
|
508
|
+
value.map do |v|
|
|
509
|
+
v.to_hash(downcase: downcase)
|
|
510
|
+
end
|
|
509
511
|
elsif value.is_a?(Hash)
|
|
510
512
|
{}.tap do |hash|
|
|
511
|
-
value.
|
|
513
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
512
514
|
end
|
|
513
515
|
elsif value.respond_to? :to_hash
|
|
514
|
-
value.to_hash
|
|
516
|
+
value.to_hash(downcase: downcase)
|
|
515
517
|
else
|
|
516
518
|
value
|
|
517
519
|
end
|
|
@@ -519,8 +521,12 @@ module XeroRuby::Accounting
|
|
|
519
521
|
|
|
520
522
|
def parse_date(datestring)
|
|
521
523
|
if datestring.include?('Date')
|
|
522
|
-
|
|
523
|
-
|
|
524
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
525
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
526
|
+
date = (date.to_i / 1000)
|
|
527
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
528
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
529
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
524
530
|
else # handle date 'types' for small subset of payroll API's
|
|
525
531
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
526
532
|
end
|
|
@@ -178,7 +178,7 @@ module XeroRuby::Accounting
|
|
|
178
178
|
value = self.send(attr)
|
|
179
179
|
next if value.nil?
|
|
180
180
|
key = downcase ? attr : param
|
|
181
|
-
hash[key] = _to_hash(value)
|
|
181
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
182
182
|
end
|
|
183
183
|
hash
|
|
184
184
|
end
|
|
@@ -192,15 +192,17 @@ module XeroRuby::Accounting
|
|
|
192
192
|
# For object, use to_hash. Otherwise, just return the value
|
|
193
193
|
# @param [Object] value Any valid value
|
|
194
194
|
# @return [Hash] Returns the value in the form of hash
|
|
195
|
-
def _to_hash(value)
|
|
195
|
+
def _to_hash(value, downcase: false)
|
|
196
196
|
if value.is_a?(Array)
|
|
197
|
-
value.
|
|
197
|
+
value.map do |v|
|
|
198
|
+
v.to_hash(downcase: downcase)
|
|
199
|
+
end
|
|
198
200
|
elsif value.is_a?(Hash)
|
|
199
201
|
{}.tap do |hash|
|
|
200
|
-
value.
|
|
202
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
201
203
|
end
|
|
202
204
|
elsif value.respond_to? :to_hash
|
|
203
|
-
value.to_hash
|
|
205
|
+
value.to_hash(downcase: downcase)
|
|
204
206
|
else
|
|
205
207
|
value
|
|
206
208
|
end
|
|
@@ -208,8 +210,12 @@ module XeroRuby::Accounting
|
|
|
208
210
|
|
|
209
211
|
def parse_date(datestring)
|
|
210
212
|
if datestring.include?('Date')
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
214
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
215
|
+
date = (date.to_i / 1000)
|
|
216
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
217
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
218
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
else # handle date 'types' for small subset of payroll API's
|
|
214
220
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
215
221
|
end
|
|
@@ -186,7 +186,7 @@ module XeroRuby::Accounting
|
|
|
186
186
|
value = self.send(attr)
|
|
187
187
|
next if value.nil?
|
|
188
188
|
key = downcase ? attr : param
|
|
189
|
-
hash[key] = _to_hash(value)
|
|
189
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
190
190
|
end
|
|
191
191
|
hash
|
|
192
192
|
end
|
|
@@ -200,15 +200,17 @@ module XeroRuby::Accounting
|
|
|
200
200
|
# For object, use to_hash. Otherwise, just return the value
|
|
201
201
|
# @param [Object] value Any valid value
|
|
202
202
|
# @return [Hash] Returns the value in the form of hash
|
|
203
|
-
def _to_hash(value)
|
|
203
|
+
def _to_hash(value, downcase: false)
|
|
204
204
|
if value.is_a?(Array)
|
|
205
|
-
value.
|
|
205
|
+
value.map do |v|
|
|
206
|
+
v.to_hash(downcase: downcase)
|
|
207
|
+
end
|
|
206
208
|
elsif value.is_a?(Hash)
|
|
207
209
|
{}.tap do |hash|
|
|
208
|
-
value.
|
|
210
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
209
211
|
end
|
|
210
212
|
elsif value.respond_to? :to_hash
|
|
211
|
-
value.to_hash
|
|
213
|
+
value.to_hash(downcase: downcase)
|
|
212
214
|
else
|
|
213
215
|
value
|
|
214
216
|
end
|
|
@@ -216,8 +218,12 @@ module XeroRuby::Accounting
|
|
|
216
218
|
|
|
217
219
|
def parse_date(datestring)
|
|
218
220
|
if datestring.include?('Date')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
222
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
223
|
+
date = (date.to_i / 1000)
|
|
224
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
225
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
226
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
221
227
|
else # handle date 'types' for small subset of payroll API's
|
|
222
228
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
end
|
|
@@ -186,7 +186,7 @@ module XeroRuby::Accounting
|
|
|
186
186
|
value = self.send(attr)
|
|
187
187
|
next if value.nil?
|
|
188
188
|
key = downcase ? attr : param
|
|
189
|
-
hash[key] = _to_hash(value)
|
|
189
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
190
190
|
end
|
|
191
191
|
hash
|
|
192
192
|
end
|
|
@@ -200,15 +200,17 @@ module XeroRuby::Accounting
|
|
|
200
200
|
# For object, use to_hash. Otherwise, just return the value
|
|
201
201
|
# @param [Object] value Any valid value
|
|
202
202
|
# @return [Hash] Returns the value in the form of hash
|
|
203
|
-
def _to_hash(value)
|
|
203
|
+
def _to_hash(value, downcase: false)
|
|
204
204
|
if value.is_a?(Array)
|
|
205
|
-
value.
|
|
205
|
+
value.map do |v|
|
|
206
|
+
v.to_hash(downcase: downcase)
|
|
207
|
+
end
|
|
206
208
|
elsif value.is_a?(Hash)
|
|
207
209
|
{}.tap do |hash|
|
|
208
|
-
value.
|
|
210
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
209
211
|
end
|
|
210
212
|
elsif value.respond_to? :to_hash
|
|
211
|
-
value.to_hash
|
|
213
|
+
value.to_hash(downcase: downcase)
|
|
212
214
|
else
|
|
213
215
|
value
|
|
214
216
|
end
|
|
@@ -216,8 +218,12 @@ module XeroRuby::Accounting
|
|
|
216
218
|
|
|
217
219
|
def parse_date(datestring)
|
|
218
220
|
if datestring.include?('Date')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
222
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
223
|
+
date = (date.to_i / 1000)
|
|
224
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
225
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
226
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
221
227
|
else # handle date 'types' for small subset of payroll API's
|
|
222
228
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
end
|
|
@@ -222,7 +222,7 @@ module XeroRuby::Accounting
|
|
|
222
222
|
value = self.send(attr)
|
|
223
223
|
next if value.nil?
|
|
224
224
|
key = downcase ? attr : param
|
|
225
|
-
hash[key] = _to_hash(value)
|
|
225
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
226
226
|
end
|
|
227
227
|
hash
|
|
228
228
|
end
|
|
@@ -236,15 +236,17 @@ module XeroRuby::Accounting
|
|
|
236
236
|
# For object, use to_hash. Otherwise, just return the value
|
|
237
237
|
# @param [Object] value Any valid value
|
|
238
238
|
# @return [Hash] Returns the value in the form of hash
|
|
239
|
-
def _to_hash(value)
|
|
239
|
+
def _to_hash(value, downcase: false)
|
|
240
240
|
if value.is_a?(Array)
|
|
241
|
-
value.
|
|
241
|
+
value.map do |v|
|
|
242
|
+
v.to_hash(downcase: downcase)
|
|
243
|
+
end
|
|
242
244
|
elsif value.is_a?(Hash)
|
|
243
245
|
{}.tap do |hash|
|
|
244
|
-
value.
|
|
246
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
245
247
|
end
|
|
246
248
|
elsif value.respond_to? :to_hash
|
|
247
|
-
value.to_hash
|
|
249
|
+
value.to_hash(downcase: downcase)
|
|
248
250
|
else
|
|
249
251
|
value
|
|
250
252
|
end
|
|
@@ -252,8 +254,12 @@ module XeroRuby::Accounting
|
|
|
252
254
|
|
|
253
255
|
def parse_date(datestring)
|
|
254
256
|
if datestring.include?('Date')
|
|
255
|
-
|
|
256
|
-
|
|
257
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
258
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
259
|
+
date = (date.to_i / 1000)
|
|
260
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
261
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
262
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
257
263
|
else # handle date 'types' for small subset of payroll API's
|
|
258
264
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
259
265
|
end
|
|
@@ -178,7 +178,7 @@ module XeroRuby::Accounting
|
|
|
178
178
|
value = self.send(attr)
|
|
179
179
|
next if value.nil?
|
|
180
180
|
key = downcase ? attr : param
|
|
181
|
-
hash[key] = _to_hash(value)
|
|
181
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
182
182
|
end
|
|
183
183
|
hash
|
|
184
184
|
end
|
|
@@ -192,15 +192,17 @@ module XeroRuby::Accounting
|
|
|
192
192
|
# For object, use to_hash. Otherwise, just return the value
|
|
193
193
|
# @param [Object] value Any valid value
|
|
194
194
|
# @return [Hash] Returns the value in the form of hash
|
|
195
|
-
def _to_hash(value)
|
|
195
|
+
def _to_hash(value, downcase: false)
|
|
196
196
|
if value.is_a?(Array)
|
|
197
|
-
value.
|
|
197
|
+
value.map do |v|
|
|
198
|
+
v.to_hash(downcase: downcase)
|
|
199
|
+
end
|
|
198
200
|
elsif value.is_a?(Hash)
|
|
199
201
|
{}.tap do |hash|
|
|
200
|
-
value.
|
|
202
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
201
203
|
end
|
|
202
204
|
elsif value.respond_to? :to_hash
|
|
203
|
-
value.to_hash
|
|
205
|
+
value.to_hash(downcase: downcase)
|
|
204
206
|
else
|
|
205
207
|
value
|
|
206
208
|
end
|
|
@@ -208,8 +210,12 @@ module XeroRuby::Accounting
|
|
|
208
210
|
|
|
209
211
|
def parse_date(datestring)
|
|
210
212
|
if datestring.include?('Date')
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
214
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
215
|
+
date = (date.to_i / 1000)
|
|
216
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
217
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
218
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
else # handle date 'types' for small subset of payroll API's
|
|
214
220
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
215
221
|
end
|
|
@@ -437,7 +437,7 @@ module XeroRuby::Accounting
|
|
|
437
437
|
value = self.send(attr)
|
|
438
438
|
next if value.nil?
|
|
439
439
|
key = downcase ? attr : param
|
|
440
|
-
hash[key] = _to_hash(value)
|
|
440
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
441
441
|
end
|
|
442
442
|
hash
|
|
443
443
|
end
|
|
@@ -451,15 +451,17 @@ module XeroRuby::Accounting
|
|
|
451
451
|
# For object, use to_hash. Otherwise, just return the value
|
|
452
452
|
# @param [Object] value Any valid value
|
|
453
453
|
# @return [Hash] Returns the value in the form of hash
|
|
454
|
-
def _to_hash(value)
|
|
454
|
+
def _to_hash(value, downcase: false)
|
|
455
455
|
if value.is_a?(Array)
|
|
456
|
-
value.
|
|
456
|
+
value.map do |v|
|
|
457
|
+
v.to_hash(downcase: downcase)
|
|
458
|
+
end
|
|
457
459
|
elsif value.is_a?(Hash)
|
|
458
460
|
{}.tap do |hash|
|
|
459
|
-
value.
|
|
461
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
460
462
|
end
|
|
461
463
|
elsif value.respond_to? :to_hash
|
|
462
|
-
value.to_hash
|
|
464
|
+
value.to_hash(downcase: downcase)
|
|
463
465
|
else
|
|
464
466
|
value
|
|
465
467
|
end
|
|
@@ -467,8 +469,12 @@ module XeroRuby::Accounting
|
|
|
467
469
|
|
|
468
470
|
def parse_date(datestring)
|
|
469
471
|
if datestring.include?('Date')
|
|
470
|
-
|
|
471
|
-
|
|
472
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
473
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
474
|
+
date = (date.to_i / 1000)
|
|
475
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
476
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
477
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
472
478
|
else # handle date 'types' for small subset of payroll API's
|
|
473
479
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
474
480
|
end
|
|
@@ -438,7 +438,7 @@ module XeroRuby::Accounting
|
|
|
438
438
|
value = self.send(attr)
|
|
439
439
|
next if value.nil?
|
|
440
440
|
key = downcase ? attr : param
|
|
441
|
-
hash[key] = _to_hash(value)
|
|
441
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
442
442
|
end
|
|
443
443
|
hash
|
|
444
444
|
end
|
|
@@ -452,15 +452,17 @@ module XeroRuby::Accounting
|
|
|
452
452
|
# For object, use to_hash. Otherwise, just return the value
|
|
453
453
|
# @param [Object] value Any valid value
|
|
454
454
|
# @return [Hash] Returns the value in the form of hash
|
|
455
|
-
def _to_hash(value)
|
|
455
|
+
def _to_hash(value, downcase: false)
|
|
456
456
|
if value.is_a?(Array)
|
|
457
|
-
value.
|
|
457
|
+
value.map do |v|
|
|
458
|
+
v.to_hash(downcase: downcase)
|
|
459
|
+
end
|
|
458
460
|
elsif value.is_a?(Hash)
|
|
459
461
|
{}.tap do |hash|
|
|
460
|
-
value.
|
|
462
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
461
463
|
end
|
|
462
464
|
elsif value.respond_to? :to_hash
|
|
463
|
-
value.to_hash
|
|
465
|
+
value.to_hash(downcase: downcase)
|
|
464
466
|
else
|
|
465
467
|
value
|
|
466
468
|
end
|
|
@@ -468,8 +470,12 @@ module XeroRuby::Accounting
|
|
|
468
470
|
|
|
469
471
|
def parse_date(datestring)
|
|
470
472
|
if datestring.include?('Date')
|
|
471
|
-
|
|
472
|
-
|
|
473
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
474
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
475
|
+
date = (date.to_i / 1000)
|
|
476
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
477
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
478
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
473
479
|
else # handle date 'types' for small subset of payroll API's
|
|
474
480
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
475
481
|
end
|
|
@@ -263,7 +263,7 @@ module XeroRuby::Accounting
|
|
|
263
263
|
value = self.send(attr)
|
|
264
264
|
next if value.nil?
|
|
265
265
|
key = downcase ? attr : param
|
|
266
|
-
hash[key] = _to_hash(value)
|
|
266
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
267
267
|
end
|
|
268
268
|
hash
|
|
269
269
|
end
|
|
@@ -277,15 +277,17 @@ module XeroRuby::Accounting
|
|
|
277
277
|
# For object, use to_hash. Otherwise, just return the value
|
|
278
278
|
# @param [Object] value Any valid value
|
|
279
279
|
# @return [Hash] Returns the value in the form of hash
|
|
280
|
-
def _to_hash(value)
|
|
280
|
+
def _to_hash(value, downcase: false)
|
|
281
281
|
if value.is_a?(Array)
|
|
282
|
-
value.
|
|
282
|
+
value.map do |v|
|
|
283
|
+
v.to_hash(downcase: downcase)
|
|
284
|
+
end
|
|
283
285
|
elsif value.is_a?(Hash)
|
|
284
286
|
{}.tap do |hash|
|
|
285
|
-
value.
|
|
287
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
286
288
|
end
|
|
287
289
|
elsif value.respond_to? :to_hash
|
|
288
|
-
value.to_hash
|
|
290
|
+
value.to_hash(downcase: downcase)
|
|
289
291
|
else
|
|
290
292
|
value
|
|
291
293
|
end
|
|
@@ -293,8 +295,12 @@ module XeroRuby::Accounting
|
|
|
293
295
|
|
|
294
296
|
def parse_date(datestring)
|
|
295
297
|
if datestring.include?('Date')
|
|
296
|
-
|
|
297
|
-
|
|
298
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
299
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
300
|
+
date = (date.to_i / 1000)
|
|
301
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
302
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
303
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
298
304
|
else # handle date 'types' for small subset of payroll API's
|
|
299
305
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
300
306
|
end
|
|
@@ -178,7 +178,7 @@ module XeroRuby::Accounting
|
|
|
178
178
|
value = self.send(attr)
|
|
179
179
|
next if value.nil?
|
|
180
180
|
key = downcase ? attr : param
|
|
181
|
-
hash[key] = _to_hash(value)
|
|
181
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
182
182
|
end
|
|
183
183
|
hash
|
|
184
184
|
end
|
|
@@ -192,15 +192,17 @@ module XeroRuby::Accounting
|
|
|
192
192
|
# For object, use to_hash. Otherwise, just return the value
|
|
193
193
|
# @param [Object] value Any valid value
|
|
194
194
|
# @return [Hash] Returns the value in the form of hash
|
|
195
|
-
def _to_hash(value)
|
|
195
|
+
def _to_hash(value, downcase: false)
|
|
196
196
|
if value.is_a?(Array)
|
|
197
|
-
value.
|
|
197
|
+
value.map do |v|
|
|
198
|
+
v.to_hash(downcase: downcase)
|
|
199
|
+
end
|
|
198
200
|
elsif value.is_a?(Hash)
|
|
199
201
|
{}.tap do |hash|
|
|
200
|
-
value.
|
|
202
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
201
203
|
end
|
|
202
204
|
elsif value.respond_to? :to_hash
|
|
203
|
-
value.to_hash
|
|
205
|
+
value.to_hash(downcase: downcase)
|
|
204
206
|
else
|
|
205
207
|
value
|
|
206
208
|
end
|
|
@@ -208,8 +210,12 @@ module XeroRuby::Accounting
|
|
|
208
210
|
|
|
209
211
|
def parse_date(datestring)
|
|
210
212
|
if datestring.include?('Date')
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
214
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
215
|
+
date = (date.to_i / 1000)
|
|
216
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
217
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
218
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
else # handle date 'types' for small subset of payroll API's
|
|
214
220
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
215
221
|
end
|