xero-ruby 8.0.0 → 9.1.0

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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xero-ruby/api/accounting_api.rb +36 -27
  3. data/lib/xero-ruby/api/payroll_nz_api.rb +330 -7
  4. data/lib/xero-ruby/models/accounting/bank_transactions.rb +23 -1
  5. data/lib/xero-ruby/models/accounting/contacts.rb +23 -1
  6. data/lib/xero-ruby/models/accounting/credit_notes.rb +23 -1
  7. data/lib/xero-ruby/models/accounting/invoices.rb +23 -1
  8. data/lib/xero-ruby/models/accounting/journals.rb +13 -1
  9. data/lib/xero-ruby/models/accounting/manual_journals.rb +23 -1
  10. data/lib/xero-ruby/models/accounting/organisation.rb +6 -2
  11. data/lib/xero-ruby/models/accounting/overpayments.rb +23 -1
  12. data/lib/xero-ruby/models/accounting/{page_info.rb → pagination.rb} +18 -19
  13. data/lib/xero-ruby/models/accounting/payments.rb +23 -1
  14. data/lib/xero-ruby/models/accounting/prepayments.rb +23 -1
  15. data/lib/xero-ruby/models/accounting/purchase_orders.rb +23 -1
  16. data/lib/xero-ruby/models/payroll_nz/employee.rb +24 -4
  17. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +24 -4
  18. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +14 -4
  19. data/lib/xero-ruby/models/payroll_nz/employee_working_pattern.rb +242 -0
  20. data/lib/xero-ruby/models/{accounting/get_payments_response.rb → payroll_nz/employee_working_pattern_with_working_weeks.rb} +39 -59
  21. data/lib/xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks_object.rb +242 -0
  22. data/lib/xero-ruby/models/{accounting/get_invoices_response.rb → payroll_nz/employee_working_pattern_with_working_weeks_request.rb} +32 -62
  23. data/lib/xero-ruby/models/{accounting/get_contacts_response.rb → payroll_nz/employee_working_patterns_object.rb} +27 -57
  24. data/lib/xero-ruby/models/payroll_nz/employment.rb +24 -4
  25. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +28 -4
  26. data/lib/xero-ruby/models/{accounting/get_manual_journals_response.rb → payroll_nz/working_week.rb} +95 -52
  27. data/lib/xero-ruby/version.rb +2 -2
  28. data/lib/xero-ruby.rb +7 -10
  29. metadata +9 -12
  30. data/lib/xero-ruby/models/accounting/get_bank_transactions_response.rb +0 -274
  31. data/lib/xero-ruby/models/accounting/get_credit_notes_response.rb +0 -274
  32. data/lib/xero-ruby/models/accounting/get_overpayments_response.rb +0 -274
  33. data/lib/xero-ruby/models/accounting/get_prepayments_response.rb +0 -274
  34. data/lib/xero-ruby/models/accounting/get_purchase_orders_response.rb +0 -274
@@ -51,6 +51,11 @@ module XeroRuby::PayrollNz
51
51
  SALARY ||= "Salary".freeze
52
52
  HOURLY ||= "Hourly".freeze
53
53
 
54
+ # The type of the Working Pattern of the corresponding salary and wages
55
+ attr_accessor :work_pattern_type
56
+ DAYS_AND_HOURS ||= "DaysAndHours".freeze
57
+ REGULAR_WEEK ||= "RegularWeek".freeze
58
+
54
59
  class EnumAttributeValidator
55
60
  attr_reader :datatype
56
61
  attr_reader :allowable_values
@@ -85,7 +90,8 @@ module XeroRuby::PayrollNz
85
90
  :'effective_from' => :'effectiveFrom',
86
91
  :'annual_salary' => :'annualSalary',
87
92
  :'status' => :'status',
88
- :'payment_type' => :'paymentType'
93
+ :'payment_type' => :'paymentType',
94
+ :'work_pattern_type' => :'workPatternType'
89
95
  }
