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
|
@@ -211,7 +211,7 @@ module XeroRuby::Projects
|
|
|
211
211
|
value = self.send(attr)
|
|
212
212
|
next if value.nil?
|
|
213
213
|
key = downcase ? attr : param
|
|
214
|
-
hash[key] = _to_hash(value)
|
|
214
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
215
215
|
end
|
|
216
216
|
hash
|
|
217
217
|
end
|
|
@@ -225,15 +225,17 @@ module XeroRuby::Projects
|
|
|
225
225
|
# For object, use to_hash. Otherwise, just return the value
|
|
226
226
|
# @param [Object] value Any valid value
|
|
227
227
|
# @return [Hash] Returns the value in the form of hash
|
|
228
|
-
def _to_hash(value)
|
|
228
|
+
def _to_hash(value, downcase: false)
|
|
229
229
|
if value.is_a?(Array)
|
|
230
|
-
value.
|
|
230
|
+
value.map do |v|
|
|
231
|
+
v.to_hash(downcase: downcase)
|
|
232
|
+
end
|
|
231
233
|
elsif value.is_a?(Hash)
|
|
232
234
|
{}.tap do |hash|
|
|
233
|
-
value.
|
|
235
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
234
236
|
end
|
|
235
237
|
elsif value.respond_to? :to_hash
|
|
236
|
-
value.to_hash
|
|
238
|
+
value.to_hash(downcase: downcase)
|
|
237
239
|
else
|
|
238
240
|
value
|
|
239
241
|
end
|
|
@@ -241,8 +243,12 @@ module XeroRuby::Projects
|
|
|
241
243
|
|
|
242
244
|
def parse_date(datestring)
|
|
243
245
|
if datestring.include?('Date')
|
|
244
|
-
|
|
245
|
-
|
|
246
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
247
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
248
|
+
date = (date.to_i / 1000)
|
|
249
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
250
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
251
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
246
252
|
else # handle date 'types' for small subset of payroll API's
|
|
247
253
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
248
254
|
end
|
|
@@ -181,7 +181,7 @@ module XeroRuby::Projects
|
|
|
181
181
|
value = self.send(attr)
|
|
182
182
|
next if value.nil?
|
|
183
183
|
key = downcase ? attr : param
|
|
184
|
-
hash[key] = _to_hash(value)
|
|
184
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
185
185
|
end
|
|
186
186
|
hash
|
|
187
187
|
end
|
|
@@ -195,15 +195,17 @@ module XeroRuby::Projects
|
|
|
195
195
|
# For object, use to_hash. Otherwise, just return the value
|
|
196
196
|
# @param [Object] value Any valid value
|
|
197
197
|
# @return [Hash] Returns the value in the form of hash
|
|
198
|
-
def _to_hash(value)
|
|
198
|
+
def _to_hash(value, downcase: false)
|
|
199
199
|
if value.is_a?(Array)
|
|
200
|
-
value.
|
|
200
|
+
value.map do |v|
|
|
201
|
+
v.to_hash(downcase: downcase)
|
|
202
|
+
end
|
|
201
203
|
elsif value.is_a?(Hash)
|
|
202
204
|
{}.tap do |hash|
|
|
203
|
-
value.
|
|
205
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
204
206
|
end
|
|
205
207
|
elsif value.respond_to? :to_hash
|
|
206
|
-
value.to_hash
|
|
208
|
+
value.to_hash(downcase: downcase)
|
|
207
209
|
else
|
|
208
210
|
value
|
|
209
211
|
end
|
|
@@ -211,8 +213,12 @@ module XeroRuby::Projects
|
|
|
211
213
|
|
|
212
214
|
def parse_date(datestring)
|
|
213
215
|
if datestring.include?('Date')
|
|
214
|
-
|
|
215
|
-
|
|
216
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
217
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
218
|
+
date = (date.to_i / 1000)
|
|
219
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
220
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
221
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
216
222
|
else # handle date 'types' for small subset of payroll API's
|
|
217
223
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
218
224
|
end
|
|
@@ -196,7 +196,7 @@ module XeroRuby::Projects
|
|
|
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::Projects
|
|
|
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::Projects
|
|
|
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
|
|
@@ -188,7 +188,7 @@ module XeroRuby::Projects
|
|
|
188
188
|
value = self.send(attr)
|
|
189
189
|
next if value.nil?
|
|
190
190
|
key = downcase ? attr : param
|
|
191
|
-
hash[key] = _to_hash(value)
|
|
191
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
192
192
|
end
|
|
193
193
|
hash
|
|
194
194
|
end
|
|
@@ -202,15 +202,17 @@ module XeroRuby::Projects
|
|
|
202
202
|
# For object, use to_hash. Otherwise, just return the value
|
|
203
203
|
# @param [Object] value Any valid value
|
|
204
204
|
# @return [Hash] Returns the value in the form of hash
|
|
205
|
-
def _to_hash(value)
|
|
205
|
+
def _to_hash(value, downcase: false)
|
|
206
206
|
if value.is_a?(Array)
|
|
207
|
-
value.
|
|
207
|
+
value.map do |v|
|
|
208
|
+
v.to_hash(downcase: downcase)
|
|
209
|
+
end
|
|
208
210
|
elsif value.is_a?(Hash)
|
|
209
211
|
{}.tap do |hash|
|
|
210
|
-
value.
|
|
212
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
211
213
|
end
|
|
212
214
|
elsif value.respond_to? :to_hash
|
|
213
|
-
value.to_hash
|
|
215
|
+
value.to_hash(downcase: downcase)
|
|
214
216
|
else
|
|
215
217
|
value
|
|
216
218
|
end
|
|
@@ -218,8 +220,12 @@ module XeroRuby::Projects
|
|
|
218
220
|
|
|
219
221
|
def parse_date(datestring)
|
|
220
222
|
if datestring.include?('Date')
|
|
221
|
-
|
|
222
|
-
|
|
223
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
224
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
225
|
+
date = (date.to_i / 1000)
|
|
226
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
227
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
228
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
else # handle date 'types' for small subset of payroll API's
|
|
224
230
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
225
231
|
end
|
|
@@ -188,7 +188,7 @@ module XeroRuby::Projects
|
|
|
188
188
|
value = self.send(attr)
|
|
189
189
|
next if value.nil?
|
|
190
190
|
key = downcase ? attr : param
|
|
191
|
-
hash[key] = _to_hash(value)
|
|
191
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
192
192
|
end
|
|
193
193
|
hash
|
|
194
194
|
end
|
|
@@ -202,15 +202,17 @@ module XeroRuby::Projects
|
|
|
202
202
|
# For object, use to_hash. Otherwise, just return the value
|
|
203
203
|
# @param [Object] value Any valid value
|
|
204
204
|
# @return [Hash] Returns the value in the form of hash
|
|
205
|
-
def _to_hash(value)
|
|
205
|
+
def _to_hash(value, downcase: false)
|
|
206
206
|
if value.is_a?(Array)
|
|
207
|
-
value.
|
|
207
|
+
value.map do |v|
|
|
208
|
+
v.to_hash(downcase: downcase)
|
|
209
|
+
end
|
|
208
210
|
elsif value.is_a?(Hash)
|
|
209
211
|
{}.tap do |hash|
|
|
210
|
-
value.
|
|
212
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
211
213
|
end
|
|
212
214
|
elsif value.respond_to? :to_hash
|
|
213
|
-
value.to_hash
|
|
215
|
+
value.to_hash(downcase: downcase)
|
|
214
216
|
else
|
|
215
217
|
value
|
|
216
218
|
end
|
|
@@ -218,8 +220,12 @@ module XeroRuby::Projects
|
|
|
218
220
|
|
|
219
221
|
def parse_date(datestring)
|
|
220
222
|
if datestring.include?('Date')
|
|
221
|
-
|
|
222
|
-
|
|
223
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
224
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
225
|
+
date = (date.to_i / 1000)
|
|
226
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
227
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
228
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
else # handle date 'types' for small subset of payroll API's
|
|
224
230
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
225
231
|
end
|
|
@@ -353,7 +353,7 @@ module XeroRuby::Projects
|
|
|
353
353
|
value = self.send(attr)
|
|
354
354
|
next if value.nil?
|
|
355
355
|
key = downcase ? attr : param
|
|
356
|
-
hash[key] = _to_hash(value)
|
|
356
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
357
357
|
end
|
|
358
358
|
hash
|
|
359
359
|
end
|
|
@@ -367,15 +367,17 @@ module XeroRuby::Projects
|
|
|
367
367
|
# For object, use to_hash. Otherwise, just return the value
|
|
368
368
|
# @param [Object] value Any valid value
|
|
369
369
|
# @return [Hash] Returns the value in the form of hash
|
|
370
|
-
def _to_hash(value)
|
|
370
|
+
def _to_hash(value, downcase: false)
|
|
371
371
|
if value.is_a?(Array)
|
|
372
|
-
value.
|
|
372
|
+
value.map do |v|
|
|
373
|
+
v.to_hash(downcase: downcase)
|
|
374
|
+
end
|
|
373
375
|
elsif value.is_a?(Hash)
|
|
374
376
|
{}.tap do |hash|
|
|
375
|
-
value.
|
|
377
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
376
378
|
end
|
|
377
379
|
elsif value.respond_to? :to_hash
|
|
378
|
-
value.to_hash
|
|
380
|
+
value.to_hash(downcase: downcase)
|
|
379
381
|
else
|
|
380
382
|
value
|
|
381
383
|
end
|
|
@@ -383,8 +385,12 @@ module XeroRuby::Projects
|
|
|
383
385
|
|
|
384
386
|
def parse_date(datestring)
|
|
385
387
|
if datestring.include?('Date')
|
|
386
|
-
|
|
387
|
-
|
|
388
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
389
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
390
|
+
date = (date.to_i / 1000)
|
|
391
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
392
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
393
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
388
394
|
else # handle date 'types' for small subset of payroll API's
|
|
389
395
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
390
396
|
end
|
|
@@ -221,7 +221,7 @@ module XeroRuby::Projects
|
|
|
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::Projects
|
|
|
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::Projects
|
|
|
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
|
|
@@ -188,7 +188,7 @@ module XeroRuby::Projects
|
|
|
188
188
|
value = self.send(attr)
|
|
189
189
|
next if value.nil?
|
|
190
190
|
key = downcase ? attr : param
|
|
191
|
-
hash[key] = _to_hash(value)
|
|
191
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
192
192
|
end
|
|
193
193
|
hash
|
|
194
194
|
end
|
|
@@ -202,15 +202,17 @@ module XeroRuby::Projects
|
|
|
202
202
|
# For object, use to_hash. Otherwise, just return the value
|
|
203
203
|
# @param [Object] value Any valid value
|
|
204
204
|
# @return [Hash] Returns the value in the form of hash
|
|
205
|
-
def _to_hash(value)
|
|
205
|
+
def _to_hash(value, downcase: false)
|
|
206
206
|
if value.is_a?(Array)
|
|
207
|
-
value.
|
|
207
|
+
value.map do |v|
|
|
208
|
+
v.to_hash(downcase: downcase)
|
|
209
|
+
end
|
|
208
210
|
elsif value.is_a?(Hash)
|
|
209
211
|
{}.tap do |hash|
|
|
210
|
-
value.
|
|
212
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
211
213
|
end
|
|
212
214
|
elsif value.respond_to? :to_hash
|
|
213
|
-
value.to_hash
|
|
215
|
+
value.to_hash(downcase: downcase)
|
|
214
216
|
else
|
|
215
217
|
value
|
|
216
218
|
end
|
|
@@ -218,8 +220,12 @@ module XeroRuby::Projects
|
|
|
218
220
|
|
|
219
221
|
def parse_date(datestring)
|
|
220
222
|
if datestring.include?('Date')
|
|
221
|
-
|
|
222
|
-
|
|
223
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
224
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
225
|
+
date = (date.to_i / 1000)
|
|
226
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
227
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
228
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
else # handle date 'types' for small subset of payroll API's
|
|
224
230
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
225
231
|
end
|
|
@@ -188,7 +188,7 @@ module XeroRuby::Projects
|
|
|
188
188
|
value = self.send(attr)
|
|
189
189
|
next if value.nil?
|
|
190
190
|
key = downcase ? attr : param
|
|
191
|
-
hash[key] = _to_hash(value)
|
|
191
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
192
192
|
end
|
|
193
193
|
hash
|
|
194
194
|
end
|
|
@@ -202,15 +202,17 @@ module XeroRuby::Projects
|
|
|
202
202
|
# For object, use to_hash. Otherwise, just return the value
|
|
203
203
|
# @param [Object] value Any valid value
|
|
204
204
|
# @return [Hash] Returns the value in the form of hash
|
|
205
|
-
def _to_hash(value)
|
|
205
|
+
def _to_hash(value, downcase: false)
|
|
206
206
|
if value.is_a?(Array)
|
|
207
|
-
value.
|
|
207
|
+
value.map do |v|
|
|
208
|
+
v.to_hash(downcase: downcase)
|
|
209
|
+
end
|
|
208
210
|
elsif value.is_a?(Hash)
|
|
209
211
|
{}.tap do |hash|
|
|
210
|
-
value.
|
|
212
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
211
213
|
end
|
|
212
214
|
elsif value.respond_to? :to_hash
|
|
213
|
-
value.to_hash
|
|
215
|
+
value.to_hash(downcase: downcase)
|
|
214
216
|
else
|
|
215
217
|
value
|
|
216
218
|
end
|
|
@@ -218,8 +220,12 @@ module XeroRuby::Projects
|
|
|
218
220
|
|
|
219
221
|
def parse_date(datestring)
|
|
220
222
|
if datestring.include?('Date')
|
|
221
|
-
|
|
222
|
-
|
|
223
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
224
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
225
|
+
date = (date.to_i / 1000)
|
|
226
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
227
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
228
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
223
229
|
else # handle date 'types' for small subset of payroll API's
|
|
224
230
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
225
231
|
end
|
|
@@ -293,7 +293,7 @@ module XeroRuby::Projects
|
|
|
293
293
|
value = self.send(attr)
|
|
294
294
|
next if value.nil?
|
|
295
295
|
key = downcase ? attr : param
|
|
296
|
-
hash[key] = _to_hash(value)
|
|
296
|
+
hash[key] = _to_hash(value, downcase: downcase)
|
|
297
297
|
end
|
|
298
298
|
hash
|
|
299
299
|
end
|
|
@@ -307,15 +307,17 @@ module XeroRuby::Projects
|
|
|
307
307
|
# For object, use to_hash. Otherwise, just return the value
|
|
308
308
|
# @param [Object] value Any valid value
|
|
309
309
|
# @return [Hash] Returns the value in the form of hash
|
|
310
|
-
def _to_hash(value)
|
|
310
|
+
def _to_hash(value, downcase: false)
|
|
311
311
|
if value.is_a?(Array)
|
|
312
|
-
value.
|
|
312
|
+
value.map do |v|
|
|
313
|
+
v.to_hash(downcase: downcase)
|
|
314
|
+
end
|
|
313
315
|
elsif value.is_a?(Hash)
|
|
314
316
|
{}.tap do |hash|
|
|
315
|
-
value.
|
|
317
|
+
value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
|
|
316
318
|
end
|
|
317
319
|
elsif value.respond_to? :to_hash
|
|
318
|
-
value.to_hash
|
|
320
|
+
value.to_hash(downcase: downcase)
|
|
319
321
|
else
|
|
320
322
|
value
|
|
321
323
|
end
|
|
@@ -323,8 +325,12 @@ module XeroRuby::Projects
|
|
|
323
325
|
|
|
324
326
|
def parse_date(datestring)
|
|
325
327
|
if datestring.include?('Date')
|
|
326
|
-
|
|
327
|
-
|
|
328
|
+
date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
|
|
329
|
+
original, date, timezone = *date_pattern.match(datestring)
|
|
330
|
+
date = (date.to_i / 1000)
|
|
331
|
+
Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
|
|
332
|
+
elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
|
|
333
|
+
Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
328
334
|
else # handle date 'types' for small subset of payroll API's
|
|
329
335
|
Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
|
|
330
336
|
end
|