ynab 0.7.0 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 311e29f4028a2e5f62f1063d1f4ab93f80b7a84c
4
- data.tar.gz: bf1f7c152d6fd1b47f6d5579d3db4d4382c427d9
3
+ metadata.gz: 39744a3c683ef3fcc20c118414fbc8539fa354d3
4
+ data.tar.gz: afa9589670fe68ae266c39964ee02da4c87dfdcf
5
5
  SHA512:
6
- metadata.gz: ef7959d67c285d6f7afceed65bc2b44e3dcb8fa8fd730033142a8b1f08447579bc9b415779a43adff38b34f772b1a37b1f10f8c4d70373e3a6c9afb60473528c
7
- data.tar.gz: b7454f90ce3c7a7e5b81f9403983d7bf81a8d42c8a26f311502734f849c83a1fdf17ca71634cd0f45dc8017437cf497a0826d418e7233bde8a6036912cf56414
6
+ metadata.gz: dbe683c41f006efab63120c75441ef5d4acb2710dca0152c835490937135970cb807d242ece8f669e6b1029c5a1ccdf3d84fc7e61bb99ef945f566ed25f4af86
7
+ data.tar.gz: 4a5bf3b5cfd557246e3424efcf232b4c7efc5a72baba629d1b5d4809f97afe7badf652b8f1175665135d2bf6111884c8f5977328b8d60ef1d4fedb9b91f3ad60
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ynab (0.7.0)
4
+ ynab (0.8.0)
5
5
  json (~> 2.1, >= 2.1.0)
6
6
  typhoeus (~> 1.0, >= 1.0.1)
7
7
 
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ desc "Run Swagger Code Generator to update the client from the Swagger spec"
14
14
  task :generate do
15
15
  # Download latest swagger spec
16
16
  spec_filename = 'spec-v1-swagger.json'
17
- #sh "rm #{spec_filename} && wget https://api.youneedabudget.com/papi/#{spec_filename}"
17
+ sh "rm #{spec_filename} && wget https://api.youneedabudget.com/papi/#{spec_filename}"
18
18
 
19
19
  # Replace nullable types defined as i.e. ["string", "null"] in the spec to simply "string" as the generator does not understand the nullable format.
20
20
  # Examples:
data/config.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "gemName": "ynab",
3
3
  "moduleName": "YnabApi",
4
- "gemVersion": "0.7.0",
4
+ "gemVersion": "0.8.0",
5
5
  "gemDescription": "Ruby gem wrapper for the YNAB API. Read the documentation at https://api.youneedabudget.com",
6
6
  "gemHomepage": "https://github.com/ynab/ynab-sdk-ruby",
7
7
  "gemLicense": "Apache-2.0",
data/docs/Account.md CHANGED
@@ -5,12 +5,13 @@ Name | Type | Description | Notes
5
5
  ------------ | ------------- | ------------- | -------------
6
6
  **id** | **String** | |
7
7
  **name** | **String** | |
8
- **type** | **String** | |
8
+ **type** | **String** | The type of account. Note: payPal, merchantAccount, investmentAccount, and mortgage types have been deprecated and will be removed in the future. |
9
9
  **on_budget** | **BOOLEAN** | Whether this account is on budget or not |
10
10
  **closed** | **BOOLEAN** | Whether this account is closed or not |
11
11
  **note** | **String** | |
12
12
  **balance** | **Float** | The current balance of the account in milliunits format |
13
13
  **cleared_balance** | **Float** | The current cleared balance of the account in milliunits format |
14
14
  **uncleared_balance** | **Float** | The current uncleared balance of the account in milliunits format |
15
+ **deleted** | **BOOLEAN** | Whether or not the account has been deleted. Deleted accounts will only be included in delta requests. |
15
16
 
16
17
 
data/docs/Category.md CHANGED
@@ -11,5 +11,6 @@ Name | Type | Description | Notes
11
11
  **budgeted** | **Float** | Budgeted amount in current month in milliunits format |