90
96
  end
91
97
 
@@ -101,7 +107,8 @@ module XeroRuby::PayrollNz
101
107
  :'effective_from' => :'Date',
102
108
  :'annual_salary' => :'BigDecimal',
103
109
  :'status' => :'String',
104
- :'payment_type' => :'String'
110
+ :'payment_type' => :'String',
111
+ :'work_pattern_type' => :'String'
105
112
  }
106
113
  end
107
114
 
@@ -159,6 +166,10 @@ module XeroRuby::PayrollNz
159
166
  if attributes.key?(:'payment_type')
160
167
  self.payment_type = attributes[:'payment_type']
161
168
  end
169
+
170
+ if attributes.key?(:'work_pattern_type')
171
+ self.work_pattern_type = attributes[:'work_pattern_type']
172
+ end
162
173
  end
163
174
 
164
175
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -210,6 +221,8 @@ module XeroRuby::PayrollNz
210
221
  return false if @payment_type.nil?
211
222
  payment_type_validator = EnumAttributeValidator.new('String', ["Salary", "Hourly"])
212
223
  return false unless payment_type_validator.valid?(@payment_type)
224
+ work_pattern_type_validator = EnumAttributeValidator.new('String', ["DaysAndHours", "RegularWeek"])
225
+ return false unless work_pattern_type_validator.valid?(@work_pattern_type)
213
226
  true
214
227
  end
215
228
 
@@ -233,6 +246,16 @@ module XeroRuby::PayrollNz
233
246
  @payment_type = payment_type
234
247
  end
235
248
 
249
+ # Custom attribute writer method checking allowed values (enum).
250
+ # @param [Object] work_pattern_type Object to be assigned
251
+ def work_pattern_type=(work_pattern_type)
252
+ validator = EnumAttributeValidator.new('String', ["DaysAndHours", "RegularWeek"])
253
+ unless validator.valid?(work_pattern_type)
254
+ fail ArgumentError, "invalid value for \"work_pattern_type\", must be one of #{validator.allowable_values}."
255
+ end
256
+ @work_pattern_type = work_pattern_type
257
+ end
258
+
236
259
  # Checks equality by comparing each attribute.
237
260
  # @param [Object] Object to be compared
238
261
  def ==(o)
@@ -247,7 +270,8 @@ module XeroRuby::PayrollNz
247
270
  effective_from == o.effective_from &&
248
271
  annual_salary == o.annual_salary &&
249
272
  status == o.status &&
250
- payment_type == o.payment_type
273
+ payment_type == o.payment_type &&
274
+ work_pattern_type == o.work_pattern_type
251
275
  end
252
276
 
253
277
  # @see the `==` method
@@ -259,7 +283,7 @@ module XeroRuby::PayrollNz
259
283
  # Calculates hash code according to all attributes.
260
284
  # @return [Integer] Hash code
261
285
  def hash
262
- [salary_and_wages_id, earnings_rate_id, number_of_units_per_week, rate_per_unit, number_of_units_per_day, days_per_week, effective_from, annual_salary, status, payment_type].hash
286
+ [salary_and_wages_id, earnings_rate_id, number_of_units_per_week, rate_per_unit, number_of_units_per_day, days_per_week, effective_from, annual_salary, status, payment_type, work_pattern_type].hash
263
287
  end
264
288
 
265
289
  # Builds the object from hash
@@ -1,7 +1,7 @@
1
1
  =begin
2
- #Xero Accounting API
2
+ #Xero Payroll NZ
3
3
 
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ #This is the Xero Payroll API for orgs in the NZ region.
5
5
 
6
6
  Contact: api@xero.com
7
7
  Generated by: https://openapi-generator.tech
@@ -12,49 +12,54 @@ OpenAPI Generator version: 4.3.1
12
12
  require 'time'
13
13
  require 'date'
14
14
 
