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
|
@@ -231,7 +231,7 @@ module XeroRuby::PayrollUk
|
|
|
231
231
|
value = self.send(attr)
|
|
232
232
|
next if value.nil?
|
|
233
233
|
key = downcase ? attr : param
|
|
234
|
-
hash[key] = _to_hash(value)
|
|
234
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
235
235
|
end
|
|
236
236
|
hash
|
|
237
237
|
end
|
|
@@ -245,15 +245,17 @@ module XeroRuby::PayrollUk
|
|
|
245
245
|
# For object, use to_hash. Otherwise, just return the value
|
|
246
246
|
# @param [Object] value Any valid value
|
|
247
247
|
# @return [Hash] Returns the value in the form of hash
|
|
248
|
-
def _to_hash(value)
|
|
248
|
+
def _to_hash(value, downcase: false)
|
|
249
249
|
if value.is_a?(Array)
|
|
250
|
-
value.
|
|
250
|
+
value.map do |v|
|
|
251
|
+
v.to_hash(downcase: downcase)
|
|
252
|
+
end
|
|
251
253
|
elsif value.is_a?(Hash)
|
|
252
254
|
{}.tap do |hash|
|
|
253
|
-
value.
|
|
255
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
254
256
|
end
|
|
255
257
|
elsif value.respond_to? :to_hash
|
|
256
|
-
value.to_hash
|
|
258
|
+
value.to_hash(downcase: downcase)
|
|
257
259
|
else
|
|
258
260
|
value
|
|
259
261
|
end
|
|
@@ -261,8 +263,12 @@ module XeroRuby::PayrollUk
|
|
|
261
263
|
|
|
262
264
|
def parse_date(datestring)
|
|
263
265
|
if datestring.include?('Date')
|
|
264
|
-
|
|
265
|
-
|
|
266
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
267
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
268
|
+
date = (date.to_i / 1000)
|
|
269
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
270
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
271
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
266
272
|
else # handle date 'types' for small subset of payroll API's
|
|
267
273
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
268
274
|
end
|
|
@@ -196,7 +196,7 @@ module XeroRuby::PayrollUk
|
|
|
196
196
|
value = self.send(attr)
|
|
197
197
|
next if value.nil?
|
|
198
198
|
key = downcase ? attr : param
|
|
199
|
-
hash[key] = _to_hash(value)
|
|
199
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
200
200
|
end
|
|
201
201
|
hash
|
|
202
202
|
end
|
|
@@ -210,15 +210,17 @@ module XeroRuby::PayrollUk
|
|
|
210
210
|
# For object, use to_hash. Otherwise, just return the value
|
|
211
211
|
# @param [Object] value Any valid value
|
|
212
212
|
# @return [Hash] Returns the value in the form of hash
|
|
213
|
-
def _to_hash(value)
|
|
213
|
+
def _to_hash(value, downcase: false)
|
|
214
214
|
if value.is_a?(Array)
|
|
215
|
-
value.
|
|
215
|
+
value.map do |v|
|
|
216
|
+
v.to_hash(downcase: downcase)
|
|
217
|
+
end
|
|
216
218
|
elsif value.is_a?(Hash)
|
|
217
219
|
{}.tap do |hash|
|
|
218
|
-
value.
|
|
220
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
219
221
|
end
|
|
220
222
|
elsif value.respond_to? :to_hash
|
|
221
|
-
value.to_hash
|
|
223
|
+
value.to_hash(downcase: downcase)
|
|
222
224
|
else
|
|
223
225
|
value
|
|
224
226
|
end
|
|
@@ -226,8 +228,12 @@ module XeroRuby::PayrollUk
|
|
|
226
228
|
|
|
227
229
|
def parse_date(datestring)
|
|
228
230
|
if datestring.include?('Date')
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
232
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
233
|
+
date = (date.to_i / 1000)
|
|
234
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
235
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
236
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
231
237
|
else # handle date 'types' for small subset of payroll API's
|
|
232
238
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
233
239
|
end
|
|
@@ -196,7 +196,7 @@ module XeroRuby::PayrollUk
|
|
|
196
196
|
value = self.send(attr)
|
|
197
197
|
next if value.nil?
|
|
198
198
|
key = downcase ? attr : param
|
|
199
|
-
hash[key] = _to_hash(value)
|
|
199
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
200
200
|
end
|
|
201
201
|
hash
|
|
202
202
|
end
|
|
@@ -210,15 +210,17 @@ module XeroRuby::PayrollUk
|
|
|
210
210
|
# For object, use to_hash. Otherwise, just return the value
|
|
211
211
|
# @param [Object] value Any valid value
|
|
212
212
|
# @return [Hash] Returns the value in the form of hash
|
|
213
|
-
def _to_hash(value)
|
|
213
|
+
def _to_hash(value, downcase: false)
|
|
214
214
|
if value.is_a?(Array)
|
|
215
|
-
value.
|
|
215
|
+
value.map do |v|
|
|
216
|
+
v.to_hash(downcase: downcase)
|
|
217
|
+
end
|
|
216
218
|
elsif value.is_a?(Hash)
|
|
217
219
|
{}.tap do |hash|
|
|
218
|
-
value.
|
|
220
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
219
221
|
end
|
|
220
222
|
elsif value.respond_to? :to_hash
|
|
221
|
-
value.to_hash
|
|
223
|
+
value.to_hash(downcase: downcase)
|
|
222
224
|
else
|
|
223
225
|
value
|
|
224
226
|
end
|
|
@@ -226,8 +228,12 @@ module XeroRuby::PayrollUk
|
|
|
226
228
|
|
|
227
229
|
def parse_date(datestring)
|
|
228
230
|
if datestring.include?('Date')
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
232
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
233
|
+
date = (date.to_i / 1000)
|
|
234
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
235
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
236
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
231
237
|
else # handle date 'types' for small subset of payroll API's
|
|
232
238
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
233
239
|
end
|
|
@@ -198,7 +198,7 @@ module XeroRuby::PayrollUk
|
|
|
198
198
|
value = self.send(attr)
|
|
199
199
|
next if value.nil?
|
|
200
200
|
key = downcase ? attr : param
|
|
201
|
-
hash[key] = _to_hash(value)
|
|
201
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
202
202
|
end
|
|
203
203
|
hash
|
|
204
204
|
end
|
|
@@ -212,15 +212,17 @@ module XeroRuby::PayrollUk
|
|
|
212
212
|
# For object, use to_hash. Otherwise, just return the value
|
|
213
213
|
# @param [Object] value Any valid value
|
|
214
214
|
# @return [Hash] Returns the value in the form of hash
|
|
215
|
-
def _to_hash(value)
|
|
215
|
+
def _to_hash(value, downcase: false)
|
|
216
216
|
if value.is_a?(Array)
|
|
217
|
-
value.
|
|
217
|
+
value.map do |v|
|
|
218
|
+
v.to_hash(downcase: downcase)
|
|
219
|
+
end
|
|
218
220
|
elsif value.is_a?(Hash)
|
|
219
221
|
{}.tap do |hash|
|
|
220
|
-
value.
|
|
222
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
221
223
|
end
|
|
222
224
|
elsif value.respond_to? :to_hash
|
|
223
|
-
value.to_hash
|
|
225
|
+
value.to_hash(downcase: downcase)
|
|
224
226
|
else
|
|
225
227
|
value
|
|
226
228
|
end
|
|
@@ -228,8 +230,12 @@ module XeroRuby::PayrollUk
|
|
|
228
230
|
|
|
229
231
|
def parse_date(datestring)
|
|
230
232
|
if datestring.include?('Date')
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
234
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
235
|
+
date = (date.to_i / 1000)
|
|
236
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
237
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
238
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
233
239
|
else # handle date 'types' for small subset of payroll API's
|
|
234
240
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
235
241
|
end
|
|
@@ -196,7 +196,7 @@ module XeroRuby::PayrollUk
|
|
|
196
196
|
value = self.send(attr)
|
|
197
197
|
next if value.nil?
|
|
198
198
|
key = downcase ? attr : param
|
|
199
|
-
hash[key] = _to_hash(value)
|
|
199
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
200
200
|
end
|
|
201
201
|
hash
|
|
202
202
|
end
|
|
@@ -210,15 +210,17 @@ module XeroRuby::PayrollUk
|
|
|
210
210
|
# For object, use to_hash. Otherwise, just return the value
|
|
211
211
|
# @param [Object] value Any valid value
|
|
212
212
|
# @return [Hash] Returns the value in the form of hash
|
|
213
|
-
def _to_hash(value)
|
|
213
|
+
def _to_hash(value, downcase: false)
|
|
214
214
|
if value.is_a?(Array)
|
|
215
|
-
value.
|
|
215
|
+
value.map do |v|
|
|
216
|
+
v.to_hash(downcase: downcase)
|
|
217
|
+
end
|
|
216
218
|
elsif value.is_a?(Hash)
|
|
217
219
|
{}.tap do |hash|
|
|
218
|
-
value.
|
|
220
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
219
221
|
end
|
|
220
222
|
elsif value.respond_to? :to_hash
|
|
221
|
-
value.to_hash
|
|
223
|
+
value.to_hash(downcase: downcase)
|
|
222
224
|
else
|
|
223
225
|
value
|
|
224
226
|
end
|
|
@@ -226,8 +228,12 @@ module XeroRuby::PayrollUk
|
|
|
226
228
|
|
|
227
229
|
def parse_date(datestring)
|
|
228
230
|
if datestring.include?('Date')
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
232
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
233
|
+
date = (date.to_i / 1000)
|
|
234
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
235
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
236
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
231
237
|
else # handle date 'types' for small subset of payroll API's
|
|
232
238
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
233
239
|
end
|
|
@@ -186,7 +186,7 @@ module XeroRuby::PayrollUk
|
|
|
186
186
|
value = self.send(attr)
|
|
187
187
|
next if value.nil?
|
|
188
188
|
key = downcase ? attr : param
|
|
189
|
-
hash[key] = _to_hash(value)
|
|
189
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
190
190
|
end
|
|
191
191
|
hash
|
|
192
192
|
end
|
|
@@ -200,15 +200,17 @@ module XeroRuby::PayrollUk
|
|
|
200
200
|
# For object, use to_hash. Otherwise, just return the value
|
|
201
201
|
# @param [Object] value Any valid value
|
|
202
202
|
# @return [Hash] Returns the value in the form of hash
|
|
203
|
-
def _to_hash(value)
|
|
203
|
+
def _to_hash(value, downcase: false)
|
|
204
204
|
if value.is_a?(Array)
|
|
205
|
-
value.
|
|
205
|
+
value.map do |v|
|
|
206
|
+
v.to_hash(downcase: downcase)
|
|
207
|
+
end
|
|
206
208
|
elsif value.is_a?(Hash)
|
|
207
209
|
{}.tap do |hash|
|
|
208
|
-
value.
|
|
210
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
209
211
|
end
|
|
210
212
|
elsif value.respond_to? :to_hash
|
|
211
|
-
value.to_hash
|
|
213
|
+
value.to_hash(downcase: downcase)
|
|
212
214
|
else
|
|
213
215
|
value
|
|
214
216
|
end
|
|
@@ -216,8 +218,12 @@ module XeroRuby::PayrollUk
|
|
|
216
218
|
|
|
217
219
|
def parse_date(datestring)
|
|
218
220
|
if datestring.include?('Date')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
222
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
223
|
+
date = (date.to_i / 1000)
|
|
224
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
225
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
226
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
221
227
|
else # handle date 'types' for small subset of payroll API's
|
|
222
228
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
end
|
|
@@ -186,7 +186,7 @@ module XeroRuby::Projects
|
|
|
186
186
|
value = self.send(attr)
|
|
187
187
|
next if value.nil?
|
|
188
188
|
key = downcase ? attr : param
|
|
189
|
-
hash[key] = _to_hash(value)
|
|
189
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
190
190
|
end
|
|
191
191
|
hash
|
|
192
192
|
end
|
|
@@ -200,15 +200,17 @@ module XeroRuby::Projects
|
|
|
200
200
|
# For object, use to_hash. Otherwise, just return the value
|
|
201
201
|
# @param [Object] value Any valid value
|
|
202
202
|
# @return [Hash] Returns the value in the form of hash
|
|
203
|
-
def _to_hash(value)
|
|
203
|
+
def _to_hash(value, downcase: false)
|
|
204
204
|
if value.is_a?(Array)
|
|
205
|
-
value.
|
|
205
|
+
value.map do |v|
|
|
206
|
+
v.to_hash(downcase: downcase)
|
|
207
|
+
end
|
|
206
208
|
elsif value.is_a?(Hash)
|
|
207
209
|
{}.tap do |hash|
|
|
208
|
-
value.
|
|
210
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
209
211
|
end
|
|
210
212
|
elsif value.respond_to? :to_hash
|
|
211
|
-
value.to_hash
|
|
213
|
+
value.to_hash(downcase: downcase)
|
|
212
214
|
else
|
|
213
215
|
value
|
|
214
216
|
end
|
|
@@ -216,8 +218,12 @@ module XeroRuby::Projects
|
|
|
216
218
|
|
|
217
219
|
def parse_date(datestring)
|
|
218
220
|
if datestring.include?('Date')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
222
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
223
|
+
date = (date.to_i / 1000)
|
|
224
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
225
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
226
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
221
227
|
else # handle date 'types' for small subset of payroll API's
|
|
222
228
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
end
|
|
@@ -186,7 +186,7 @@ module XeroRuby::Projects
|
|
|
186
186
|
value = self.send(attr)
|
|
187
187
|
next if value.nil?
|
|
188
188
|
key = downcase ? attr : param
|
|
189
|
-
hash[key] = _to_hash(value)
|
|
189
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
190
190
|
end
|
|
191
191
|
hash
|
|
192
192
|
end
|
|
@@ -200,15 +200,17 @@ module XeroRuby::Projects
|
|
|
200
200
|
# For object, use to_hash. Otherwise, just return the value
|
|
201
201
|
# @param [Object] value Any valid value
|
|
202
202
|
# @return [Hash] Returns the value in the form of hash
|
|
203
|
-
def _to_hash(value)
|
|
203
|
+
def _to_hash(value, downcase: false)
|
|
204
204
|
if value.is_a?(Array)
|
|
205
|
-
value.
|
|
205
|
+
value.map do |v|
|
|
206
|
+
v.to_hash(downcase: downcase)
|
|
207
|
+
end
|
|
206
208
|
elsif value.is_a?(Hash)
|
|
207
209
|
{}.tap do |hash|
|
|
208
|
-
value.
|
|
210
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
209
211
|
end
|
|
210
212
|
elsif value.respond_to? :to_hash
|
|
211
|
-
value.to_hash
|
|
213
|
+
value.to_hash(downcase: downcase)
|
|
212
214
|
else
|
|
213
215
|
value
|
|
214
216
|
end
|
|
@@ -216,8 +218,12 @@ module XeroRuby::Projects
|
|
|
216
218
|
|
|
217
219
|
def parse_date(datestring)
|
|
218
220
|
if datestring.include?('Date')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
222
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
223
|
+
date = (date.to_i / 1000)
|
|
224
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
225
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
226
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
221
227
|
else # handle date 'types' for small subset of payroll API's
|
|
222
228
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
end
|
|
@@ -206,7 +206,7 @@ module XeroRuby::Projects
|
|
|
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::Projects
|
|
|
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::Projects
|
|
|
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
|
|
@@ -391,7 +391,7 @@ module XeroRuby::Projects
|
|
|
391
391
|
value = self.send(attr)
|
|
392
392
|
next if value.nil?
|
|
393
393
|
key = downcase ? attr : param
|
|
394
|
-
hash[key] = _to_hash(value)
|
|
394
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
395
395
|
end
|
|
396
396
|
hash
|
|
397
397
|
end
|
|
@@ -405,15 +405,17 @@ module XeroRuby::Projects
|
|
|
405
405
|
# For object, use to_hash. Otherwise, just return the value
|
|
406
406
|
# @param [Object] value Any valid value
|
|
407
407
|
# @return [Hash] Returns the value in the form of hash
|
|
408
|
-
def _to_hash(value)
|
|
408
|
+
def _to_hash(value, downcase: false)
|
|
409
409
|
if value.is_a?(Array)
|
|
410
|
-
value.
|
|
410
|
+
value.map do |v|
|
|
411
|
+
v.to_hash(downcase: downcase)
|
|
412
|
+
end
|
|
411
413
|
elsif value.is_a?(Hash)
|
|
412
414
|
{}.tap do |hash|
|
|
413
|
-
value.
|
|
415
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
414
416
|
end
|
|
415
417
|
elsif value.respond_to? :to_hash
|
|
416
|
-
value.to_hash
|
|
418
|
+
value.to_hash(downcase: downcase)
|
|
417
419
|
else
|
|
418
420
|
value
|
|
419
421
|
end
|
|
@@ -421,8 +423,12 @@ module XeroRuby::Projects
|
|
|
421
423
|
|
|
422
424
|
def parse_date(datestring)
|
|
423
425
|
if datestring.include?('Date')
|
|
424
|
-
|
|
425
|
-
|
|
426
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
427
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
428
|
+
date = (date.to_i / 1000)
|
|
429
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
430
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
431
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
426
432
|
else # handle date 'types' for small subset of payroll API's
|
|
427
433
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
428
434
|
end
|