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
|
@@ -248,7 +248,7 @@ module XeroRuby::Accounting
|
|
|
248
248
|
value = self.send(attr)
|
|
249
249
|
next if value.nil?
|
|
250
250
|
key = downcase ? attr : param
|
|
251
|
-
hash[key] = _to_hash(value)
|
|
251
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
252
252
|
end
|
|
253
253
|
hash
|
|
254
254
|
end
|
|
@@ -262,15 +262,17 @@ module XeroRuby::Accounting
|
|
|
262
262
|
# For object, use to_hash. Otherwise, just return the value
|
|
263
263
|
# @param [Object] value Any valid value
|
|
264
264
|
# @return [Hash] Returns the value in the form of hash
|
|
265
|
-
def _to_hash(value)
|
|
265
|
+
def _to_hash(value, downcase: false)
|
|
266
266
|
if value.is_a?(Array)
|
|
267
|
-
value.
|
|
267
|
+
value.map do |v|
|
|
268
|
+
v.to_hash(downcase: downcase)
|
|
269
|
+
end
|
|
268
270
|
elsif value.is_a?(Hash)
|
|
269
271
|
{}.tap do |hash|
|
|
270
|
-
value.
|
|
272
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
271
273
|
end
|
|
272
274
|
elsif value.respond_to? :to_hash
|
|
273
|
-
value.to_hash
|
|
275
|
+
value.to_hash(downcase: downcase)
|
|
274
276
|
else
|
|
275
277
|
value
|
|
276
278
|
end
|
|
@@ -278,8 +280,12 @@ module XeroRuby::Accounting
|
|
|
278
280
|
|
|
279
281
|
def parse_date(datestring)
|
|
280
282
|
if datestring.include?('Date')
|
|
281
|
-
|
|
282
|
-
|
|
283
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
284
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
285
|
+
date = (date.to_i / 1000)
|
|
286
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
287
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
288
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
283
289
|
else # handle date 'types' for small subset of payroll API's
|
|
284
290
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
285
291
|
end
|
|
@@ -316,7 +316,7 @@ module XeroRuby::Accounting
|
|
|
316
316
|
value = self.send(attr)
|
|
317
317
|
next if value.nil?
|
|
318
318
|
key = downcase ? attr : param
|
|
319
|
-
hash[key] = _to_hash(value)
|
|
319
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
320
320
|
end
|
|
321
321
|
hash
|
|
322
322
|
end
|
|
@@ -330,15 +330,17 @@ module XeroRuby::Accounting
|
|
|
330
330
|
# For object, use to_hash. Otherwise, just return the value
|
|
331
331
|
# @param [Object] value Any valid value
|
|
332
332
|
# @return [Hash] Returns the value in the form of hash
|
|
333
|
-
def _to_hash(value)
|
|
333
|
+
def _to_hash(value, downcase: false)
|
|
334
334
|
if value.is_a?(Array)
|
|
335
|
-
value.
|
|
335
|
+
value.map do |v|
|
|
336
|
+
v.to_hash(downcase: downcase)
|
|
337
|
+
end
|
|
336
338
|
elsif value.is_a?(Hash)
|
|
337
339
|
{}.tap do |hash|
|
|
338
|
-
value.
|
|
340
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
339
341
|
end
|
|
340
342
|
elsif value.respond_to? :to_hash
|
|
341
|
-
value.to_hash
|
|
343
|
+
value.to_hash(downcase: downcase)
|
|
342
344
|
else
|
|
343
345
|
value
|
|
344
346
|
end
|
|
@@ -346,8 +348,12 @@ module XeroRuby::Accounting
|
|
|
346
348
|
|
|
347
349
|
def parse_date(datestring)
|
|
348
350
|
if datestring.include?('Date')
|
|
349
|
-
|
|
350
|
-
|
|
351
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
352
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
353
|
+
date = (date.to_i / 1000)
|
|
354
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
355
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
356
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
351
357
|
else # handle date 'types' for small subset of payroll API's
|
|
352
358
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
353
359
|
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
|
|
@@ -208,7 +208,7 @@ module XeroRuby::Accounting
|
|
|
208
208
|
value = self.send(attr)
|
|
209
209
|
next if value.nil?
|
|
210
210
|
key = downcase ? attr : param
|
|
211
|
-
hash[key] = _to_hash(value)
|
|
211
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
212
212
|
end
|
|
213
213
|
hash
|
|
214
214
|
end
|
|
@@ -222,15 +222,17 @@ module XeroRuby::Accounting
|
|
|
222
222
|
# For object, use to_hash. Otherwise, just return the value
|
|
223
223
|
# @param [Object] value Any valid value
|
|
224
224
|
# @return [Hash] Returns the value in the form of hash
|
|
225
|
-
def _to_hash(value)
|
|
225
|
+
def _to_hash(value, downcase: false)
|
|
226
226
|
if value.is_a?(Array)
|
|
227
|
-
value.
|
|
227
|
+
value.map do |v|
|
|
228
|
+
v.to_hash(downcase: downcase)
|
|
229
|
+
end
|
|
228
230
|
elsif value.is_a?(Hash)
|
|
229
231
|
{}.tap do |hash|
|
|
230
|
-
value.
|
|
232
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
231
233
|
end
|
|
232
234
|
elsif value.respond_to? :to_hash
|
|
233
|
-
value.to_hash
|
|
235
|
+
value.to_hash(downcase: downcase)
|
|
234
236
|
else
|
|
235
237
|
value
|
|
236
238
|
end
|
|
@@ -238,8 +240,12 @@ module XeroRuby::Accounting
|
|
|
238
240
|
|
|
239
241
|
def parse_date(datestring)
|
|
240
242
|
if datestring.include?('Date')
|
|
241
|
-
|
|
242
|
-
|
|
243
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
244
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
245
|
+
date = (date.to_i / 1000)
|
|
246
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
247
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
248
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
243
249
|
else # handle date 'types' for small subset of payroll API's
|
|
244
250
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
245
251
|
end
|
|
@@ -329,7 +329,7 @@ module XeroRuby::Accounting
|
|
|
329
329
|
value = self.send(attr)
|
|
330
330
|
next if value.nil?
|
|
331
331
|
key = downcase ? attr : param
|
|
332
|
-
hash[key] = _to_hash(value)
|
|
332
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
333
333
|
end
|
|
334
334
|
hash
|
|
335
335
|
end
|
|
@@ -343,15 +343,17 @@ module XeroRuby::Accounting
|
|
|
343
343
|
# For object, use to_hash. Otherwise, just return the value
|
|
344
344
|
# @param [Object] value Any valid value
|
|
345
345
|
# @return [Hash] Returns the value in the form of hash
|
|
346
|
-
def _to_hash(value)
|
|
346
|
+
def _to_hash(value, downcase: false)
|
|
347
347
|
if value.is_a?(Array)
|
|
348
|
-
value.
|
|
348
|
+
value.map do |v|
|
|
349
|
+
v.to_hash(downcase: downcase)
|
|
350
|
+
end
|
|
349
351
|
elsif value.is_a?(Hash)
|
|
350
352
|
{}.tap do |hash|
|
|
351
|
-
value.
|
|
353
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
352
354
|
end
|
|
353
355
|
elsif value.respond_to? :to_hash
|
|
354
|
-
value.to_hash
|
|
356
|
+
value.to_hash(downcase: downcase)
|
|
355
357
|
else
|
|
356
358
|
value
|
|
357
359
|
end
|
|
@@ -359,8 +361,12 @@ module XeroRuby::Accounting
|
|
|
359
361
|
|
|
360
362
|
def parse_date(datestring)
|
|
361
363
|
if datestring.include?('Date')
|
|
362
|
-
|
|
363
|
-
|
|
364
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
365
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
366
|
+
date = (date.to_i / 1000)
|
|
367
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
368
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
369
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
364
370
|
else # handle date 'types' for small subset of payroll API's
|
|
365
371
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
366
372
|
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
|
|
@@ -235,7 +235,7 @@ module XeroRuby::Accounting
|
|
|
235
235
|
value = self.send(attr)
|
|
236
236
|
next if value.nil?
|
|
237
237
|
key = downcase ? attr : param
|
|
238
|
-
hash[key] = _to_hash(value)
|
|
238
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
239
239
|
end
|
|
240
240
|
hash
|
|
241
241
|
end
|
|
@@ -249,15 +249,17 @@ module XeroRuby::Accounting
|
|
|
249
249
|
# For object, use to_hash. Otherwise, just return the value
|
|
250
250
|
# @param [Object] value Any valid value
|
|
251
251
|
# @return [Hash] Returns the value in the form of hash
|
|
252
|
-
def _to_hash(value)
|
|
252
|
+
def _to_hash(value, downcase: false)
|
|
253
253
|
if value.is_a?(Array)
|
|
254
|
-
value.
|
|
254
|
+
value.map do |v|
|
|
255
|
+
v.to_hash(downcase: downcase)
|
|
256
|
+
end
|
|
255
257
|
elsif value.is_a?(Hash)
|
|
256
258
|
{}.tap do |hash|
|
|
257
|
-
value.
|
|
259
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
258
260
|
end
|
|
259
261
|
elsif value.respond_to? :to_hash
|
|
260
|
-
value.to_hash
|
|
262
|
+
value.to_hash(downcase: downcase)
|
|
261
263
|
else
|
|
262
264
|
value
|
|
263
265
|
end
|
|
@@ -265,8 +267,12 @@ module XeroRuby::Accounting
|
|
|
265
267
|
|
|
266
268
|
def parse_date(datestring)
|
|
267
269
|
if datestring.include?('Date')
|
|
268
|
-
|
|
269
|
-
|
|
270
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
271
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
272
|
+
date = (date.to_i / 1000)
|
|
273
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
274
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
275
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
270
276
|
else # handle date 'types' for small subset of payroll API's
|
|
271
277
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
272
278
|
end
|
|
@@ -206,7 +206,7 @@ module XeroRuby::Accounting
|
|
|
206
206
|
value = self.send(attr)
|
|
207
207
|
next if value.nil?
|
|
208
208
|
key = downcase ? attr : param
|
|
209
|
-
hash[key] = _to_hash(value)
|
|
209
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
210
210
|
end
|
|
211
211
|
hash
|
|
212
212
|
end
|
|
@@ -220,15 +220,17 @@ module XeroRuby::Accounting
|
|
|
220
220
|
# For object, use to_hash. Otherwise, just return the value
|
|
221
221
|
# @param [Object] value Any valid value
|
|
222
222
|
# @return [Hash] Returns the value in the form of hash
|
|
223
|
-
def _to_hash(value)
|
|
223
|
+
def _to_hash(value, downcase: false)
|
|
224
224
|
if value.is_a?(Array)
|
|
225
|
-
value.
|
|
225
|
+
value.map do |v|
|
|
226
|
+
v.to_hash(downcase: downcase)
|
|
227
|
+
end
|
|
226
228
|
elsif value.is_a?(Hash)
|
|
227
229
|
{}.tap do |hash|
|
|
228
|
-
value.
|
|
230
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
229
231
|
end
|
|
230
232
|
elsif value.respond_to? :to_hash
|
|
231
|
-
value.to_hash
|
|
233
|
+
value.to_hash(downcase: downcase)
|
|
232
234
|
else
|
|
233
235
|
value
|
|
234
236
|
end
|
|
@@ -236,8 +238,12 @@ module XeroRuby::Accounting
|
|
|
236
238
|
|
|
237
239
|
def parse_date(datestring)
|
|
238
240
|
if datestring.include?('Date')
|
|
239
|
-
|
|
240
|
-
|
|
241
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
242
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
243
|
+
date = (date.to_i / 1000)
|
|
244
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
245
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
246
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
241
247
|
else # handle date 'types' for small subset of payroll API's
|
|
242
248
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
243
249
|
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
|
|
@@ -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,12 @@ 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
|
|
226
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
227
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
222
228
|
else # handle date 'types' for small subset of payroll API's
|
|
223
229
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
224
230
|
end
|