12
12
  **activity** | **Float** | Activity amount in current month in milliunits format |
13
13
  **balance** | **Float** | Balance in current month in milliunits format |
14
+ **deleted** | **BOOLEAN** | Whether or not the category has been deleted. Deleted categories will only be included in delta requests. |
14
15
 
15
16
 
@@ -6,5 +6,6 @@ Name | Type | Description | Notes
6
6
  **id** | **String** | |
7
7
  **name** | **String** | |
8
8
  **hidden** | **BOOLEAN** | Whether or not the category group is hidden |
9
+ **deleted** | **BOOLEAN** | Whether or not the category group has been deleted. Deleted category groups will only be included in delta requests. |
9
10
 
10
11
 
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
6
6
  **id** | **String** | |
7
7
  **name** | **String** | |
8
8
  **hidden** | **BOOLEAN** | Whether or not the category group is hidden |
9
+ **deleted** | **BOOLEAN** | Whether or not the category group has been deleted. Deleted category groups will only be included in delta requests. |
9
10
  **categories** | [**Array<Category>**](Category.md) | Category group categories |
10
11
 
11
12
 
@@ -5,7 +5,7 @@ Name | Type | Description | Notes
5
5
  ------------ | ------------- | ------------- | -------------
6
6
  **iso_code** | **String** | |
7
7
  **example_format** | **String** | |
8
- **decimal_digits** | **String** | |
8
+ **decimal_digits** | **Float** | |
9
9
  **decimal_separator** | **String** | |
10
10
  **symbol_first** | **BOOLEAN** | |
11
11
  **group_separator** | **String** | |
@@ -15,6 +15,7 @@ Name | Type | Description | Notes
15
15
  **category_id** | **String** | |
16
16
  **transfer_account_id** | **String** | |
17
17
  **import_id** | **String** | If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. |
18
+ **deleted** | **BOOLEAN** | Whether or not the transaction has been deleted. Deleted transactions will only be included in delta requests. |
18
19
  **type** | **String** | Whether the hybrid transaction represents a regular transaction or a subtransaction |
19
20
  **parent_transaction_id** | **String** | For subtransaction types, this is the id of the pararent transaction. For transaction types, this id will be always be null. |
20
21
  **account_name** | **String** | |
data/docs/Payee.md CHANGED
@@ -6,5 +6,6 @@ Name | Type | Description | Notes
6
6
  **id** | **String** | |
7
7
  **name** | **String** | |
8
8
  **transfer_account_id** | **String** | If a transfer payee, the account_id to which this payee transfers to |
9
+ **deleted** | **BOOLEAN** | Whether or not the payee has been deleted. Deleted payees will only be included in delta requests. |
9
10
 
10
11
 
@@ -7,5 +7,6 @@ Name | Type | Description | Notes
7
7
  **payee_id** | **String** | |
8
8
  **latitude** | **String** | |
9
9
  **longitude** | **String** | |
10
+ **deleted** | **BOOLEAN** | Whether or not the payee location has been deleted. Deleted payee locations will only be included in delta requests. |
10
11
 
11
12
 
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
9
9
  **memo** | **String** | |
10
10
  **payee_id** | **String** | |
11
11
  **category_id** | **String** | |
12
- **transfer_account_id** | **String** | If a transfer, the account_id which the scheduled sub transaction transfers to |
12
+ **transfer_account_id** | **String** | If a transfer, the account_id which the scheduled subtransaction transfers to |
13
+ **deleted** | **BOOLEAN** | Whether or not the scheduled subtransaction has been deleted. Deleted scheduled subtransactions will only be included in delta requests. |
13
14
 
14
15
 
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
14
14
  **payee_id** | **String** | |
15
15
  **category_id** | **String** | |
16
16
  **transfer_account_id** | **String** | If a transfer, the account_id which the scheduled transaction transfers to |