15
- module XeroRuby::Accounting
15
+ module XeroRuby::PayrollNz
16
16
  require 'bigdecimal'
17
17
 
18
- class GetManualJournalsResponse
19
-
20
- attr_accessor :id
18
+ class WorkingWeek
19
+ # The number of hours worked on a Monday
20
+ attr_accessor :monday
21
21
 
22
-
23
- attr_accessor :status
22
+ # The number of hours worked on a Tuesday
23
+ attr_accessor :tuesday
24
24
 
25
-
26
- attr_accessor :provider_name
25
+ # The number of hours worked on a Wednesday
26
+ attr_accessor :wednesday
27
27
 
28
-
29
- attr_accessor :date_time_utc
28
+ # The number of hours worked on a Thursday
29
+ attr_accessor :thursday
30
30
 
31
-
32
- attr_accessor :page_info
31
+ # The number of hours worked on a Friday
32
+ attr_accessor :friday
33
33
 
34
-
35
- attr_accessor :manual_journals
34
+ # The number of hours worked on a Saturday
35
+ attr_accessor :saturday
36
+
37
+ # The number of hours worked on a Sunday
38
+ attr_accessor :sunday
36
39
 
37
40
  # Attribute mapping from ruby-style variable name to JSON key.
38
41
  def self.attribute_map
39
42
  {
40
- :'id' => :'Id',
41
- :'status' => :'Status',
42
- :'provider_name' => :'ProviderName',
43
- :'date_time_utc' => :'DateTimeUTC',
44
- :'page_info' => :'PageInfo',
45
- :'manual_journals' => :'ManualJournals'
43
+ :'monday' => :'monday',
44
+ :'tuesday' => :'tuesday',
45
+ :'wednesday' => :'wednesday',
46
+ :'thursday' => :'thursday',
47
+ :'friday' => :'friday',
48
+ :'saturday' => :'saturday',
49
+ :'sunday' => :'sunday'
46
50
  }
47
51
  end
48
52
 
49
53
  # Attribute type mapping.
50
54
  def self.openapi_types
51
55
  {
52
- :'id' => :'String',
53
- :'status' => :'String',
54
- :'provider_name' => :'String',
55
- :'date_time_utc' => :'String',
56
- :'page_info' => :'PageInfo',
57
- :'manual_journals' => :'Array<ManualJournal>'
56
+ :'monday' => :'BigDecimal',
57
+ :'tuesday' => :'BigDecimal',
58
+ :'wednesday' => :'BigDecimal',
59
+ :'thursday' => :'BigDecimal',
60
+ :'friday' => :'BigDecimal',
61
+ :'saturday' => :'BigDecimal',
62
+ :'sunday' => :'BigDecimal'
58
63
  }
59
64
  end
60
65
 
@@ -62,41 +67,43 @@ module XeroRuby::Accounting
62
67
  # @param [Hash] attributes Model attributes in the form of hash
63
68
  def initialize(attributes = {})
64
69
  if (!attributes.is_a?(Hash))
65
- fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Accounting::GetManualJournalsResponse` initialize method"
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::PayrollNz::WorkingWeek` initialize method"
66
71
  end
67
72
 
68
73
  # check to see if the attribute exists and convert string to symbol for hash key
