xero-ruby 2.9.1 → 3.1.0
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 +133 -97
- data/lib/xero-ruby.rb +3 -0
- data/lib/xero-ruby/api/accounting_api.rb +306 -147
- data/lib/xero-ruby/api_client.rb +57 -8
- data/lib/xero-ruby/models/accounting/account.rb +11 -7
- data/lib/xero-ruby/models/accounting/accounts.rb +11 -7
- data/lib/xero-ruby/models/accounting/accounts_payable.rb +11 -7
- data/lib/xero-ruby/models/accounting/accounts_receivable.rb +11 -7
- data/lib/xero-ruby/models/accounting/action.rb +11 -7
- data/lib/xero-ruby/models/accounting/actions.rb +11 -7
- data/lib/xero-ruby/models/accounting/address.rb +11 -7
- data/lib/xero-ruby/models/accounting/address_for_organisation.rb +11 -7
- data/lib/xero-ruby/models/accounting/allocation.rb +11 -7
- data/lib/xero-ruby/models/accounting/allocations.rb +11 -7
- data/lib/xero-ruby/models/accounting/attachment.rb +11 -7
- data/lib/xero-ruby/models/accounting/attachments.rb +11 -7
- data/lib/xero-ruby/models/accounting/balance_details.rb +11 -7
- data/lib/xero-ruby/models/accounting/balances.rb +11 -7
- data/lib/xero-ruby/models/accounting/bank_transaction.rb +11 -7
- data/lib/xero-ruby/models/accounting/bank_transactions.rb +11 -7
- data/lib/xero-ruby/models/accounting/bank_transfer.rb +11 -7
- data/lib/xero-ruby/models/accounting/bank_transfers.rb +11 -7
- data/lib/xero-ruby/models/accounting/batch_payment.rb +11 -7
- data/lib/xero-ruby/models/accounting/batch_payment_details.rb +11 -7
- data/lib/xero-ruby/models/accounting/batch_payments.rb +11 -7
- data/lib/xero-ruby/models/accounting/bill.rb +11 -7
- data/lib/xero-ruby/models/accounting/branding_theme.rb +11 -7
- data/lib/xero-ruby/models/accounting/branding_themes.rb +11 -7
- data/lib/xero-ruby/models/accounting/budget.rb +321 -0
- data/lib/xero-ruby/models/accounting/budget_lines.rb +265 -0
- data/lib/xero-ruby/models/accounting/budgets.rb +222 -0
- data/lib/xero-ruby/models/accounting/cis_org_setting.rb +11 -7
- data/lib/xero-ruby/models/accounting/cis_org_settings.rb +11 -7
- data/lib/xero-ruby/models/accounting/cis_setting.rb +11 -7
- data/lib/xero-ruby/models/accounting/cis_settings.rb +11 -7
- data/lib/xero-ruby/models/accounting/contact.rb +11 -7
- data/lib/xero-ruby/models/accounting/contact_group.rb +11 -7
- data/lib/xero-ruby/models/accounting/contact_groups.rb +11 -7
- data/lib/xero-ruby/models/accounting/contact_person.rb +11 -7
- data/lib/xero-ruby/models/accounting/contacts.rb +11 -7
- data/lib/xero-ruby/models/accounting/conversion_balances.rb +11 -7
- data/lib/xero-ruby/models/accounting/conversion_date.rb +11 -7
- data/lib/xero-ruby/models/accounting/credit_note.rb +11 -7
- data/lib/xero-ruby/models/accounting/credit_notes.rb +11 -7
- data/lib/xero-ruby/models/accounting/currencies.rb +11 -7
- data/lib/xero-ruby/models/accounting/currency.rb +11 -7
- data/lib/xero-ruby/models/accounting/element.rb +11 -7
- data/lib/xero-ruby/models/accounting/employee.rb +11 -7
- data/lib/xero-ruby/models/accounting/employees.rb +11 -7
- data/lib/xero-ruby/models/accounting/error.rb +11 -7
- data/lib/xero-ruby/models/accounting/expense_claim.rb +11 -7
- data/lib/xero-ruby/models/accounting/expense_claims.rb +11 -7
- data/lib/xero-ruby/models/accounting/external_link.rb +11 -7
- data/lib/xero-ruby/models/accounting/history_record.rb +11 -7
- data/lib/xero-ruby/models/accounting/history_records.rb +11 -7
- data/lib/xero-ruby/models/accounting/import_summary.rb +11 -7
- data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +11 -7
- data/lib/xero-ruby/models/accounting/import_summary_object.rb +11 -7
- data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +11 -7
- data/lib/xero-ruby/models/accounting/invoice.rb +11 -7
- data/lib/xero-ruby/models/accounting/invoice_reminder.rb +11 -7
- data/lib/xero-ruby/models/accounting/invoice_reminders.rb +11 -7
- data/lib/xero-ruby/models/accounting/invoices.rb +11 -7
- data/lib/xero-ruby/models/accounting/item.rb +11 -7
- data/lib/xero-ruby/models/accounting/items.rb +11 -7
- data/lib/xero-ruby/models/accounting/journal.rb +11 -7
- data/lib/xero-ruby/models/accounting/journal_line.rb +11 -7
- data/lib/xero-ruby/models/accounting/journals.rb +11 -7
- data/lib/xero-ruby/models/accounting/line_item.rb +22 -8
- data/lib/xero-ruby/models/accounting/line_item_tracking.rb +11 -7
- data/lib/xero-ruby/models/accounting/linked_transaction.rb +11 -7
- data/lib/xero-ruby/models/accounting/linked_transactions.rb +11 -7
- data/lib/xero-ruby/models/accounting/manual_journal.rb +11 -7
- data/lib/xero-ruby/models/accounting/manual_journal_line.rb +11 -7
- data/lib/xero-ruby/models/accounting/manual_journals.rb +11 -7
- data/lib/xero-ruby/models/accounting/online_invoice.rb +11 -7
- data/lib/xero-ruby/models/accounting/online_invoices.rb +11 -7
- data/lib/xero-ruby/models/accounting/organisation.rb +11 -7
- data/lib/xero-ruby/models/accounting/organisations.rb +11 -7
- data/lib/xero-ruby/models/accounting/overpayment.rb +11 -7
- data/lib/xero-ruby/models/accounting/overpayments.rb +11 -7
- data/lib/xero-ruby/models/accounting/payment.rb +11 -7
- data/lib/xero-ruby/models/accounting/payment_delete.rb +11 -7
- data/lib/xero-ruby/models/accounting/payment_service.rb +11 -7
- data/lib/xero-ruby/models/accounting/payment_services.rb +11 -7
- data/lib/xero-ruby/models/accounting/payment_term.rb +11 -7
- data/lib/xero-ruby/models/accounting/payments.rb +11 -7
- data/lib/xero-ruby/models/accounting/phone.rb +11 -7
- data/lib/xero-ruby/models/accounting/prepayment.rb +24 -8
- data/lib/xero-ruby/models/accounting/prepayments.rb +11 -7
- data/lib/xero-ruby/models/accounting/purchase.rb +11 -7
- data/lib/xero-ruby/models/accounting/purchase_order.rb +11 -7
- data/lib/xero-ruby/models/accounting/purchase_orders.rb +11 -7
- data/lib/xero-ruby/models/accounting/quote.rb +11 -7
- data/lib/xero-ruby/models/accounting/quotes.rb +11 -7
- data/lib/xero-ruby/models/accounting/receipt.rb +11 -7
- data/lib/xero-ruby/models/accounting/receipts.rb +11 -7
- data/lib/xero-ruby/models/accounting/repeating_invoice.rb +11 -7
- data/lib/xero-ruby/models/accounting/repeating_invoices.rb +11 -7
- data/lib/xero-ruby/models/accounting/report.rb +12 -18
- data/lib/xero-ruby/models/accounting/report_attribute.rb +11 -7
- data/lib/xero-ruby/models/accounting/report_cell.rb +11 -7
- data/lib/xero-ruby/models/accounting/report_fields.rb +11 -7
- data/lib/xero-ruby/models/accounting/report_row.rb +11 -7
- data/lib/xero-ruby/models/accounting/report_rows.rb +11 -7
- data/lib/xero-ruby/models/accounting/report_with_row.rb +12 -8
- data/lib/xero-ruby/models/accounting/report_with_rows.rb +11 -7
- data/lib/xero-ruby/models/accounting/reports.rb +11 -7
- data/lib/xero-ruby/models/accounting/request_empty.rb +11 -7
- data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +11 -7
- data/lib/xero-ruby/models/accounting/schedule.rb +11 -7
- data/lib/xero-ruby/models/accounting/setup.rb +11 -7
- data/lib/xero-ruby/models/accounting/tax_component.rb +11 -7
- data/lib/xero-ruby/models/accounting/tax_rate.rb +11 -7
- data/lib/xero-ruby/models/accounting/tax_rates.rb +11 -7
- data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +11 -7
- data/lib/xero-ruby/models/accounting/tracking_categories.rb +11 -7
- data/lib/xero-ruby/models/accounting/tracking_category.rb +11 -7
- data/lib/xero-ruby/models/accounting/tracking_option.rb +11 -7
- data/lib/xero-ruby/models/accounting/tracking_options.rb +11 -7
- data/lib/xero-ruby/models/accounting/user.rb +11 -7
- data/lib/xero-ruby/models/accounting/users.rb +11 -7
- data/lib/xero-ruby/models/accounting/validation_error.rb +11 -7
- data/lib/xero-ruby/models/assets/asset.rb +11 -7
- data/lib/xero-ruby/models/assets/asset_type.rb +11 -7
- data/lib/xero-ruby/models/assets/assets.rb +11 -7
- data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +11 -7
- data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +11 -7
- data/lib/xero-ruby/models/assets/error.rb +11 -7
- data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +11 -7
- data/lib/xero-ruby/models/assets/pagination.rb +11 -7
- data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +11 -7
- data/lib/xero-ruby/models/assets/setting.rb +11 -7
- data/lib/xero-ruby/models/files/association.rb +11 -7
- data/lib/xero-ruby/models/files/file_object.rb +11 -7
- data/lib/xero-ruby/models/files/files.rb +11 -7
- data/lib/xero-ruby/models/files/folder.rb +11 -7
- data/lib/xero-ruby/models/files/folders.rb +11 -7
- data/lib/xero-ruby/models/files/upload_object.rb +11 -7
- data/lib/xero-ruby/models/files/user.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/account.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/api_exception.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/bank_account.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/deduction_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/deduction_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/employee.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/employees.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/home_address.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_application.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_applications.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_lines.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_period.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/leave_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/opening_balances.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/pay_item.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/pay_items.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/pay_run.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/pay_runs.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/pay_template.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payslip.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payslip_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/payslips.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/settings.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/settings_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_fund.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_funds.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/super_membership.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/tax_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/timesheet.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/timesheets.rb +11 -7
- data/lib/xero-ruby/models/payroll_au/validation_error.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/account.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/accounts.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/address.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/bank_account.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/benefit.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/deduction.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/deductions.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employees.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employment.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/employment_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_period.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/leave_types.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pagination.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/payment_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/payment_method.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/problem.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/settings.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/superannuations.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/tax_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/timesheets.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +11 -7
- data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/account.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/accounts.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/address.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/bank_account.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/benefit.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/benefits.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/deduction.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/deductions.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employees.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employment.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/employment_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_period.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_type.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/leave_types.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pagination.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payment_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payment_method.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payslip.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/payslips.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/problem.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/settings.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/tax_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/timesheets.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +11 -7
- data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +11 -7
- data/lib/xero-ruby/models/projects/amount.rb +11 -7
- data/lib/xero-ruby/models/projects/error.rb +11 -7
- data/lib/xero-ruby/models/projects/pagination.rb +11 -7
- data/lib/xero-ruby/models/projects/project.rb +11 -7
- data/lib/xero-ruby/models/projects/project_create_or_update.rb +11 -7
- data/lib/xero-ruby/models/projects/project_patch.rb +11 -7
- data/lib/xero-ruby/models/projects/project_user.rb +11 -7
- data/lib/xero-ruby/models/projects/project_users.rb +11 -7
- data/lib/xero-ruby/models/projects/projects.rb +11 -7
- data/lib/xero-ruby/models/projects/task.rb +11 -7
- data/lib/xero-ruby/models/projects/task_create_or_update.rb +11 -7
- data/lib/xero-ruby/models/projects/tasks.rb +11 -7
- data/lib/xero-ruby/models/projects/time_entries.rb +11 -7
- data/lib/xero-ruby/models/projects/time_entry.rb +14 -9
- data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +11 -7
- data/lib/xero-ruby/version.rb +2 -2
- data/spec/api_client_spec.rb +84 -9
- data/spec/helper_methods_spec.rb +28 -0
- metadata +29 -6
@@ -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,10 @@ 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
|
298
302
|
else # handle date 'types' for small subset of payroll API's
|
299
303
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
300
304
|
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,10 @@ 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
|
213
217
|
else # handle date 'types' for small subset of payroll API's
|
214
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
215
219
|
end
|
@@ -226,7 +226,7 @@ module XeroRuby::Accounting
|
|
226
226
|
value = self.send(attr)
|
227
227
|
next if value.nil?
|
228
228
|
key = downcase ? attr : param
|
229
|
-
hash[key] = _to_hash(value)
|
229
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
230
230
|
end
|
231
231
|
hash
|
232
232
|
end
|
@@ -240,15 +240,17 @@ module XeroRuby::Accounting
|
|
240
240
|
# For object, use to_hash. Otherwise, just return the value
|
241
241
|
# @param [Object] value Any valid value
|
242
242
|
# @return [Hash] Returns the value in the form of hash
|
243
|
-
def _to_hash(value)
|
243
|
+
def _to_hash(value, downcase: false)
|
244
244
|
if value.is_a?(Array)
|
245
|
-
value.
|
245
|
+
value.map do |v|
|
246
|
+
v.to_hash(downcase: downcase)
|
247
|
+
end
|
246
248
|
elsif value.is_a?(Hash)
|
247
249
|
{}.tap do |hash|
|
248
|
-
value.
|
250
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
249
251
|
end
|
250
252
|
elsif value.respond_to? :to_hash
|
251
|
-
value.to_hash
|
253
|
+
value.to_hash(downcase: downcase)
|
252
254
|
else
|
253
255
|
value
|
254
256
|
end
|
@@ -256,8 +258,10 @@ module XeroRuby::Accounting
|
|
256
258
|
|
257
259
|
def parse_date(datestring)
|
258
260
|
if datestring.include?('Date')
|
259
|
-
|
260
|
-
|
261
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
262
|
+
original, date, timezone = *date_pattern.match(datestring)
|
263
|
+
date = (date.to_i / 1000)
|
264
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
261
265
|
else # handle date 'types' for small subset of payroll API's
|
262
266
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
263
267
|
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,10 @@ 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
|
213
217
|
else # handle date 'types' for small subset of payroll API's
|
214
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
215
219
|
end
|
@@ -197,7 +197,7 @@ module XeroRuby::Accounting
|
|
197
197
|
value = self.send(attr)
|
198
198
|
next if value.nil?
|
199
199
|
key = downcase ? attr : param
|
200
|
-
hash[key] = _to_hash(value)
|
200
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
201
201
|
end
|
202
202
|
hash
|
203
203
|
end
|
@@ -211,15 +211,17 @@ module XeroRuby::Accounting
|
|
211
211
|
# For object, use to_hash. Otherwise, just return the value
|
212
212
|
# @param [Object] value Any valid value
|
213
213
|
# @return [Hash] Returns the value in the form of hash
|
214
|
-
def _to_hash(value)
|
214
|
+
def _to_hash(value, downcase: false)
|
215
215
|
if value.is_a?(Array)
|
216
|
-
value.
|
216
|
+
value.map do |v|
|
217
|
+
v.to_hash(downcase: downcase)
|
218
|
+
end
|
217
219
|
elsif value.is_a?(Hash)
|
218
220
|
{}.tap do |hash|
|
219
|
-
value.
|
221
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
220
222
|
end
|
221
223
|
elsif value.respond_to? :to_hash
|
222
|
-
value.to_hash
|
224
|
+
value.to_hash(downcase: downcase)
|
223
225
|
else
|
224
226
|
value
|
225
227
|
end
|
@@ -227,8 +229,10 @@ module XeroRuby::Accounting
|
|
227
229
|
|
228
230
|
def parse_date(datestring)
|
229
231
|
if datestring.include?('Date')
|
230
|
-
|
231
|
-
|
232
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
233
|
+
original, date, timezone = *date_pattern.match(datestring)
|
234
|
+
date = (date.to_i / 1000)
|
235
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
232
236
|
else # handle date 'types' for small subset of payroll API's
|
233
237
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
234
238
|
end
|
@@ -187,7 +187,7 @@ module XeroRuby::Accounting
|
|
187
187
|
value = self.send(attr)
|
188
188
|
next if value.nil?
|
189
189
|
key = downcase ? attr : param
|
190
|
-
hash[key] = _to_hash(value)
|
190
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
191
191
|
end
|
192
192
|
hash
|
193
193
|
end
|
@@ -201,15 +201,17 @@ module XeroRuby::Accounting
|
|
201
201
|
# For object, use to_hash. Otherwise, just return the value
|
202
202
|
# @param [Object] value Any valid value
|
203
203
|
# @return [Hash] Returns the value in the form of hash
|
204
|
-
def _to_hash(value)
|
204
|
+
def _to_hash(value, downcase: false)
|
205
205
|
if value.is_a?(Array)
|
206
|
-
value.
|
206
|
+
value.map do |v|
|
207
|
+
v.to_hash(downcase: downcase)
|
208
|
+
end
|
207
209
|
elsif value.is_a?(Hash)
|
208
210
|
{}.tap do |hash|
|
209
|
-
value.
|
211
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
210
212
|
end
|
211
213
|
elsif value.respond_to? :to_hash
|
212
|
-
value.to_hash
|
214
|
+
value.to_hash(downcase: downcase)
|
213
215
|
else
|
214
216
|
value
|
215
217
|
end
|
@@ -217,8 +219,10 @@ module XeroRuby::Accounting
|
|
217
219
|
|
218
220
|
def parse_date(datestring)
|
219
221
|
if datestring.include?('Date')
|
220
|
-
|
221
|
-
|
222
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
223
|
+
original, date, timezone = *date_pattern.match(datestring)
|
224
|
+
date = (date.to_i / 1000)
|
225
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
222
226
|
else # handle date 'types' for small subset of payroll API's
|
223
227
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
224
228
|
end
|
@@ -464,7 +464,7 @@ module XeroRuby::Accounting
|
|
464
464
|
value = self.send(attr)
|
465
465
|
next if value.nil?
|
466
466
|
key = downcase ? attr : param
|
467
|
-
hash[key] = _to_hash(value)
|
467
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
468
468
|
end
|
469
469
|
hash
|
470
470
|
end
|
@@ -478,15 +478,17 @@ module XeroRuby::Accounting
|
|
478
478
|
# For object, use to_hash. Otherwise, just return the value
|
479
479
|
# @param [Object] value Any valid value
|
480
480
|
# @return [Hash] Returns the value in the form of hash
|
481
|
-
def _to_hash(value)
|
481
|
+
def _to_hash(value, downcase: false)
|
482
482
|
if value.is_a?(Array)
|
483
|
-
value.
|
483
|
+
value.map do |v|
|
484
|
+
v.to_hash(downcase: downcase)
|
485
|
+
end
|
484
486
|
elsif value.is_a?(Hash)
|
485
487
|
{}.tap do |hash|
|
486
|
-
value.
|
488
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
487
489
|
end
|
488
490
|
elsif value.respond_to? :to_hash
|
489
|
-
value.to_hash
|
491
|
+
value.to_hash(downcase: downcase)
|
490
492
|
else
|
491
493
|
value
|
492
494
|
end
|
@@ -494,8 +496,10 @@ module XeroRuby::Accounting
|
|
494
496
|
|
495
497
|
def parse_date(datestring)
|
496
498
|
if datestring.include?('Date')
|
497
|
-
|
498
|
-
|
499
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
500
|
+
original, date, timezone = *date_pattern.match(datestring)
|
501
|
+
date = (date.to_i / 1000)
|
502
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
499
503
|
else # handle date 'types' for small subset of payroll API's
|
500
504
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
501
505
|
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,10 @@ 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
|
213
217
|
else # handle date 'types' for small subset of payroll API's
|
214
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
215
219
|
end
|
@@ -295,7 +295,7 @@ module XeroRuby::Accounting
|
|
295
295
|
value = self.send(attr)
|
296
296
|
next if value.nil?
|
297
297
|
key = downcase ? attr : param
|
298
|
-
hash[key] = _to_hash(value)
|
298
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
299
299
|
end
|
300
300
|
hash
|
301
301
|
end
|
@@ -309,15 +309,17 @@ module XeroRuby::Accounting
|
|
309
309
|
# For object, use to_hash. Otherwise, just return the value
|
310
310
|
# @param [Object] value Any valid value
|
311
311
|
# @return [Hash] Returns the value in the form of hash
|
312
|
-
def _to_hash(value)
|
312
|
+
def _to_hash(value, downcase: false)
|
313
313
|
if value.is_a?(Array)
|
314
|
-
value.
|
314
|
+
value.map do |v|
|
315
|
+
v.to_hash(downcase: downcase)
|
316
|
+
end
|
315
317
|
elsif value.is_a?(Hash)
|
316
318
|
{}.tap do |hash|
|
317
|
-
value.
|
319
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
318
320
|
end
|
319
321
|
elsif value.respond_to? :to_hash
|
320
|
-
value.to_hash
|
322
|
+
value.to_hash(downcase: downcase)
|
321
323
|
else
|
322
324
|
value
|
323
325
|
end
|
@@ -325,8 +327,10 @@ module XeroRuby::Accounting
|
|
325
327
|
|
326
328
|
def parse_date(datestring)
|
327
329
|
if datestring.include?('Date')
|
328
|
-
|
329
|
-
|
330
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
331
|
+
original, date, timezone = *date_pattern.match(datestring)
|
332
|
+
date = (date.to_i / 1000)
|
333
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
330
334
|
else # handle date 'types' for small subset of payroll API's
|
331
335
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
332
336
|
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,10 @@ 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
|
213
217
|
else # handle date 'types' for small subset of payroll API's
|
214
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
215
219
|
end
|
@@ -450,7 +450,7 @@ module XeroRuby::Accounting
|
|
450
450
|
value = self.send(attr)
|
451
451
|
next if value.nil?
|
452
452
|
key = downcase ? attr : param
|
453
|
-
hash[key] = _to_hash(value)
|
453
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
454
454
|
end
|
455
455
|
hash
|
456
456
|
end
|
@@ -464,15 +464,17 @@ module XeroRuby::Accounting
|
|
464
464
|
# For object, use to_hash. Otherwise, just return the value
|
465
465
|
# @param [Object] value Any valid value
|
466
466
|
# @return [Hash] Returns the value in the form of hash
|
467
|
-
def _to_hash(value)
|
467
|
+
def _to_hash(value, downcase: false)
|
468
468
|
if value.is_a?(Array)
|
469
|
-
value.
|
469
|
+
value.map do |v|
|
470
|
+
v.to_hash(downcase: downcase)
|
471
|
+
end
|
470
472
|
elsif value.is_a?(Hash)
|
471
473
|
{}.tap do |hash|
|
472
|
-
value.
|
474
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
473
475
|
end
|
474
476
|
elsif value.respond_to? :to_hash
|
475
|
-
value.to_hash
|
477
|
+
value.to_hash(downcase: downcase)
|
476
478
|
else
|
477
479
|
value
|
478
480
|
end
|
@@ -480,8 +482,10 @@ module XeroRuby::Accounting
|
|
480
482
|
|
481
483
|
def parse_date(datestring)
|
482
484
|
if datestring.include?('Date')
|
483
|
-
|
484
|
-
|
485
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
486
|
+
original, date, timezone = *date_pattern.match(datestring)
|
487
|
+
date = (date.to_i / 1000)
|
488
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
485
489
|
else # handle date 'types' for small subset of payroll API's
|
486
490
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
487
491
|
end
|