17
+ **deleted** | **BOOLEAN** | Whether or not the scheduled transaction has been deleted. Deleted scheduled transactions will only be included in delta requests. |
17
18
  **account_name** | **String** | |
18
19
  **payee_name** | **String** | |
19
20
  **category_name** | **String** | |
@@ -14,5 +14,6 @@ Name | Type | Description | Notes
14
14
  **payee_id** | **String** | |
15
15
  **category_id** | **String** | |
16
16
  **transfer_account_id** | **String** | If a transfer, the account_id which the scheduled transaction transfers to |
17
+ **deleted** | **BOOLEAN** | Whether or not the scheduled transaction has been deleted. Deleted scheduled transactions will only be included in delta requests. |
17
18
 
18
19
 
@@ -10,5 +10,6 @@ Name | Type | Description | Notes
10
10
  **payee_id** | **String** | |
11
11
  **category_id** | **String** | |
12
12
  **transfer_account_id** | **String** | If a transfer, the account_id which the subtransaction transfers to |
13
+ **deleted** | **BOOLEAN** | Whether or not the subtransaction has been deleted. Deleted subtransactions will only be included in delta requests. |
13
14
 
14
15
 
@@ -15,6 +15,7 @@ Name | Type | Description | Notes
15
15
  **category_id** | **String** | |
16
16
  **transfer_account_id** | **String** | |
17
17
  **import_id** | **String** | If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. |
18
+ **deleted** | **BOOLEAN** | Whether or not the transaction has been deleted. Deleted transactions will only be included in delta requests. |
18
19
  **account_name** | **String** | |
19
20
  **payee_name** | **String** | |
20
21
  **category_name** | **String** | |
@@ -15,5 +15,6 @@ Name | Type | Description | Notes
15
15
  **category_id** | **String** | |
16
16
  **transfer_account_id** | **String** | |
17
17
  **import_id** | **String** | If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. |
18
+ **deleted** | **BOOLEAN** | Whether or not the transaction has been deleted. Deleted transactions will only be included in delta requests. |
18
19
 
19
20
 
@@ -18,6 +18,7 @@ module YnabApi
18
18
 
19
19
  attr_accessor :name
20
20
 
21
+ # The type of account. Note: payPal, merchantAccount, investmentAccount, and mortgage types have been deprecated and will be removed in the future.
21
22
  attr_accessor :type
22
23
 
23
24
  # Whether this account is on budget or not
@@ -37,6 +38,9 @@ module YnabApi
37
38
  # The current uncleared balance of the account in milliunits format
38
39
  attr_accessor :uncleared_balance
39
40
 
41
+ # Whether or not the account has been deleted. Deleted accounts will only be included in delta requests.
42
+ attr_accessor :deleted
43
+
40
44
  class EnumAttributeValidator
41
45
  attr_reader :datatype
42
46
  attr_reader :allowable_values
@@ -70,7 +74,8 @@ module YnabApi
70
74
  :'note' => :'note',
71
75
  :'balance' => :'balance',
72
76
  :'cleared_balance' => :'cleared_balance',
73
- :'uncleared_balance' => :'uncleared_balance'
77
+ :'uncleared_balance' => :'uncleared_balance',
78
+ :'deleted' => :'deleted'
74
79
  }
75
80
  end
76
81
 
@@ -85,7 +90,8 @@ module YnabApi
85
90
  :'note' => :'String',
86
91
  :'balance' => :'Float',
87
92
  :'cleared_balance' => :'Float',
88
- :'uncleared_balance' => :'Float'
93
+ :'uncleared_balance' => :'Float',
94
+ :'deleted' => :'BOOLEAN'
89
95
  }
90
96
  end
91
97
 
@@ -132,6 +138,10 @@ module YnabApi
132
138
  if attributes.has_key?(:'uncleared_balance')
133
139
  self.uncleared_balance = attributes[:'uncleared_balance']
134
140
  end
141
+
142
+ if attributes.has_key?(:'deleted')
143
+ self.deleted = attributes[:'deleted']
144
+ end
135
145
  end
