xero-ruby 2.6.2 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -8
- data/lib/xero-ruby.rb +4 -2
- data/lib/xero-ruby/api/accounting_api.rb +446 -446
- data/lib/xero-ruby/api/asset_api.rb +3 -7
- data/lib/xero-ruby/api/files_api.rb +49 -55
- data/lib/xero-ruby/api/payroll_au_api.rb +63 -63
- data/lib/xero-ruby/api/payroll_nz_api.rb +171 -171
- data/lib/xero-ruby/api/payroll_uk_api.rb +173 -173
- data/lib/xero-ruby/api/project_api.rb +45 -45
- data/lib/xero-ruby/api_client.rb +22 -87
- data/lib/xero-ruby/api_error.rb +1 -1
- data/lib/xero-ruby/configuration.rb +3 -3
- data/lib/xero-ruby/models/accounting/account.rb +1 -1
- data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts_payable.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts_receivable.rb +1 -1
- data/lib/xero-ruby/models/accounting/action.rb +1 -1
- data/lib/xero-ruby/models/accounting/actions.rb +1 -1
- data/lib/xero-ruby/models/accounting/address.rb +1 -1
- data/lib/xero-ruby/models/accounting/address_for_organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/allocation.rb +1 -1
- data/lib/xero-ruby/models/accounting/allocations.rb +1 -1
- data/lib/xero-ruby/models/accounting/attachment.rb +1 -1
- data/lib/xero-ruby/models/accounting/attachments.rb +1 -1
- data/lib/xero-ruby/models/accounting/balance_details.rb +1 -1
- data/lib/xero-ruby/models/accounting/balances.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transaction.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transactions.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transfer.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transfers.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payment.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payment_details.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payments.rb +1 -1
- data/lib/xero-ruby/models/accounting/bill.rb +1 -1
- data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
- data/lib/xero-ruby/models/accounting/branding_themes.rb +1 -1
- data/lib/xero-ruby/models/accounting/cis_org_setting.rb +1 -1
- data/lib/xero-ruby/models/{files/file_response204.rb → accounting/cis_org_settings.rb} +16 -14
- data/lib/xero-ruby/models/accounting/cis_setting.rb +1 -1
- data/lib/xero-ruby/models/accounting/cis_settings.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_group.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_groups.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_person.rb +1 -1
- data/lib/xero-ruby/models/accounting/contacts.rb +1 -1
- data/lib/xero-ruby/models/accounting/conversion_balances.rb +1 -1
- data/lib/xero-ruby/models/accounting/conversion_date.rb +1 -1
- data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
- data/lib/xero-ruby/models/accounting/credit_note.rb +18 -6
- data/lib/xero-ruby/models/accounting/credit_notes.rb +1 -1
- data/lib/xero-ruby/models/accounting/currencies.rb +1 -1
- data/lib/xero-ruby/models/accounting/currency.rb +1 -1
- data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
- data/lib/xero-ruby/models/accounting/element.rb +1 -1
- data/lib/xero-ruby/models/accounting/employee.rb +1 -1
- data/lib/xero-ruby/models/accounting/employees.rb +1 -1
- data/lib/xero-ruby/models/accounting/error.rb +1 -1
- data/lib/xero-ruby/models/accounting/expense_claim.rb +1 -1
- data/lib/xero-ruby/models/accounting/expense_claims.rb +1 -1
- data/lib/xero-ruby/models/accounting/external_link.rb +1 -1
- data/lib/xero-ruby/models/accounting/history_record.rb +1 -1
- data/lib/xero-ruby/models/accounting/history_records.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_object.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice_reminder.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice_reminders.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/item.rb +1 -1
- data/lib/xero-ruby/models/accounting/items.rb +1 -1
- data/lib/xero-ruby/models/accounting/journal.rb +1 -1
- data/lib/xero-ruby/models/accounting/journal_line.rb +1 -1
- data/lib/xero-ruby/models/accounting/journals.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_item.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_item_tracking.rb +1 -1
- data/lib/xero-ruby/models/accounting/linked_transaction.rb +1 -1
- data/lib/xero-ruby/models/accounting/linked_transactions.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journal.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journal_line.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journals.rb +1 -1
- data/lib/xero-ruby/models/accounting/online_invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/online_invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/organisations.rb +1 -1
- data/lib/xero-ruby/models/accounting/overpayment.rb +1 -1
- data/lib/xero-ruby/models/accounting/overpayments.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment.rb +12 -2
- data/lib/xero-ruby/models/accounting/payment_delete.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_service.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_services.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_term.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/payments.rb +1 -1
- data/lib/xero-ruby/models/accounting/phone.rb +1 -1
- data/lib/xero-ruby/models/accounting/prepayment.rb +1 -1
- data/lib/xero-ruby/models/accounting/prepayments.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase_order.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase_orders.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote_status_codes.rb +1 -1
- data/lib/xero-ruby/models/accounting/quotes.rb +1 -1
- data/lib/xero-ruby/models/accounting/receipt.rb +1 -1
- data/lib/xero-ruby/models/accounting/receipts.rb +1 -1
- data/lib/xero-ruby/models/accounting/repeating_invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/repeating_invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/report.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_attribute.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_cell.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_fields.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_row.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_rows.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_with_row.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_with_rows.rb +1 -1
- data/lib/xero-ruby/models/accounting/reports.rb +1 -1
- data/lib/xero-ruby/models/accounting/request_empty.rb +1 -1
- data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +1 -1
- data/lib/xero-ruby/models/accounting/schedule.rb +1 -1
- data/lib/xero-ruby/models/accounting/setup.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_component.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_rate.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_rates.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +1 -1
- data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_categories.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_category.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_option.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_options.rb +1 -1
- data/lib/xero-ruby/models/accounting/user.rb +1 -1
- data/lib/xero-ruby/models/accounting/users.rb +1 -1
- data/lib/xero-ruby/models/accounting/validation_error.rb +1 -1
- data/lib/xero-ruby/models/assets/asset.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_status.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_type.rb +1 -1
- data/lib/xero-ruby/models/assets/assets.rb +1 -1
- data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +1 -1
- data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +1 -1
- data/lib/xero-ruby/models/assets/error.rb +1 -1
- data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +2 -2
- data/lib/xero-ruby/models/assets/pagination.rb +1 -1
- data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +2 -2
- data/lib/xero-ruby/models/assets/setting.rb +1 -1
- data/lib/xero-ruby/models/files/association.rb +1 -1
- data/lib/xero-ruby/models/files/file_object.rb +1 -1
- data/lib/xero-ruby/models/files/files.rb +1 -1
- data/lib/xero-ruby/models/files/folder.rb +1 -1
- data/lib/xero-ruby/models/files/folders.rb +1 -1
- data/lib/xero-ruby/models/files/inline_object.rb +1 -1
- data/lib/xero-ruby/models/files/object_group.rb +1 -1
- data/lib/xero-ruby/models/files/object_type.rb +1 -1
- data/lib/xero-ruby/models/files/user.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/account.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/account_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/allowance_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/api_exception.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/bank_account.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/calendar_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employee.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employees.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/home_address.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_application.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_applications.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_balance.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_period.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/opening_balances.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_item.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_items.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_run.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_runs.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_template.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslips.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/rate_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/state.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_funds.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_line.rb +2 -2
- data/lib/xero-ruby/models/payroll_au/super_membership.rb +2 -2
- data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tax_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheets.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/validation_error.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/timesheet.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +1 -1
- data/lib/xero-ruby/models/payroll_uk/timesheet.rb +1 -1
- data/lib/xero-ruby/string_serialization.rb +52 -0
- data/lib/xero-ruby/version.rb +3 -3
- data/lib/xero-ruby/where.rb +65 -0
- data/spec/configuration_spec.rb +1 -1
- data/spec/where_spec.rb +82 -0
- metadata +8 -6
- data/spec/files/models/file_response204_spec.rb +0 -41
@@ -1,5 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
#Xero Payroll AU
|
2
|
+
#Xero Payroll AU API
|
3
3
|
|
4
4
|
#This is the Xero Payroll API for orgs in Australia region.
|
5
5
|
|
@@ -25,7 +25,7 @@ module XeroRuby::PayrollAu
|
|
25
25
|
|
26
26
|
attr_accessor :calculation_type
|
27
27
|
|
28
|
-
# amount of
|
28
|
+
# amount of minimum earnings
|
29
29
|
attr_accessor :minimum_monthly_earnings
|
30
30
|
|
31
31
|
# expense account code
|
@@ -1,5 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
#Xero Payroll AU
|
2
|
+
#Xero Payroll AU API
|
3
3
|
|
4
4
|
#This is the Xero Payroll API for orgs in Australia region.
|
5
5
|
|
@@ -22,7 +22,7 @@ module XeroRuby::PayrollAu
|
|
22
22
|
# Xero identifier for super fund
|
23
23
|
attr_accessor :super_fund_id
|
24
24
|
|
25
|
-
# The
|
25
|
+
# The membership number assigned to the employee by the super fund.
|
26
26
|
attr_accessor :employee_number
|
27
27
|
|
28
28
|
# Attribute mapping from ruby-style variable name to JSON key.
|
@@ -43,7 +43,7 @@ module XeroRuby::PayrollNz
|
|
43
43
|
# Identifies if the earnings is using an average daily pay rate
|
44
44
|
attr_accessor :is_average_daily_pay_rate
|
45
45
|
|
46
|
-
# Flag to
|
46
|
+
# Flag to identify whether the earnings line is system generated or not.
|
47
47
|
attr_accessor :is_system_generated
|
48
48
|
|
49
49
|
# Attribute mapping from ruby-style variable name to JSON key.
|
@@ -43,7 +43,7 @@ module XeroRuby::PayrollNz
|
|
43
43
|
# Whether the sick leave was pregnancy related
|
44
44
|
attr_accessor :is_pregnancy_related
|
45
45
|
|
46
|
-
# Whether the employee provided
|
46
|
+
# Whether the employee provided sufficient notice and documentation as required by the employer supporting the sick leave request
|
47
47
|
attr_accessor :sufficient_notice
|
48
48
|
|
49
49
|
# Whether the leave was entitled to receive payment
|
@@ -43,7 +43,7 @@ module XeroRuby::PayrollNz
|
|
43
43
|
# Identifies if the earnings is using an average daily pay rate
|
44
44
|
attr_accessor :is_average_daily_pay_rate
|
45
45
|
|
46
|
-
# Flag to
|
46
|
+
# Flag to identify whether the earnings line is system generated or not.
|
47
47
|
attr_accessor :is_system_generated
|
48
48
|
|
49
49
|
# Attribute mapping from ruby-style variable name to JSON key.
|
@@ -19,7 +19,7 @@ module XeroRuby::PayrollNz
|
|
19
19
|
# The Xero identifier for a Timesheet
|
20
20
|
attr_accessor :timesheet_id
|
21
21
|
|
22
|
-
# The Xero identifier for the Payroll
|
22
|
+
# The Xero identifier for the Payroll Calendar that the Timesheet applies to
|
23
23
|
attr_accessor :payroll_calendar_id
|
24
24
|
|
25
25
|
# The Xero identifier for the Employee that the Timesheet is for
|
@@ -43,7 +43,7 @@ module XeroRuby::PayrollNz
|
|
43
43
|
# Identifies if the earnings is using an average daily pay rate
|
44
44
|
attr_accessor :is_average_daily_pay_rate
|
45
45
|
|
46
|
-
# Flag to
|
46
|
+
# Flag to identify whether the earnings line is system generated or not.
|
47
47
|
attr_accessor :is_system_generated
|
48
48
|
|
49
49
|
# Attribute mapping from ruby-style variable name to JSON key.
|
@@ -43,7 +43,7 @@ module XeroRuby::PayrollUk
|
|
43
43
|
# Whether the sick leave was pregnancy related
|
44
44
|
attr_accessor :is_pregnancy_related
|
45
45
|
|
46
|
-
# Whether the employee provided
|
46
|
+
# Whether the employee provided sufficient notice and documentation as required by the employer supporting the sick leave request
|
47
47
|
attr_accessor :sufficient_notice
|
48
48
|
|
49
49
|
# Whether the leave was entitled to receive payment
|
@@ -19,7 +19,7 @@ module XeroRuby::PayrollUk
|
|
19
19
|
# The Xero identifier for a Timesheet
|
20
20
|
attr_accessor :timesheet_id
|
21
21
|
|
22
|
-
# The Xero identifier for the Payroll
|
22
|
+
# The Xero identifier for the Payroll Calendar that the Timesheet applies to
|
23
23
|
attr_accessor :payroll_calendar_id
|
24
24
|
|
25
25
|
# The Xero identifier for the Employee that the Timesheet is for
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module XeroRuby
|
2
|
+
module StringSerialization
|
3
|
+
# START - Re-serializes snake_cased params to PascalCase required by XeroAPI
|
4
|
+
def to_camel_keys(value = self)
|
5
|
+
case value
|
6
|
+
when Array
|
7
|
+
value.map { |v| to_camel_keys(v) }
|
8
|
+
when Hash
|
9
|
+
Hash[value.map { |k, v| [camelize_key(k), to_camel_keys(v)] }]
|
10
|
+
else
|
11
|
+
value
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def camelize_key(key, first_upper = true)
|
16
|
+
if key.is_a? Symbol
|
17
|
+
camelize(key.to_s, first_upper).to_sym
|
18
|
+
elsif key.is_a? String
|
19
|
+
camelize(key, first_upper)
|
20
|
+
else
|
21
|
+
key # can't camelize anything except strings and symbols
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def camelize(word, first_upper = true)
|
26
|
+
if first_upper
|
27
|
+
str = word.to_s
|
28
|
+
str = gsubbed(str, /(?:^|_)([^_\s]+)/)
|
29
|
+
str = gsubbed(str, %r{/([^/]*)}, "::")
|
30
|
+
str
|
31
|
+
else
|
32
|
+
parts = word.split("_", 2)
|
33
|
+
parts[0] << camelize(parts[1]) if parts.size > 1
|
34
|
+
parts[0] || ""
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def gsubbed(str, pattern, extra = "")
|
39
|
+
key_map_scronyms = {}
|
40
|
+
str = str.gsub(pattern) do
|
41
|
+
extra + (key_map_scronyms[Regexp.last_match(1)] || capitalize_first(Regexp.last_match(1)))
|
42
|
+
end
|
43
|
+
str
|
44
|
+
end
|
45
|
+
|
46
|
+
def capitalize_first(word)
|
47
|
+
split = word.split('')
|
48
|
+
"#{split[0].capitalize}#{split[1..-1].join}"
|
49
|
+
end
|
50
|
+
# END - Re-serializes snake_cased params to PascalCase required by XeroAPI
|
51
|
+
end
|
52
|
+
end
|