69
74
  attributes = attributes.each_with_object({}) { |(k, v), h|
70
75
  if (!self.class.attribute_map.key?(k.to_sym))
71
- fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Accounting::GetManualJournalsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::PayrollNz::WorkingWeek`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
72
77
  end
73
78
  h[k.to_sym] = v
74
79
  }
75
80
 
76
- if attributes.key?(:'id')
77
- self.id = attributes[:'id']
81
+ if attributes.key?(:'monday')
82
+ self.monday = attributes[:'monday']
78
83
  end
79
84
 
80
- if attributes.key?(:'status')
81
- self.status = attributes[:'status']
85
+ if attributes.key?(:'tuesday')
86
+ self.tuesday = attributes[:'tuesday']
82
87
  end
83
88
 
84
- if attributes.key?(:'provider_name')
85
- self.provider_name = attributes[:'provider_name']
89
+ if attributes.key?(:'wednesday')
90
+ self.wednesday = attributes[:'wednesday']
86
91
  end
87
92
 
88
- if attributes.key?(:'date_time_utc')
89
- self.date_time_utc = attributes[:'date_time_utc']
93
+ if attributes.key?(:'thursday')
94
+ self.thursday = attributes[:'thursday']
90
95
  end
91
96
 
92
- if attributes.key?(:'page_info')
93
- self.page_info = attributes[:'page_info']
97
+ if attributes.key?(:'friday')
98
+ self.friday = attributes[:'friday']
94
99
  end
95
100
 
96
- if attributes.key?(:'manual_journals')
97
- if (value = attributes[:'manual_journals']).is_a?(Array)
98
- self.manual_journals = value
99
- end
101
+ if attributes.key?(:'saturday')
102
+ self.saturday = attributes[:'saturday']
103
+ end
104
+
105
+ if attributes.key?(:'sunday')
106
+ self.sunday = attributes[:'sunday']
100
107
  end
101
108
  end
102
109
 
@@ -104,12 +111,47 @@ module XeroRuby::Accounting
104
111
  # @return Array for valid properties with the reasons
105
112
  def list_invalid_properties
106
113
  invalid_properties = Array.new
114
+ if @monday.nil?
115
+ invalid_properties.push('invalid value for "monday", monday cannot be nil.')
116
+ end
117
+
118
+ if @tuesday.nil?
119
+ invalid_properties.push('invalid value for "tuesday", tuesday cannot be nil.')
120
+ end
121
+
122
+ if @wednesday.nil?
123
+ invalid_properties.push('invalid value for "wednesday", wednesday cannot be nil.')
124
+ end
125
+
126
+ if @thursday.nil?
127
+ invalid_properties.push('invalid value for "thursday", thursday cannot be nil.')
128
+ end
129
+
130
+ if @friday.nil?
131
+ invalid_properties.push('invalid value for "friday", friday cannot be nil.')
132
+ end
133
+
134
+ if @saturday.nil?
135
+ invalid_properties.push('invalid value for "saturday", saturday cannot be nil.')
136
+ end
137
+
138
+ if @sunday.nil?
139
+ invalid_properties.push('invalid value for "sunday", sunday cannot be nil.')
140
+ end
141
+
107
142
  invalid_properties
108
143
  end
109
144
 
110
145
  # Check to see if the all the properties in the model are valid
111
146
  # @return true if the model is valid
112
147
  def valid?
148
+ return false if @monday.nil?
149
+ return false if @tuesday.nil?
150
+ return false if @wednesday.nil?
151
+ return false if @thursday.nil?
152
+ return false if @friday.nil?
153
+ return false if @saturday.nil?
154
+ return false if @sunday.nil?
113
155
  true
114
156
  end
115
157
 
@@ -118,12 +160,13 @@ module XeroRuby::Accounting
118
160
  def ==(o)
119
161
  return true if self.equal?(o)
120
162
  self.class == o.class &&
121
- id == o.id &&
122
- status == o.status &&
123
- provider_name == o.provider_name &&
124
- date_time_utc == o.date_time_utc &&
125
- page_info == o.page_info &&
126
- manual_journals == o.manual_journals
163
+ monday == o.monday &&
164
+ tuesday == o.tuesday &&
165
+ wednesday == o.wednesday &&
166
+ thursday == o.thursday &&
167
+ friday == o.friday &&
168
+ saturday == o.saturday &&
169
+ sunday == o.sunday
127
170
  end
128
171
 
129
172
  # @see the `==` method
@@ -135,7 +178,7 @@ module XeroRuby::Accounting
135
178
  # Calculates hash code according to all attributes.
136
179
  # @return [Integer] Hash code
137
180
  def hash
138
- [id, status, provider_name, date_time_utc, page_info, manual_journals].hash
181
+ [monday, tuesday, wednesday, thursday, friday, saturday, sunday].hash
139
182
  end
140
183
 
141
184
  # Builds the object from hash
@@ -204,7 +247,7 @@ module XeroRuby::Accounting
204
247
  end
205
248
  end
206
249
  else # model
207
- XeroRuby::Accounting.const_get(type).build_from_hash(value)
250
+ XeroRuby::PayrollNz.const_get(type).build_from_hash(value)
208
251
  end
209
252
  end
210
253
 
@@ -7,9 +7,9 @@ Contact: api@xero.com
7
7
  Generated by: https://openapi-generator.tech
8
8
  OpenAPI Generator version: 4.3.1
9
9
 
10
- The version of the XeroOpenAPI document: 5.0.0
10
+ The version of the XeroOpenAPI document: 6.1.1
11
11
  =end
12
12
 
13
13
  module XeroRuby
14
- VERSION = '8.0.0'
14
+ VERSION = '9.1.0'
15
15
  end
data/lib/xero-ruby.rb CHANGED
@@ -218,6 +218,11 @@ require 'xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object'
218
218
  require 'xero-ruby/models/payroll_nz/employee_statutory_sick_leaves'
219
219
  require 'xero-ruby/models/payroll_nz/employee_tax'
220
220
  require 'xero-ruby/models/payroll_nz/employee_tax_object'
221
+ require 'xero-ruby/models/payroll_nz/employee_working_pattern'
222
+ require 'xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks'
223
+ require 'xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks_object'
224
+ require 'xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks_request'
225
+ require 'xero-ruby/models/payroll_nz/employee_working_patterns_object'
221
226
  require 'xero-ruby/models/payroll_nz/employees'
222
227
  require 'xero-ruby/models/payroll_nz/employment'
223
228
  require 'xero-ruby/models/payroll_nz/employment_object'
@@ -271,6 +276,7 @@ require 'xero-ruby/models/payroll_nz/timesheet_object'
271
276
  require 'xero-ruby/models/payroll_nz/timesheets'
272
277
  require 'xero-ruby/models/payroll_nz/tracking_categories'
273
278
  require 'xero-ruby/models/payroll_nz/tracking_category'
279
+ require 'xero-ruby/models/payroll_nz/working_week'
274
280
  require 'xero-ruby/models/payroll_au/api_exception'
275
281
  require 'xero-ruby/models/payroll_au/account'
276
282
  require 'xero-ruby/models/payroll_au/account_type'
@@ -453,15 +459,6 @@ require 'xero-ruby/models/accounting/error'
453
459
  require 'xero-ruby/models/accounting/expense_claim'
454
460
  require 'xero-ruby/models/accounting/expense_claims'
455
461
  require 'xero-ruby/models/accounting/external_link'
456
- require 'xero-ruby/models/accounting/get_bank_transactions_response'
457
- require 'xero-ruby/models/accounting/get_contacts_response'
458
- require 'xero-ruby/models/accounting/get_credit_notes_response'
459
- require 'xero-ruby/models/accounting/get_invoices_response'
460
- require 'xero-ruby/models/accounting/get_manual_journals_response'
461
- require 'xero-ruby/models/accounting/get_overpayments_response'
462
- require 'xero-ruby/models/accounting/get_payments_response'
463
- require 'xero-ruby/models/accounting/get_prepayments_response'
464
- require 'xero-ruby/models/accounting/get_purchase_orders_response'
465
462
  require 'xero-ruby/models/accounting/history_record'
466
463
  require 'xero-ruby/models/accounting/history_records'
467
464
  require 'xero-ruby/models/accounting/import_summary'
@@ -492,7 +489,7 @@ require 'xero-ruby/models/accounting/organisation'
492
489
  require 'xero-ruby/models/accounting/organisations'
493
490
  require 'xero-ruby/models/accounting/overpayment'
494
491
  require 'xero-ruby/models/accounting/overpayments'
495
- require 'xero-ruby/models/accounting/page_info'
492
+ require 'xero-ruby/models/accounting/pagination'
496
493
  require 'xero-ruby/models/accounting/payment'
497
494
  require 'xero-ruby/models/accounting/payment_delete'
498
495
  require 'xero-ruby/models/accounting/payment_service'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xero-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xero API Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-01 00:00:00.000000000 Z
11
+ date: 2024-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -166,15 +166,6 @@ files:
166
166
  - lib/xero-ruby/models/accounting/expense_claim.rb
167
167
  - lib/xero-ruby/models/accounting/expense_claims.rb
168
168
  - lib/xero-ruby/models/accounting/external_link.rb
169
- - lib/xero-ruby/models/accounting/get_bank_transactions_response.rb
170
- - lib/xero-ruby/models/accounting/get_contacts_response.rb
171
- - lib/xero-ruby/models/accounting/get_credit_notes_response.rb
172
- - lib/xero-ruby/models/accounting/get_invoices_response.rb
173
- - lib/xero-ruby/models/accounting/get_manual_journals_response.rb
174
- - lib/xero-ruby/models/accounting/get_overpayments_response.rb
175
- - lib/xero-ruby/models/accounting/get_payments_response.rb
176
- - lib/xero-ruby/models/accounting/get_prepayments_response.rb
177
- - lib/xero-ruby/models/accounting/get_purchase_orders_response.rb
178
169
  - lib/xero-ruby/models/accounting/history_record.rb
179
170
  - lib/xero-ruby/models/accounting/history_records.rb
180
171
  - lib/xero-ruby/models/accounting/import_summary.rb
@@ -205,7 +196,7 @@ files:
205
196
  - lib/xero-ruby/models/accounting/organisations.rb
206
197
  - lib/xero-ruby/models/accounting/overpayment.rb
207
198
  - lib/xero-ruby/models/accounting/overpayments.rb
208
- - lib/xero-ruby/models/accounting/page_info.rb
199
+ - lib/xero-ruby/models/accounting/pagination.rb
209
200
  - lib/xero-ruby/models/accounting/payment.rb
210
201
  - lib/xero-ruby/models/accounting/payment_delete.rb
211
202
  - lib/xero-ruby/models/accounting/payment_service.rb
@@ -473,6 +464,11 @@ files:
473
464
  - lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb
474
465
  - lib/xero-ruby/models/payroll_nz/employee_tax.rb
475
466
  - lib/xero-ruby/models/payroll_nz/employee_tax_object.rb
467
+ - lib/xero-ruby/models/payroll_nz/employee_working_pattern.rb
468
+ - lib/xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks.rb
469
+ - lib/xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks_object.rb
470
+ - lib/xero-ruby/models/payroll_nz/employee_working_pattern_with_working_weeks_request.rb
471
+ - lib/xero-ruby/models/payroll_nz/employee_working_patterns_object.rb
476
472
  - lib/xero-ruby/models/payroll_nz/employees.rb
477
473
  - lib/xero-ruby/models/payroll_nz/employment.rb
478
474
  - lib/xero-ruby/models/payroll_nz/employment_object.rb
@@ -526,6 +522,7 @@ files:
526
522
  - lib/xero-ruby/models/payroll_nz/timesheets.rb
527
523
  - lib/xero-ruby/models/payroll_nz/tracking_categories.rb
528
524
  - lib/xero-ruby/models/payroll_nz/tracking_category.rb
525
+ - lib/xero-ruby/models/payroll_nz/working_week.rb
529
526
  - lib/xero-ruby/models/payroll_uk/account.rb
530
527
  - lib/xero-ruby/models/payroll_uk/accounts.rb
531
528
  - lib/xero-ruby/models/payroll_uk/address.rb