136
146
 
137
147
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -174,6 +184,10 @@ module YnabApi
174
184
  invalid_properties.push('invalid value for "uncleared_balance", uncleared_balance cannot be nil.')
175
185
  end
176
186
 
187
+ if @deleted.nil?
188
+ invalid_properties.push('invalid value for "deleted", deleted cannot be nil.')
189
+ end
190
+
177
191
  invalid_properties
178
192
  end
179
193
 
@@ -183,7 +197,7 @@ module YnabApi
183
197
  return false if @id.nil?
184
198
  return false if @name.nil?
185
199
  return false if @type.nil?
186
- type_validator = EnumAttributeValidator.new('String', ['checking', 'savings', 'creditCard', 'cash', 'lineOfCredit', 'merchantAccount', 'payPal', 'investmentAccount', 'mortgage', 'otherAsset', 'otherLiability'])
200
+ type_validator = EnumAttributeValidator.new('String', ['checking', 'savings', 'cash', 'creditCard', 'lineOfCredit', 'otherAsset', 'otherLiability', 'payPal', 'merchantAccount', 'investmentAccount', 'mortgage'])
187
201
  return false unless type_validator.valid?(@type)
188
202
  return false if @on_budget.nil?
189
203
  return false if @closed.nil?
@@ -191,13 +205,14 @@ module YnabApi
191
205
  return false if @balance.nil?
192
206
  return false if @cleared_balance.nil?
193
207
  return false if @uncleared_balance.nil?
208
+ return false if @deleted.nil?
194
209
  true
195
210
  end
196
211
 
197
212
  # Custom attribute writer method checking allowed values (enum).
198
213
  # @param [Object] type Object to be assigned
199
214
  def type=(type)
200
- validator = EnumAttributeValidator.new('String', ['checking', 'savings', 'creditCard', 'cash', 'lineOfCredit', 'merchantAccount', 'payPal', 'investmentAccount', 'mortgage', 'otherAsset', 'otherLiability'])
215
+ validator = EnumAttributeValidator.new('String', ['checking', 'savings', 'cash', 'creditCard', 'lineOfCredit', 'otherAsset', 'otherLiability', 'payPal', 'merchantAccount', 'investmentAccount', 'mortgage'])
201
216
  unless validator.valid?(type)
202
217
  fail ArgumentError, 'invalid value for "type", must be one of #{validator.allowable_values}.'
203
218
  end
@@ -217,7 +232,8 @@ module YnabApi
217
232
  note == o.note &&
218
233
  balance == o.balance &&
219
234
  cleared_balance == o.cleared_balance &&
220
- uncleared_balance == o.uncleared_balance
235
+ uncleared_balance == o.uncleared_balance &&
236
+ deleted == o.deleted
221
237
  end
222
238
 
223
239
  # @see the `==` method
@@ -229,7 +245,7 @@ module YnabApi
229
245
  # Calculates hash code according to all attributes.
230
246
  # @return [Fixnum] Hash code
231
247
  def hash
232
- [id, name, type, on_budget, closed, note, balance, cleared_balance, uncleared_balance].hash
248
+ [id, name, type, on_budget, closed, note, balance, cleared_balance, uncleared_balance, deleted].hash
233
249
  end
234
250
 
235
251
  # Builds the object from hash
@@ -34,6 +34,9 @@ module YnabApi
34
34
  # Balance in current month in milliunits format
35
35
  attr_accessor :balance
36
36
 
37
+ # Whether or not the category has been deleted. Deleted categories will only be included in delta requests.
38
+ attr_accessor :deleted
39
+
37
40
  # Attribute mapping from ruby-style variable name to JSON key.
38
41
  def self.attribute_map
39
42
  {
@@ -44,7 +47,8 @@ module YnabApi
44
47
  :'note' => :'note',
45
48
  :'budgeted' => :'budgeted',
46
49
  :'activity' => :'activity',
47
- :'balance' => :'balance'
50
+ :'balance' => :'balance',
51
+ :'deleted' => :'deleted'
48
52
  }
