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
|
@@ -206,7 +206,7 @@ module XeroRuby::Files
|
|
|
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::Files
|
|
|
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::Files
|
|
|
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
|
|
@@ -246,7 +246,7 @@ module XeroRuby::Files
|
|
|
246
246
|
value = self.send(attr)
|
|
247
247
|
next if value.nil?
|
|
248
248
|
key = downcase ? attr : param
|
|
249
|
-
hash[key] = _to_hash(value)
|
|
249
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
250
250
|
end
|
|
251
251
|
hash
|
|
252
252
|
end
|
|
@@ -260,15 +260,17 @@ module XeroRuby::Files
|
|
|
260
260
|
# For object, use to_hash. Otherwise, just return the value
|
|
261
261
|
# @param [Object] value Any valid value
|
|
262
262
|
# @return [Hash] Returns the value in the form of hash
|
|
263
|
-
def _to_hash(value)
|
|
263
|
+
def _to_hash(value, downcase: false)
|
|
264
264
|
if value.is_a?(Array)
|
|
265
|
-
value.
|
|
265
|
+
value.map do |v|
|
|
266
|
+
v.to_hash(downcase: downcase)
|
|
267
|
+
end
|
|
266
268
|
elsif value.is_a?(Hash)
|
|
267
269
|
{}.tap do |hash|
|
|
268
|
-
value.
|
|
270
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
269
271
|
end
|
|
270
272
|
elsif value.respond_to? :to_hash
|
|
271
|
-
value.to_hash
|
|
273
|
+
value.to_hash(downcase: downcase)
|
|
272
274
|
else
|
|
273
275
|
value
|
|
274
276
|
end
|
|
@@ -276,8 +278,12 @@ module XeroRuby::Files
|
|
|
276
278
|
|
|
277
279
|
def parse_date(datestring)
|
|
278
280
|
if datestring.include?('Date')
|
|
279
|
-
|
|
280
|
-
|
|
281
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
282
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
283
|
+
date = (date.to_i / 1000)
|
|
284
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
285
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
286
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
281
287
|
else # handle date 'types' for small subset of payroll API's
|
|
282
288
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
283
289
|
end
|
|
@@ -208,7 +208,7 @@ module XeroRuby::Files
|
|
|
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::Files
|
|
|
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::Files
|
|
|
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
|
|
@@ -216,7 +216,7 @@ module XeroRuby::Files
|
|
|
216
216
|
value = self.send(attr)
|
|
217
217
|
next if value.nil?
|
|
218
218
|
key = downcase ? attr : param
|
|
219
|
-
hash[key] = _to_hash(value)
|
|
219
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
220
220
|
end
|
|
221
221
|
hash
|
|
222
222
|
end
|
|
@@ -230,15 +230,17 @@ module XeroRuby::Files
|
|
|
230
230
|
# For object, use to_hash. Otherwise, just return the value
|
|
231
231
|
# @param [Object] value Any valid value
|
|
232
232
|
# @return [Hash] Returns the value in the form of hash
|
|
233
|
-
def _to_hash(value)
|
|
233
|
+
def _to_hash(value, downcase: false)
|
|
234
234
|
if value.is_a?(Array)
|
|
235
|
-
value.
|
|
235
|
+
value.map do |v|
|
|
236
|
+
v.to_hash(downcase: downcase)
|
|
237
|
+
end
|
|
236
238
|
elsif value.is_a?(Hash)
|
|
237
239
|
{}.tap do |hash|
|
|
238
|
-
value.
|
|
240
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
239
241
|
end
|
|
240
242
|
elsif value.respond_to? :to_hash
|
|
241
|
-
value.to_hash
|
|
243
|
+
value.to_hash(downcase: downcase)
|
|
242
244
|
else
|
|
243
245
|
value
|
|
244
246
|
end
|
|
@@ -246,8 +248,12 @@ module XeroRuby::Files
|
|
|
246
248
|
|
|
247
249
|
def parse_date(datestring)
|
|
248
250
|
if datestring.include?('Date')
|
|
249
|
-
|
|
250
|
-
|
|
251
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
252
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
253
|
+
date = (date.to_i / 1000)
|
|
254
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
255
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
256
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
251
257
|
else # handle date 'types' for small subset of payroll API's
|
|
252
258
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
253
259
|
end
|
|
@@ -178,7 +178,7 @@ module XeroRuby::Files
|
|
|
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::Files
|
|
|
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::Files
|
|
|
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
|
|
@@ -221,7 +221,7 @@ module XeroRuby::Files
|
|
|
221
221
|
value = self.send(attr)
|
|
222
222
|
next if value.nil?
|
|
223
223
|
key = downcase ? attr : param
|
|
224
|
-
hash[key] = _to_hash(value)
|
|
224
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
225
225
|
end
|
|
226
226
|
hash
|
|
227
227
|
end
|
|
@@ -235,15 +235,17 @@ module XeroRuby::Files
|
|
|
235
235
|
# For object, use to_hash. Otherwise, just return the value
|
|
236
236
|
# @param [Object] value Any valid value
|
|
237
237
|
# @return [Hash] Returns the value in the form of hash
|
|
238
|
-
def _to_hash(value)
|
|
238
|
+
def _to_hash(value, downcase: false)
|
|
239
239
|
if value.is_a?(Array)
|
|
240
|
-
value.
|
|
240
|
+
value.map do |v|
|
|
241
|
+
v.to_hash(downcase: downcase)
|
|
242
|
+
end
|
|
241
243
|
elsif value.is_a?(Hash)
|
|
242
244
|
{}.tap do |hash|
|
|
243
|
-
value.
|
|
245
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
244
246
|
end
|
|
245
247
|
elsif value.respond_to? :to_hash
|
|
246
|
-
value.to_hash
|
|
248
|
+
value.to_hash(downcase: downcase)
|
|
247
249
|
else
|
|
248
250
|
value
|
|
249
251
|
end
|
|
@@ -251,8 +253,12 @@ module XeroRuby::Files
|
|
|
251
253
|
|
|
252
254
|
def parse_date(datestring)
|
|
253
255
|
if datestring.include?('Date')
|
|
254
|
-
|
|
255
|
-
|
|
256
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
257
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
258
|
+
date = (date.to_i / 1000)
|
|
259
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
260
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
261
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
256
262
|
else # handle date 'types' for small subset of payroll API's
|
|
257
263
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
258
264
|
end
|
|
@@ -221,7 +221,7 @@ module XeroRuby::Files
|
|
|
221
221
|
value = self.send(attr)
|
|
222
222
|
next if value.nil?
|
|
223
223
|
key = downcase ? attr : param
|
|
224
|
-
hash[key] = _to_hash(value)
|
|
224
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
225
225
|
end
|
|
226
226
|
hash
|
|
227
227
|
end
|
|
@@ -235,15 +235,17 @@ module XeroRuby::Files
|
|
|
235
235
|
# For object, use to_hash. Otherwise, just return the value
|
|
236
236
|
# @param [Object] value Any valid value
|
|
237
237
|
# @return [Hash] Returns the value in the form of hash
|
|
238
|
-
def _to_hash(value)
|
|
238
|
+
def _to_hash(value, downcase: false)
|
|
239
239
|
if value.is_a?(Array)
|
|
240
|
-
value.
|
|
240
|
+
value.map do |v|
|
|
241
|
+
v.to_hash(downcase: downcase)
|
|
242
|
+
end
|
|
241
243
|
elsif value.is_a?(Hash)
|
|
242
244
|
{}.tap do |hash|
|
|
243
|
-
value.
|
|
245
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
244
246
|
end
|
|
245
247
|
elsif value.respond_to? :to_hash
|
|
246
|
-
value.to_hash
|
|
248
|
+
value.to_hash(downcase: downcase)
|
|
247
249
|
else
|
|
248
250
|
value
|
|
249
251
|
end
|
|
@@ -251,8 +253,12 @@ module XeroRuby::Files
|
|
|
251
253
|
|
|
252
254
|
def parse_date(datestring)
|
|
253
255
|
if datestring.include?('Date')
|
|
254
|
-
|
|
255
|
-
|
|
256
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
257
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
258
|
+
date = (date.to_i / 1000)
|
|
259
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
260
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
261
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
256
262
|
else # handle date 'types' for small subset of payroll API's
|
|
257
263
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
258
264
|
end
|
|
@@ -206,7 +206,7 @@ module XeroRuby::PayrollAu
|
|
|
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::PayrollAu
|
|
|
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::PayrollAu
|
|
|
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
|
|
@@ -197,7 +197,7 @@ module XeroRuby::PayrollAu
|
|
|
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::PayrollAu
|
|
|
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,12 @@ module XeroRuby::PayrollAu
|
|
|
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
|
|
236
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
237
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
232
238
|
else # handle date 'types' for small subset of payroll API's
|
|
233
239
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
234
240
|
end
|
|
@@ -226,7 +226,7 @@ module XeroRuby::PayrollAu
|
|
|
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::PayrollAu
|
|
|
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,12 @@ module XeroRuby::PayrollAu
|
|
|
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
|
|
265
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
266
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
261
267
|
else # handle date 'types' for small subset of payroll API's
|
|
262
268
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
263
269
|
end
|