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
|
@@ -257,7 +257,7 @@ module XeroRuby::Accounting
|
|
|
257
257
|
value = self.send(attr)
|
|
258
258
|
next if value.nil?
|
|
259
259
|
key = downcase ? attr : param
|
|
260
|
-
hash[key] = _to_hash(value)
|
|
260
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
261
261
|
end
|
|
262
262
|
hash
|
|
263
263
|
end
|
|
@@ -271,15 +271,17 @@ module XeroRuby::Accounting
|
|
|
271
271
|
# For object, use to_hash. Otherwise, just return the value
|
|
272
272
|
# @param [Object] value Any valid value
|
|
273
273
|
# @return [Hash] Returns the value in the form of hash
|
|
274
|
-
def _to_hash(value)
|
|
274
|
+
def _to_hash(value, downcase: false)
|
|
275
275
|
if value.is_a?(Array)
|
|
276
|
-
value.
|
|
276
|
+
value.map do |v|
|
|
277
|
+
v.to_hash(downcase: downcase)
|
|
278
|
+
end
|
|
277
279
|
elsif value.is_a?(Hash)
|
|
278
280
|
{}.tap do |hash|
|
|
279
|
-
value.
|
|
281
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
280
282
|
end
|
|
281
283
|
elsif value.respond_to? :to_hash
|
|
282
|
-
value.to_hash
|
|
284
|
+
value.to_hash(downcase: downcase)
|
|
283
285
|
else
|
|
284
286
|
value
|
|
285
287
|
end
|
|
@@ -287,8 +289,12 @@ module XeroRuby::Accounting
|
|
|
287
289
|
|
|
288
290
|
def parse_date(datestring)
|
|
289
291
|
if datestring.include?('Date')
|
|
290
|
-
|
|
291
|
-
|
|
292
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
293
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
294
|
+
date = (date.to_i / 1000)
|
|
295
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
296
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
297
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
292
298
|
else # handle date 'types' for small subset of payroll API's
|
|
293
299
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
294
300
|
end
|
|
@@ -176,7 +176,7 @@ module XeroRuby::Accounting
|
|
|
176
176
|
value = self.send(attr)
|
|
177
177
|
next if value.nil?
|
|
178
178
|
key = downcase ? attr : param
|
|
179
|
-
hash[key] = _to_hash(value)
|
|
179
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
180
180
|
end
|
|
181
181
|
hash
|
|
182
182
|
end
|
|
@@ -190,15 +190,17 @@ module XeroRuby::Accounting
|
|
|
190
190
|
# For object, use to_hash. Otherwise, just return the value
|
|
191
191
|
# @param [Object] value Any valid value
|
|
192
192
|
# @return [Hash] Returns the value in the form of hash
|
|
193
|
-
def _to_hash(value)
|
|
193
|
+
def _to_hash(value, downcase: false)
|
|
194
194
|
if value.is_a?(Array)
|
|
195
|
-
value.
|
|
195
|
+
value.map do |v|
|
|
196
|
+
v.to_hash(downcase: downcase)
|
|
197
|
+
end
|
|
196
198
|
elsif value.is_a?(Hash)
|
|
197
199
|
{}.tap do |hash|
|
|
198
|
-
value.
|
|
200
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
199
201
|
end
|
|
200
202
|
elsif value.respond_to? :to_hash
|
|
201
|
-
value.to_hash
|
|
203
|
+
value.to_hash(downcase: downcase)
|
|
202
204
|
else
|
|
203
205
|
value
|
|
204
206
|
end
|
|
@@ -206,8 +208,12 @@ module XeroRuby::Accounting
|
|
|
206
208
|
|
|
207
209
|
def parse_date(datestring)
|
|
208
210
|
if datestring.include?('Date')
|
|
209
|
-
|
|
210
|
-
|
|
211
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
212
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
213
|
+
date = (date.to_i / 1000)
|
|
214
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
215
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
216
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
211
217
|
else # handle date 'types' for small subset of payroll API's
|
|
212
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
end
|
|
@@ -176,7 +176,7 @@ module XeroRuby::Accounting
|
|
|
176
176
|
value = self.send(attr)
|
|
177
177
|
next if value.nil?
|
|
178
178
|
key = downcase ? attr : param
|
|
179
|
-
hash[key] = _to_hash(value)
|
|
179
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
180
180
|
end
|
|
181
181
|
hash
|
|
182
182
|
end
|
|
@@ -190,15 +190,17 @@ module XeroRuby::Accounting
|
|
|
190
190
|
# For object, use to_hash. Otherwise, just return the value
|
|
191
191
|
# @param [Object] value Any valid value
|
|
192
192
|
# @return [Hash] Returns the value in the form of hash
|
|
193
|
-
def _to_hash(value)
|
|
193
|
+
def _to_hash(value, downcase: false)
|
|
194
194
|
if value.is_a?(Array)
|
|
195
|
-
value.
|
|
195
|
+
value.map do |v|
|
|
196
|
+
v.to_hash(downcase: downcase)
|
|
197
|
+
end
|
|
196
198
|
elsif value.is_a?(Hash)
|
|
197
199
|
{}.tap do |hash|
|
|
198
|
-
value.
|
|
200
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
199
201
|
end
|
|
200
202
|
elsif value.respond_to? :to_hash
|
|
201
|
-
value.to_hash
|
|
203
|
+
value.to_hash(downcase: downcase)
|
|
202
204
|
else
|
|
203
205
|
value
|
|
204
206
|
end
|
|
@@ -206,8 +208,12 @@ module XeroRuby::Accounting
|
|
|
206
208
|
|
|
207
209
|
def parse_date(datestring)
|
|
208
210
|
if datestring.include?('Date')
|
|
209
|
-
|
|
210
|
-
|
|
211
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
212
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
213
|
+
date = (date.to_i / 1000)
|
|
214
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
215
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
216
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
211
217
|
else # handle date 'types' for small subset of payroll API's
|
|
212
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
end
|
|
@@ -661,7 +661,7 @@ module XeroRuby::Accounting
|
|
|
661
661
|
value = self.send(attr)
|
|
662
662
|
next if value.nil?
|
|
663
663
|
key = downcase ? attr : param
|
|
664
|
-
hash[key] = _to_hash(value)
|
|
664
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
665
665
|
end
|
|
666
666
|
hash
|
|
667
667
|
end
|
|
@@ -675,15 +675,17 @@ module XeroRuby::Accounting
|
|
|
675
675
|
# For object, use to_hash. Otherwise, just return the value
|
|
676
676
|
# @param [Object] value Any valid value
|
|
677
677
|
# @return [Hash] Returns the value in the form of hash
|
|
678
|
-
def _to_hash(value)
|
|
678
|
+
def _to_hash(value, downcase: false)
|
|
679
679
|
if value.is_a?(Array)
|
|
680
|
-
value.
|
|
680
|
+
value.map do |v|
|
|
681
|
+
v.to_hash(downcase: downcase)
|
|
682
|
+
end
|
|
681
683
|
elsif value.is_a?(Hash)
|
|
682
684
|
{}.tap do |hash|
|
|
683
|
-
value.
|
|
685
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
684
686
|
end
|
|
685
687
|
elsif value.respond_to? :to_hash
|
|
686
|
-
value.to_hash
|
|
688
|
+
value.to_hash(downcase: downcase)
|
|
687
689
|
else
|
|
688
690
|
value
|
|
689
691
|
end
|
|
@@ -691,8 +693,12 @@ module XeroRuby::Accounting
|
|
|
691
693
|
|
|
692
694
|
def parse_date(datestring)
|
|
693
695
|
if datestring.include?('Date')
|
|
694
|
-
|
|
695
|
-
|
|
696
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
697
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
698
|
+
date = (date.to_i / 1000)
|
|
699
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
700
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
701
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
696
702
|
else # handle date 'types' for small subset of payroll API's
|
|
697
703
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
698
704
|
end
|
|
@@ -176,7 +176,7 @@ module XeroRuby::Accounting
|
|
|
176
176
|
value = self.send(attr)
|
|
177
177
|
next if value.nil?
|
|
178
178
|
key = downcase ? attr : param
|
|
179
|
-
hash[key] = _to_hash(value)
|
|
179
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
180
180
|
end
|
|
181
181
|
hash
|
|
182
182
|
end
|
|
@@ -190,15 +190,17 @@ module XeroRuby::Accounting
|
|
|
190
190
|
# For object, use to_hash. Otherwise, just return the value
|
|
191
191
|
# @param [Object] value Any valid value
|
|
192
192
|
# @return [Hash] Returns the value in the form of hash
|
|
193
|
-
def _to_hash(value)
|
|
193
|
+
def _to_hash(value, downcase: false)
|
|
194
194
|
if value.is_a?(Array)
|
|
195
|
-
value.
|
|
195
|
+
value.map do |v|
|
|
196
|
+
v.to_hash(downcase: downcase)
|
|
197
|
+
end
|
|
196
198
|
elsif value.is_a?(Hash)
|
|
197
199
|
{}.tap do |hash|
|
|
198
|
-
value.
|
|
200
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
199
201
|
end
|
|
200
202
|
elsif value.respond_to? :to_hash
|
|
201
|
-
value.to_hash
|
|
203
|
+
value.to_hash(downcase: downcase)
|
|
202
204
|
else
|
|
203
205
|
value
|
|
204
206
|
end
|
|
@@ -206,8 +208,12 @@ module XeroRuby::Accounting
|
|
|
206
208
|
|
|
207
209
|
def parse_date(datestring)
|
|
208
210
|
if datestring.include?('Date')
|
|
209
|
-
|
|
210
|
-
|
|
211
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
212
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
213
|
+
date = (date.to_i / 1000)
|
|
214
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
215
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
216
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
211
217
|
else # handle date 'types' for small subset of payroll API's
|
|
212
218
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
213
219
|
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
|
|
@@ -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
|
|
@@ -397,7 +397,7 @@ module XeroRuby::Accounting
|
|
|
397
397
|
value = self.send(attr)
|
|
398
398
|
next if value.nil?
|
|
399
399
|
key = downcase ? attr : param
|
|
400
|
-
hash[key] = _to_hash(value)
|
|
400
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
401
401
|
end
|
|
402
402
|
hash
|
|
403
403
|
end
|
|
@@ -411,15 +411,17 @@ module XeroRuby::Accounting
|
|
|
411
411
|
# For object, use to_hash. Otherwise, just return the value
|
|
412
412
|
# @param [Object] value Any valid value
|
|
413
413
|
# @return [Hash] Returns the value in the form of hash
|
|
414
|
-
def _to_hash(value)
|
|
414
|
+
def _to_hash(value, downcase: false)
|
|
415
415
|
if value.is_a?(Array)
|
|
416
|
-
value.
|
|
416
|
+
value.map do |v|
|
|
417
|
+
v.to_hash(downcase: downcase)
|
|
418
|
+
end
|
|
417
419
|
elsif value.is_a?(Hash)
|
|
418
420
|
{}.tap do |hash|
|
|
419
|
-
value.
|
|
421
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
420
422
|
end
|
|
421
423
|
elsif value.respond_to? :to_hash
|
|
422
|
-
value.to_hash
|
|
424
|
+
value.to_hash(downcase: downcase)
|
|
423
425
|
else
|
|
424
426
|
value
|
|
425
427
|
end
|
|
@@ -427,8 +429,12 @@ module XeroRuby::Accounting
|
|
|
427
429
|
|
|
428
430
|
def parse_date(datestring)
|
|
429
431
|
if datestring.include?('Date')
|
|
430
|
-
|
|
431
|
-
|
|
432
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
433
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
434
|
+
date = (date.to_i / 1000)
|
|
435
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
436
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
437
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
432
438
|
else # handle date 'types' for small subset of payroll API's
|
|
433
439
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
434
440
|
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
|
|
@@ -307,7 +307,7 @@ module XeroRuby::Accounting
|
|
|
307
307
|
value = self.send(attr)
|
|
308
308
|
next if value.nil?
|
|
309
309
|
key = downcase ? attr : param
|
|
310
|
-
hash[key] = _to_hash(value)
|
|
310
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
311
311
|
end
|
|
312
312
|
hash
|
|
313
313
|
end
|
|
@@ -321,15 +321,17 @@ module XeroRuby::Accounting
|
|
|
321
321
|
# For object, use to_hash. Otherwise, just return the value
|
|
322
322
|
# @param [Object] value Any valid value
|
|
323
323
|
# @return [Hash] Returns the value in the form of hash
|
|
324
|
-
def _to_hash(value)
|
|
324
|
+
def _to_hash(value, downcase: false)
|
|
325
325
|
if value.is_a?(Array)
|
|
326
|
-
value.
|
|
326
|
+
value.map do |v|
|
|
327
|
+
v.to_hash(downcase: downcase)
|
|
328
|
+
end
|
|
327
329
|
elsif value.is_a?(Hash)
|
|
328
330
|
{}.tap do |hash|
|
|
329
|
-
value.
|
|
331
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
330
332
|
end
|
|
331
333
|
elsif value.respond_to? :to_hash
|
|
332
|
-
value.to_hash
|
|
334
|
+
value.to_hash(downcase: downcase)
|
|
333
335
|
else
|
|
334
336
|
value
|
|
335
337
|
end
|
|
@@ -337,8 +339,12 @@ module XeroRuby::Accounting
|
|
|
337
339
|
|
|
338
340
|
def parse_date(datestring)
|
|
339
341
|
if datestring.include?('Date')
|
|
340
|
-
|
|
341
|
-
|
|
342
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
343
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
344
|
+
date = (date.to_i / 1000)
|
|
345
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
346
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
347
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
342
348
|
else # handle date 'types' for small subset of payroll API's
|
|
343
349
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
344
350
|
end
|