49
53
  end
50
54
 
@@ -58,7 +62,8 @@ module YnabApi
58
62
  :'note' => :'String',
59
63
  :'budgeted' => :'Float',
60
64
  :'activity' => :'Float',
61
- :'balance' => :'Float'
65
+ :'balance' => :'Float',
66
+ :'deleted' => :'BOOLEAN'
62
67
  }
63
68
  end
64
69
 
@@ -101,6 +106,10 @@ module YnabApi
101
106
  if attributes.has_key?(:'balance')
102
107
  self.balance = attributes[:'balance']
103
108
  end
109
+
110
+ if attributes.has_key?(:'deleted')
111
+ self.deleted = attributes[:'deleted']
112
+ end
104
113
  end
105
114
 
106
115
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -139,6 +148,10 @@ module YnabApi
139
148
  invalid_properties.push('invalid value for "balance", balance cannot be nil.')
140
149
  end
141
150
 
151
+ if @deleted.nil?
152
+ invalid_properties.push('invalid value for "deleted", deleted cannot be nil.')
153
+ end
154
+
142
155
  invalid_properties
143
156
  end
144
157
 
@@ -153,6 +166,7 @@ module YnabApi
153
166
  return false if @budgeted.nil?
154
167
  return false if @activity.nil?
155
168
  return false if @balance.nil?
169
+ return false if @deleted.nil?
156
170
  true
157
171
  end
158
172
 
@@ -168,7 +182,8 @@ module YnabApi
168
182
  note == o.note &&
169
183
  budgeted == o.budgeted &&
170
184
  activity == o.activity &&
171
- balance == o.balance
185
+ balance == o.balance &&
186
+ deleted == o.deleted
172
187
  end
173
188
 
174
189
  # @see the `==` method
@@ -180,7 +195,7 @@ module YnabApi
180
195
  # Calculates hash code according to all attributes.
181
196
  # @return [Fixnum] Hash code
182
197
  def hash
183
- [id, category_group_id, name, hidden, note, budgeted, activity, balance].hash
198
+ [id, category_group_id, name, hidden, note, budgeted, activity, balance, deleted].hash
184
199
  end
185
200
 
186
201
  # Builds the object from hash
@@ -21,12 +21,16 @@ module YnabApi
21
21
  # Whether or not the category group is hidden
22
22
  attr_accessor :hidden
23
23
 
24
+ # Whether or not the category group has been deleted. Deleted category groups will only be included in delta requests.
25
+ attr_accessor :deleted
26
+
24
27
  # Attribute mapping from ruby-style variable name to JSON key.
25
28
  def self.attribute_map
26
29
  {
27
30
  :'id' => :'id',
28
31
  :'name' => :'name',
29
- :'hidden' => :'hidden'
32
+ :'hidden' => :'hidden',
33
+ :'deleted' => :'deleted'
30
34
  }
31
35
  end
32
36
 
@@ -35,7 +39,8 @@ module YnabApi
35
39
  {
36
40
  :'id' => :'String',
37
41
  :'name' => :'String',
38
- :'hidden' => :'BOOLEAN'
42
+ :'hidden' => :'BOOLEAN',
43
+ :'deleted' => :'BOOLEAN'
39
44
  }
40
45
  end
41
46
 
@@ -58,6 +63,10 @@ module YnabApi
58
63
  if attributes.has_key?(:'hidden')
59
64
  self.hidden = attributes[:'hidden']
60
65
  end
66
+
67
+ if attributes.has_key?(:'deleted')
68
+ self.deleted = attributes[:'deleted']
69
+ end
61
70
  end
62
71
 
63
72
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -76,6 +85,10 @@ module YnabApi
76
85
  invalid_properties.push('invalid value for "hidden", hidden cannot be nil.')
77
86
  end
78
87
 
88
+ if @deleted.nil?
89
+ invalid_properties.push('invalid value for "deleted", deleted cannot be nil.')
90
+ end
91
+
79
92
  invalid_properties
80
93
  end
81
94
 
@@ -85,6 +98,7 @@ module YnabApi
85
98
  return false if @id.nil?
86
99
  return false if @name.nil?
87
100
  return false if @hidden.nil?
101
+ return false if @deleted.nil?
88
102
  true
89
103
  end
90
104
 
@@ -95,7 +109,8 @@ module YnabApi
95
109
  self.class == o.class &&
96
110
  id == o.id &&
97
111
  name == o.name &&
98
- hidden == o.hidden
112
+ hidden == o.hidden &&
113
+ deleted == o.deleted
99
114
  end
100
115
 
101
116
  # @see the `==` method
@@ -107,7 +122,7 @@ module YnabApi
107
122
  # Calculates hash code according to all attributes.
108
123
  # @return [Fixnum] Hash code
109
124
  def hash
110
- [id, name, hidden].hash
125
+ [id, name, hidden, deleted].hash
111
126
  end
112
127
 
113
128
  # Builds the object from hash
@@ -21,6 +21,9 @@ module YnabApi
21
21
  # Whether or not the category group is hidden
22
22
  attr_accessor :hidden
23
23
 
24
+ # Whether or not the category group has been deleted. Deleted category groups will only be included in delta requests.
25
+ attr_accessor :deleted
26
+
24
27
  # Category group categories
25
28
  attr_accessor :categories
26
29
 
@@ -30,6 +33,7 @@ module YnabApi
30
33
  :'id' => :'id',
31
34
  :'name' => :'name',
32
35
  :'hidden' => :'hidden',
36
+ :'deleted' => :'deleted',
33
37
  :'categories' => :'categories'
34
38
  }
35
39
  end
@@ -40,6 +44,7 @@ module YnabApi
40
44
  :'id' => :'String',
41
45
  :'name' => :'String',
42
46
  :'hidden' => :'BOOLEAN',
47
+ :'deleted' => :'BOOLEAN',
43
48
  :'categories' => :'Array<Category>'
44
49
  }
45
50
  end
@@ -64,6 +69,10 @@ module YnabApi
64
69
  self.hidden = attributes[:'hidden']
65
70
  end
66
71
 
72
+ if attributes.has_key?(:'deleted')
73
+ self.deleted = attributes[:'deleted']
74
+ end
75
+
67
76
  if attributes.has_key?(:'categories')
68
77
  if (value = attributes[:'categories']).is_a?(Array)
69
78
  self.categories = value
@@ -87,6 +96,10 @@ module YnabApi
87
96
  invalid_properties.push('invalid value for "hidden", hidden cannot be nil.')
88
97
  end
89
98
 
99
+ if @deleted.nil?
100
+ invalid_properties.push('invalid value for "deleted", deleted cannot be nil.')
101
+ end
102
+
90
103
  if @categories.nil?
91
104
  invalid_properties.push('invalid value for "categories", categories cannot be nil.')
92
105
  end
@@ -100,6 +113,7 @@ module YnabApi
100
113
  return false if @id.nil?
101
114
  return false if @name.nil?
102
115
  return false if @hidden.nil?
116
+ return false if @deleted.nil?
103
117
  return false if @categories.nil?
104
118
  true
105
119
  end
@@ -112,6 +126,7 @@ module YnabApi
112
126
  id == o.id &&
113
127
  name == o.name &&
114
128
  hidden == o.hidden &&
129
+ deleted == o.deleted &&
115
130
  categories == o.categories
116
131
  end
117
132
 
@@ -124,7 +139,7 @@ module YnabApi
124
139
  # Calculates hash code according to all attributes.
125
140
  # @return [Fixnum] Hash code
126
141
  def hash
127
- [id, name, hidden, categories].hash
142
+ [id, name, hidden, deleted, categories].hash
128
143
  end
129
144
 
130
145
  # Builds the object from hash