ynab 3.8.0 → 4.9.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 +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -1
- data/README.md +48 -40
- data/Rakefile +1 -1
- data/docs/Account.md +3 -3
- data/docs/AccountsApi.md +12 -12
- data/docs/CategoriesApi.md +89 -25
- data/docs/Category.md +5 -3
- data/docs/CategoryGroupWithCategories.md +1 -1
- data/docs/ExistingCategory.md +12 -0
- data/docs/MoneyMovement.md +16 -0
- data/docs/MoneyMovementGroup.md +12 -0
- data/docs/MoneyMovementGroupsResponse.md +8 -0
- data/docs/MoneyMovementGroupsResponseData.md +9 -0
- data/docs/MoneyMovementsApi.md +89 -0
- data/docs/{BudgetSettingsResponse.md → MoneyMovementsResponse.md} +2 -2
- data/docs/MoneyMovementsResponseData.md +9 -0
- data/docs/MonthDetail.md +2 -2
- data/docs/MonthSummary.md +1 -1
- data/docs/MonthsApi.md +13 -13
- data/docs/NewCategory.md +12 -0
- data/docs/PatchCategoryGroupWrapper.md +8 -0
- data/docs/PatchCategoryWrapper.md +1 -1
- data/docs/PayeeLocationsApi.md +12 -12
- data/docs/PayeesApi.md +11 -11
- data/docs/{BudgetDetail.md → PlanDetail.md} +4 -4
- data/docs/PlanDetailResponse.md +8 -0
- data/docs/{BudgetDetailResponseData.md → PlanDetailResponseData.md} +2 -2
- data/docs/{BudgetSettings.md → PlanSettings.md} +1 -1
- data/docs/{BudgetDetailResponse.md → PlanSettingsResponse.md} +2 -2
- data/docs/PlanSettingsResponseData.md +8 -0
- data/docs/PlanSummary.md +15 -0
- data/docs/PlanSummaryResponse.md +8 -0
- data/docs/PlanSummaryResponseData.md +9 -0
- data/docs/PlansApi.md +68 -0
- data/docs/PostCategoryGroupWrapper.md +8 -0
- data/docs/PostCategoryWrapper.md +8 -0
- data/docs/SaveCategory.md +2 -1
- data/docs/SaveCategoryGroup.md +8 -0
- data/docs/SaveCategoryGroupResponse.md +8 -0
- data/docs/SaveCategoryGroupResponseData.md +9 -0
- data/docs/SaveMonthCategory.md +1 -1
- data/docs/ScheduledTransactionsApi.md +20 -20
- data/docs/TransactionResponseData.md +1 -0
- data/docs/TransactionsApi.md +48 -48
- data/docs/UserApi.md +2 -2
- data/examples/category-balance.rb +2 -2
- data/examples/create-multiple-transactions.rb +2 -2
- data/examples/create-transaction.rb +2 -2
- data/examples/{budget-list.rb → plan-list.rb} +6 -6
- data/examples/{budget-month.rb → plan-month.rb} +9 -10
- data/examples/update-category-budgeted.rb +2 -2
- data/examples/update-multiple-transactions.rb +3 -3
- data/lib/ynab/api/accounts_api.rb +33 -34
- data/lib/ynab/api/categories_api.rb +293 -66
- data/lib/ynab/api/deprecated_api.rb +11 -11
- data/lib/ynab/api/money_movements_api.rb +282 -0
- data/lib/ynab/api/months_api.rb +35 -36
- data/lib/ynab/api/payee_locations_api.rb +33 -34
- data/lib/ynab/api/payees_api.rb +31 -32
- data/lib/ynab/api/{budgets_api.rb → plans_api.rb} +54 -55
- data/lib/ynab/api/scheduled_transactions_api.rb +55 -56
- data/lib/ynab/api/transactions_api.rb +130 -131
- data/lib/ynab/api/user_api.rb +2 -3
- data/lib/ynab/api_client.rb +0 -2
- data/lib/ynab/api_model_base.rb +85 -0
- data/lib/ynab/models/account.rb +4 -81
- data/lib/ynab/models/account_response.rb +1 -75
- data/lib/ynab/models/account_response_data.rb +1 -75
- data/lib/ynab/models/accounts_response.rb +1 -75
- data/lib/ynab/models/accounts_response_data.rb +1 -75
- data/lib/ynab/models/bulk_response.rb +1 -75
- data/lib/ynab/models/bulk_response_data.rb +1 -75
- data/lib/ynab/models/bulk_response_data_bulk.rb +1 -75
- data/lib/ynab/models/bulk_transactions.rb +1 -75
- data/lib/ynab/models/categories_response.rb +1 -75
- data/lib/ynab/models/categories_response_data.rb +1 -75
- data/lib/ynab/models/category.rb +27 -79
- data/lib/ynab/models/category_group.rb +1 -75
- data/lib/ynab/models/category_group_with_categories.rb +2 -76
- data/lib/ynab/models/category_response.rb +1 -75
- data/lib/ynab/models/category_response_data.rb +1 -75
- data/lib/ynab/models/currency_format.rb +2 -76
- data/lib/ynab/models/date_format.rb +2 -76
- data/lib/ynab/models/error_detail.rb +1 -75
- data/lib/ynab/models/error_response.rb +1 -75
- data/lib/ynab/models/existing_category.rb +180 -0
- data/lib/ynab/models/existing_transaction.rb +1 -79
- data/lib/ynab/models/hybrid_transaction.rb +1 -85
- data/lib/ynab/models/hybrid_transactions_response.rb +1 -75
- data/lib/ynab/models/hybrid_transactions_response_data.rb +1 -75
- data/lib/ynab/models/money_movement.rb +223 -0
- data/lib/ynab/models/money_movement_group.rb +179 -0
- data/lib/ynab/models/{budget_summary_response.rb → money_movement_groups_response.rb} +4 -78
- data/lib/ynab/models/money_movement_groups_response_data.rb +149 -0
- data/lib/ynab/models/{budget_settings_response.rb → money_movements_response.rb} +4 -78
- data/lib/ynab/models/money_movements_response_data.rb +149 -0
- data/lib/ynab/models/month_detail.rb +3 -79
- data/lib/ynab/models/month_detail_response.rb +1 -75
- data/lib/ynab/models/month_detail_response_data.rb +1 -75
- data/lib/ynab/models/month_summaries_response.rb +1 -75
- data/lib/ynab/models/month_summaries_response_data.rb +1 -75
- data/lib/ynab/models/month_summary.rb +2 -76
- data/lib/ynab/models/new_category.rb +180 -0
- data/lib/ynab/models/new_transaction.rb +1 -79
- data/lib/ynab/models/patch_category_group_wrapper.rb +136 -0
- data/lib/ynab/models/patch_category_wrapper.rb +2 -76
- data/lib/ynab/models/patch_month_category_wrapper.rb +1 -75
- data/lib/ynab/models/patch_payee_wrapper.rb +1 -75
- data/lib/ynab/models/patch_transactions_wrapper.rb +1 -75
- data/lib/ynab/models/payee.rb +1 -75
- data/lib/ynab/models/payee_location.rb +1 -75
- data/lib/ynab/models/payee_location_response.rb +1 -75
- data/lib/ynab/models/payee_location_response_data.rb +1 -75
- data/lib/ynab/models/payee_locations_response.rb +1 -75
- data/lib/ynab/models/payee_locations_response_data.rb +1 -75
- data/lib/ynab/models/payee_response.rb +1 -75
- data/lib/ynab/models/payee_response_data.rb +1 -75
- data/lib/ynab/models/payees_response.rb +1 -75
- data/lib/ynab/models/payees_response_data.rb +1 -75
- data/lib/ynab/models/{budget_detail.rb → plan_detail.rb} +7 -83
- data/lib/ynab/models/plan_detail_response.rb +136 -0
- data/lib/ynab/models/{budget_detail_response_data.rb → plan_detail_response_data.rb} +4 -78
- data/lib/ynab/models/{budget_settings.rb → plan_settings.rb} +5 -79
- data/lib/ynab/models/{budget_detail_response.rb → plan_settings_response.rb} +4 -78
- data/lib/ynab/models/{budget_settings_response_data.rb → plan_settings_response_data.rb} +4 -78
- data/lib/ynab/models/{budget_summary.rb → plan_summary.rb} +7 -83
- data/lib/ynab/models/plan_summary_response.rb +136 -0
- data/lib/ynab/models/{budget_summary_response_data.rb → plan_summary_response_data.rb} +5 -79
- data/lib/ynab/models/post_account_wrapper.rb +1 -75
- data/lib/ynab/models/post_category_group_wrapper.rb +136 -0
- data/lib/ynab/models/post_category_wrapper.rb +136 -0
- data/lib/ynab/models/post_scheduled_transaction_wrapper.rb +1 -75
- data/lib/ynab/models/post_transactions_wrapper.rb +1 -75
- data/lib/ynab/models/put_scheduled_transaction_wrapper.rb +1 -75
- data/lib/ynab/models/put_transaction_wrapper.rb +1 -75
- data/lib/ynab/models/save_account.rb +1 -75
- data/lib/ynab/models/save_category.rb +18 -81
- data/lib/ynab/models/save_category_group.rb +148 -0
- data/lib/ynab/models/save_category_group_response.rb +136 -0
- data/lib/ynab/models/save_category_group_response_data.rb +147 -0
- data/lib/ynab/models/save_category_response.rb +1 -75
- data/lib/ynab/models/save_category_response_data.rb +1 -75
- data/lib/ynab/models/save_month_category.rb +2 -76
- data/lib/ynab/models/save_payee.rb +1 -75
- data/lib/ynab/models/save_payee_response.rb +1 -75
- data/lib/ynab/models/save_payee_response_data.rb +1 -75
- data/lib/ynab/models/save_scheduled_transaction.rb +1 -75
- data/lib/ynab/models/save_sub_transaction.rb +1 -75
- data/lib/ynab/models/save_transaction_with_id_or_import_id.rb +1 -79
- data/lib/ynab/models/save_transaction_with_optional_fields.rb +1 -75
- data/lib/ynab/models/save_transactions_response.rb +1 -75
- data/lib/ynab/models/save_transactions_response_data.rb +1 -75
- data/lib/ynab/models/scheduled_sub_transaction.rb +1 -75
- data/lib/ynab/models/scheduled_transaction_detail.rb +1 -80
- data/lib/ynab/models/scheduled_transaction_response.rb +1 -75
- data/lib/ynab/models/scheduled_transaction_response_data.rb +1 -75
- data/lib/ynab/models/scheduled_transaction_summary.rb +1 -75
- data/lib/ynab/models/scheduled_transactions_response.rb +1 -75
- data/lib/ynab/models/scheduled_transactions_response_data.rb +1 -75
- data/lib/ynab/models/sub_transaction.rb +1 -75
- data/lib/ynab/models/transaction_detail.rb +1 -85
- data/lib/ynab/models/transaction_flag_color.rb +2 -1
- data/lib/ynab/models/transaction_response.rb +1 -75
- data/lib/ynab/models/transaction_response_data.rb +16 -79
- data/lib/ynab/models/transaction_summary.rb +1 -75
- data/lib/ynab/models/transactions_import_response.rb +1 -75
- data/lib/ynab/models/transactions_import_response_data.rb +1 -75
- data/lib/ynab/models/transactions_response.rb +1 -75
- data/lib/ynab/models/transactions_response_data.rb +1 -75
- data/lib/ynab/models/user.rb +1 -75
- data/lib/ynab/models/user_response.rb +1 -75
- data/lib/ynab/models/user_response_data.rb +1 -75
- data/lib/ynab/overrides/transactions_api.rb +6 -6
- data/lib/ynab/version.rb +1 -1
- data/lib/ynab.rb +28 -13
- data/open_api_spec.yaml +1163 -905
- data/spec/api/accounts_spec.rb +9 -9
- data/spec/api/categories_spec.rb +9 -9
- data/spec/api/months_spec.rb +7 -7
- data/spec/api/payee_locations_spec.rb +7 -7
- data/spec/api/payees_spec.rb +7 -7
- data/spec/api/{budgets_spec.rb → plans_spec.rb} +12 -12
- data/spec/api/scheduled_transactions_spec.rb +9 -9
- data/spec/api/transactions_spec.rb +28 -28
- data/spec/fixtures/vcr_cassettes/plans.yml +49 -0
- data/spec/fixtures/vcr_cassettes/plans_unauthorized.yml +49 -0
- data/templates/gem.mustache +3 -2
- data/templates/partial_model_generic.mustache +1 -1
- data/ynab.gemspec +1 -2
- metadata +94 -59
- data/docs/BudgetSettingsResponseData.md +0 -8
- data/docs/BudgetSummary.md +0 -15
- data/docs/BudgetSummaryResponse.md +0 -8
- data/docs/BudgetSummaryResponseData.md +0 -9
- data/docs/BudgetsApi.md +0 -68
data/lib/ynab/models/category.rb
CHANGED
|
@@ -11,7 +11,7 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module YNAB
|
|
14
|
-
class Category
|
|
14
|
+
class Category < ApiModelBase
|
|
15
15
|
attr_accessor :id
|
|
16
16
|
|
|
17
17
|
attr_accessor :category_group_id
|
|
@@ -28,13 +28,13 @@ module YNAB
|
|
|
28
28
|
|
|
29
29
|
attr_accessor :note
|
|
30
30
|
|
|
31
|
-
#
|
|
31
|
+
# Assigned (budgeted) amount in milliunits format
|
|
32
32
|
attr_accessor :budgeted
|
|
33
33
|
|
|
34
34
|
# Activity amount in milliunits format
|
|
35
35
|
attr_accessor :activity
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# Available balance in milliunits format
|
|
38
38
|
attr_accessor :balance
|
|
39
39
|
|
|
40
40
|
# The type of goal, if the category has a goal (TB='Target Category Balance', TBD='Target Category Balance by Date', MF='Monthly Funding', NEED='Plan Your Spending')
|
|
@@ -58,9 +58,12 @@ module YNAB
|
|
|
58
58
|
# The goal target amount in milliunits
|
|
59
59
|
attr_accessor :goal_target
|
|
60
60
|
|
|
61
|
-
#
|
|
61
|
+
# DEPRECATED: No longer used. Use `goal_target_date` instead.
|
|
62
62
|
attr_accessor :goal_target_month
|
|
63
63
|
|
|
64
|
+
# The target date for the goal to be completed. Only some goal types specify this date.
|
|
65
|
+
attr_accessor :goal_target_date
|
|
66
|
+
|
|
64
67
|
# The percentage completion of the goal
|
|
65
68
|
attr_accessor :goal_percentage_complete
|
|
66
69
|
|
|
@@ -76,6 +79,9 @@ module YNAB
|
|
|
76
79
|
# The amount of funding still needed to complete the goal within the current goal period.
|
|
77
80
|
attr_accessor :goal_overall_left
|
|
78
81
|
|
|
82
|
+
# The date/time the goal was snoozed. If the goal is not snoozed, this will be null.
|
|
83
|
+
attr_accessor :goal_snoozed_at
|
|
84
|
+
|
|
79
85
|
# Whether or not the category has been deleted. Deleted categories will only be included in delta requests.
|
|
80
86
|
attr_accessor :deleted
|
|
81
87
|
|
|
@@ -122,11 +128,13 @@ module YNAB
|
|
|
122
128
|
:'goal_creation_month' => :'goal_creation_month',
|
|
123
129
|
:'goal_target' => :'goal_target',
|
|
124
130
|
:'goal_target_month' => :'goal_target_month',
|
|
131
|
+
:'goal_target_date' => :'goal_target_date',
|
|
125
132
|
:'goal_percentage_complete' => :'goal_percentage_complete',
|
|
126
133
|
:'goal_months_to_budget' => :'goal_months_to_budget',
|
|
127
134
|
:'goal_under_funded' => :'goal_under_funded',
|
|
128
135
|
:'goal_overall_funded' => :'goal_overall_funded',
|
|
129
136
|
:'goal_overall_left' => :'goal_overall_left',
|
|
137
|
+
:'goal_snoozed_at' => :'goal_snoozed_at',
|
|
130
138
|
:'deleted' => :'deleted'
|
|
131
139
|
}
|
|
132
140
|
end
|
|
@@ -157,11 +165,13 @@ module YNAB
|
|
|
157
165
|
:'goal_creation_month' => :'Date',
|
|
158
166
|
:'goal_target' => :'Integer',
|
|
159
167
|
:'goal_target_month' => :'Date',
|
|
168
|
+
:'goal_target_date' => :'Date',
|
|
160
169
|
:'goal_percentage_complete' => :'Integer',
|
|
161
170
|
:'goal_months_to_budget' => :'Integer',
|
|
162
171
|
:'goal_under_funded' => :'Integer',
|
|
163
172
|
:'goal_overall_funded' => :'Integer',
|
|
164
173
|
:'goal_overall_left' => :'Integer',
|
|
174
|
+
:'goal_snoozed_at' => :'Time',
|
|
165
175
|
:'deleted' => :'Boolean'
|
|
166
176
|
}
|
|
167
177
|
end
|
|
@@ -179,11 +189,13 @@ module YNAB
|
|
|
179
189
|
:'goal_creation_month',
|
|
180
190
|
:'goal_target',
|
|
181
191
|
:'goal_target_month',
|
|
192
|
+
:'goal_target_date',
|
|
182
193
|
:'goal_percentage_complete',
|
|
183
194
|
:'goal_months_to_budget',
|
|
184
195
|
:'goal_under_funded',
|
|
185
196
|
:'goal_overall_funded',
|
|
186
197
|
:'goal_overall_left',
|
|
198
|
+
:'goal_snoozed_at',
|
|
187
199
|
])
|
|
188
200
|
end
|
|
189
201
|
|
|
@@ -274,6 +286,10 @@ module YNAB
|
|
|
274
286
|
self.goal_target_month = attributes[:'goal_target_month']
|
|
275
287
|
end
|
|
276
288
|
|
|
289
|
+
if attributes.key?(:'goal_target_date')
|
|
290
|
+
self.goal_target_date = attributes[:'goal_target_date']
|
|
291
|
+
end
|
|
292
|
+
|
|
277
293
|
if attributes.key?(:'goal_percentage_complete')
|
|
278
294
|
self.goal_percentage_complete = attributes[:'goal_percentage_complete']
|
|
279
295
|
end
|
|
@@ -294,6 +310,10 @@ module YNAB
|
|
|
294
310
|
self.goal_overall_left = attributes[:'goal_overall_left']
|
|
295
311
|
end
|
|
296
312
|
|
|
313
|
+
if attributes.key?(:'goal_snoozed_at')
|
|
314
|
+
self.goal_snoozed_at = attributes[:'goal_snoozed_at']
|
|
315
|
+
end
|
|
316
|
+
|
|
297
317
|
if attributes.key?(:'deleted')
|
|
298
318
|
self.deleted = attributes[:'deleted']
|
|
299
319
|
end
|
|
@@ -351,11 +371,13 @@ module YNAB
|
|
|
351
371
|
goal_creation_month == o.goal_creation_month &&
|
|
352
372
|
goal_target == o.goal_target &&
|
|
353
373
|
goal_target_month == o.goal_target_month &&
|
|
374
|
+
goal_target_date == o.goal_target_date &&
|
|
354
375
|
goal_percentage_complete == o.goal_percentage_complete &&
|
|
355
376
|
goal_months_to_budget == o.goal_months_to_budget &&
|
|
356
377
|
goal_under_funded == o.goal_under_funded &&
|
|
357
378
|
goal_overall_funded == o.goal_overall_funded &&
|
|
358
379
|
goal_overall_left == o.goal_overall_left &&
|
|
380
|
+
goal_snoozed_at == o.goal_snoozed_at &&
|
|
359
381
|
deleted == o.deleted
|
|
360
382
|
end
|
|
361
383
|
|
|
@@ -368,7 +390,7 @@ module YNAB
|
|
|
368
390
|
# Calculates hash code according to all attributes.
|
|
369
391
|
# @return [Integer] Hash code
|
|
370
392
|
def hash
|
|
371
|
-
[id, category_group_id, category_group_name, name, hidden, original_category_group_id, note, budgeted, activity, balance, goal_type, goal_needs_whole_amount, goal_day, goal_cadence, goal_cadence_frequency, goal_creation_month, goal_target, goal_target_month, goal_percentage_complete, goal_months_to_budget, goal_under_funded, goal_overall_funded, goal_overall_left, deleted].hash
|
|
393
|
+
[id, category_group_id, category_group_name, name, hidden, original_category_group_id, note, budgeted, activity, balance, goal_type, goal_needs_whole_amount, goal_day, goal_cadence, goal_cadence_frequency, goal_creation_month, goal_target, goal_target_month, goal_target_date, goal_percentage_complete, goal_months_to_budget, goal_under_funded, goal_overall_funded, goal_overall_left, goal_snoozed_at, deleted].hash
|
|
372
394
|
end
|
|
373
395
|
|
|
374
396
|
# Builds the object from hash
|
|
@@ -394,61 +416,6 @@ module YNAB
|
|
|
394
416
|
new(transformed_hash)
|
|
395
417
|
end
|
|
396
418
|
|
|
397
|
-
# Deserializes the data based on type
|
|
398
|
-
# @param string type Data type
|
|
399
|
-
# @param string value Value to be deserialized
|
|
400
|
-
# @return [Object] Deserialized data
|
|
401
|
-
def self._deserialize(type, value)
|
|
402
|
-
case type.to_sym
|
|
403
|
-
when :Time
|
|
404
|
-
Time.parse(value)
|
|
405
|
-
when :Date
|
|
406
|
-
Date.parse(value)
|
|
407
|
-
when :String
|
|
408
|
-
value.to_s
|
|
409
|
-
when :Integer
|
|
410
|
-
value.to_i
|
|
411
|
-
when :Float
|
|
412
|
-
value.to_f
|
|
413
|
-
when :Boolean
|
|
414
|
-
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
415
|
-
true
|
|
416
|
-
else
|
|
417
|
-
false
|
|
418
|
-
end
|
|
419
|
-
when :Object
|
|
420
|
-
# generic object (usually a Hash), return directly
|
|
421
|
-
value
|
|
422
|
-
when /\AArray<(?<inner_type>.+)>\z/
|
|
423
|
-
inner_type = Regexp.last_match[:inner_type]
|
|
424
|
-
value.map { |v| _deserialize(inner_type, v) }
|
|
425
|
-
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
426
|
-
k_type = Regexp.last_match[:k_type]
|
|
427
|
-
v_type = Regexp.last_match[:v_type]
|
|
428
|
-
{}.tap do |hash|
|
|
429
|
-
value.each do |k, v|
|
|
430
|
-
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
431
|
-
end
|
|
432
|
-
end
|
|
433
|
-
else # model
|
|
434
|
-
# models (e.g. Pet) or oneOf
|
|
435
|
-
klass = YNAB.const_get(type)
|
|
436
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
437
|
-
end
|
|
438
|
-
end
|
|
439
|
-
|
|
440
|
-
# Returns the string representation of the object
|
|
441
|
-
# @return [String] String presentation of the object
|
|
442
|
-
def to_s
|
|
443
|
-
to_hash.to_s
|
|
444
|
-
end
|
|
445
|
-
|
|
446
|
-
# to_body is an alias to to_hash (backward compatibility)
|
|
447
|
-
# @return [Hash] Returns the object in the form of hash
|
|
448
|
-
def to_body
|
|
449
|
-
to_hash
|
|
450
|
-
end
|
|
451
|
-
|
|
452
419
|
# Returns the object in the form of hash
|
|
453
420
|
# @return [Hash] Returns the object in the form of hash
|
|
454
421
|
def to_hash
|
|
@@ -464,25 +431,6 @@ module YNAB
|
|
|
464
431
|
end
|
|
465
432
|
hash
|
|
466
433
|
end
|
|
467
|
-
|
|
468
|
-
# Outputs non-array value in the form of hash
|
|
469
|
-
# For object, use to_hash. Otherwise, just return the value
|
|
470
|
-
# @param [Object] value Any valid value
|
|
471
|
-
# @return [Hash] Returns the value in the form of hash
|
|
472
|
-
def _to_hash(value)
|
|
473
|
-
if value.is_a?(Array)
|
|
474
|
-
value.compact.map { |v| _to_hash(v) }
|
|
475
|
-
elsif value.is_a?(Hash)
|
|
476
|
-
{}.tap do |hash|
|
|
477
|
-
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
478
|
-
end
|
|
479
|
-
elsif value.respond_to? :to_hash
|
|
480
|
-
value.to_hash
|
|
481
|
-
else
|
|
482
|
-
value
|
|
483
|
-
end
|
|
484
|
-
end
|
|
485
|
-
|
|
486
434
|
end
|
|
487
435
|
|
|
488
436
|
end
|
|
@@ -11,7 +11,7 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module YNAB
|
|
14
|
-
class CategoryGroup
|
|
14
|
+
class CategoryGroup < ApiModelBase
|
|
15
15
|
attr_accessor :id
|
|
16
16
|
|
|
17
17
|
attr_accessor :name
|
|
@@ -148,61 +148,6 @@ module YNAB
|
|
|
148
148
|
new(transformed_hash)
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
-
# Deserializes the data based on type
|
|
152
|
-
# @param string type Data type
|
|
153
|
-
# @param string value Value to be deserialized
|
|
154
|
-
# @return [Object] Deserialized data
|
|
155
|
-
def self._deserialize(type, value)
|
|
156
|
-
case type.to_sym
|
|
157
|
-
when :Time
|
|
158
|
-
Time.parse(value)
|
|
159
|
-
when :Date
|
|
160
|
-
Date.parse(value)
|
|
161
|
-
when :String
|
|
162
|
-
value.to_s
|
|
163
|
-
when :Integer
|
|
164
|
-
value.to_i
|
|
165
|
-
when :Float
|
|
166
|
-
value.to_f
|
|
167
|
-
when :Boolean
|
|
168
|
-
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
169
|
-
true
|
|
170
|
-
else
|
|
171
|
-
false
|
|
172
|
-
end
|
|
173
|
-
when :Object
|
|
174
|
-
# generic object (usually a Hash), return directly
|
|
175
|
-
value
|
|
176
|
-
when /\AArray<(?<inner_type>.+)>\z/
|
|
177
|
-
inner_type = Regexp.last_match[:inner_type]
|
|
178
|
-
value.map { |v| _deserialize(inner_type, v) }
|
|
179
|
-
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
180
|
-
k_type = Regexp.last_match[:k_type]
|
|
181
|
-
v_type = Regexp.last_match[:v_type]
|
|
182
|
-
{}.tap do |hash|
|
|
183
|
-
value.each do |k, v|
|
|
184
|
-
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
else # model
|
|
188
|
-
# models (e.g. Pet) or oneOf
|
|
189
|
-
klass = YNAB.const_get(type)
|
|
190
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
191
|
-
end
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
# Returns the string representation of the object
|
|
195
|
-
# @return [String] String presentation of the object
|
|
196
|
-
def to_s
|
|
197
|
-
to_hash.to_s
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
# to_body is an alias to to_hash (backward compatibility)
|
|
201
|
-
# @return [Hash] Returns the object in the form of hash
|
|
202
|
-
def to_body
|
|
203
|
-
to_hash
|
|
204
|
-
end
|
|
205
|
-
|
|
206
151
|
# Returns the object in the form of hash
|
|
207
152
|
# @return [Hash] Returns the object in the form of hash
|
|
208
153
|
def to_hash
|
|
@@ -218,25 +163,6 @@ module YNAB
|
|
|
218
163
|
end
|
|
219
164
|
hash
|
|
220
165
|
end
|
|
221
|
-
|
|
222
|
-
# Outputs non-array value in the form of hash
|
|
223
|
-
# For object, use to_hash. Otherwise, just return the value
|
|
224
|
-
# @param [Object] value Any valid value
|
|
225
|
-
# @return [Hash] Returns the value in the form of hash
|
|
226
|
-
def _to_hash(value)
|
|
227
|
-
if value.is_a?(Array)
|
|
228
|
-
value.compact.map { |v| _to_hash(v) }
|
|
229
|
-
elsif value.is_a?(Hash)
|
|
230
|
-
{}.tap do |hash|
|
|
231
|
-
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
232
|
-
end
|
|
233
|
-
elsif value.respond_to? :to_hash
|
|
234
|
-
value.to_hash
|
|
235
|
-
else
|
|
236
|
-
value
|
|
237
|
-
end
|
|
238
|
-
end
|
|
239
|
-
|
|
240
166
|
end
|
|
241
167
|
|
|
242
168
|
end
|
|
@@ -11,7 +11,7 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module YNAB
|
|
14
|
-
class CategoryGroupWithCategories
|
|
14
|
+
class CategoryGroupWithCategories < ApiModelBase
|
|
15
15
|
attr_accessor :id
|
|
16
16
|
|
|
17
17
|
attr_accessor :name
|
|
@@ -22,7 +22,7 @@ module YNAB
|
|
|
22
22
|
# Whether or not the category group has been deleted. Deleted category groups will only be included in delta requests.
|
|
23
23
|
attr_accessor :deleted
|
|
24
24
|
|
|
25
|
-
# Category group categories. Amounts (
|
|
25
|
+
# Category group categories. Amounts (assigned, activity, available, etc.) are specific to the current plan month (UTC).
|
|
26
26
|
attr_accessor :categories
|
|
27
27
|
|
|
28
28
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -168,61 +168,6 @@ module YNAB
|
|
|
168
168
|
new(transformed_hash)
|
|
169
169
|
end
|
|
170
170
|
|
|
171
|
-
# Deserializes the data based on type
|
|
172
|
-
# @param string type Data type
|
|
173
|
-
# @param string value Value to be deserialized
|
|
174
|
-
# @return [Object] Deserialized data
|
|
175
|
-
def self._deserialize(type, value)
|
|
176
|
-
case type.to_sym
|
|
177
|
-
when :Time
|
|
178
|
-
Time.parse(value)
|
|
179
|
-
when :Date
|
|
180
|
-
Date.parse(value)
|
|
181
|
-
when :String
|
|
182
|
-
value.to_s
|
|
183
|
-
when :Integer
|
|
184
|
-
value.to_i
|
|
185
|
-
when :Float
|
|
186
|
-
value.to_f
|
|
187
|
-
when :Boolean
|
|
188
|
-
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
189
|
-
true
|
|
190
|
-
else
|
|
191
|
-
false
|
|
192
|
-
end
|
|
193
|
-
when :Object
|
|
194
|
-
# generic object (usually a Hash), return directly
|
|
195
|
-
value
|
|
196
|
-
when /\AArray<(?<inner_type>.+)>\z/
|
|
197
|
-
inner_type = Regexp.last_match[:inner_type]
|
|
198
|
-
value.map { |v| _deserialize(inner_type, v) }
|
|
199
|
-
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
200
|
-
k_type = Regexp.last_match[:k_type]
|
|
201
|
-
v_type = Regexp.last_match[:v_type]
|
|
202
|
-
{}.tap do |hash|
|
|
203
|
-
value.each do |k, v|
|
|
204
|
-
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
else # model
|
|
208
|
-
# models (e.g. Pet) or oneOf
|
|
209
|
-
klass = YNAB.const_get(type)
|
|
210
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
211
|
-
end
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
# Returns the string representation of the object
|
|
215
|
-
# @return [String] String presentation of the object
|
|
216
|
-
def to_s
|
|
217
|
-
to_hash.to_s
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
# to_body is an alias to to_hash (backward compatibility)
|
|
221
|
-
# @return [Hash] Returns the object in the form of hash
|
|
222
|
-
def to_body
|
|
223
|
-
to_hash
|
|
224
|
-
end
|
|
225
|
-
|
|
226
171
|
# Returns the object in the form of hash
|
|
227
172
|
# @return [Hash] Returns the object in the form of hash
|
|
228
173
|
def to_hash
|
|
@@ -238,25 +183,6 @@ module YNAB
|
|
|
238
183
|
end
|
|
239
184
|
hash
|
|
240
185
|
end
|
|
241
|
-
|
|
242
|
-
# Outputs non-array value in the form of hash
|
|
243
|
-
# For object, use to_hash. Otherwise, just return the value
|
|
244
|
-
# @param [Object] value Any valid value
|
|
245
|
-
# @return [Hash] Returns the value in the form of hash
|
|
246
|
-
def _to_hash(value)
|
|
247
|
-
if value.is_a?(Array)
|
|
248
|
-
value.compact.map { |v| _to_hash(v) }
|
|
249
|
-
elsif value.is_a?(Hash)
|
|
250
|
-
{}.tap do |hash|
|
|
251
|
-
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
252
|
-
end
|
|
253
|
-
elsif value.respond_to? :to_hash
|
|
254
|
-
value.to_hash
|
|
255
|
-
else
|
|
256
|
-
value
|
|
257
|
-
end
|
|
258
|
-
end
|
|
259
|
-
|
|
260
186
|
end
|
|
261
187
|
|
|
262
188
|
end
|
|
@@ -11,7 +11,7 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module YNAB
|
|
14
|
-
class CategoryResponse
|
|
14
|
+
class CategoryResponse < ApiModelBase
|
|
15
15
|
attr_accessor :data
|
|
16
16
|
|
|
17
17
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -116,61 +116,6 @@ module YNAB
|
|
|
116
116
|
new(transformed_hash)
|
|
117
117
|
end
|
|
118
118
|
|
|
119
|
-
# Deserializes the data based on type
|
|
120
|
-
# @param string type Data type
|
|
121
|
-
# @param string value Value to be deserialized
|
|
122
|
-
# @return [Object] Deserialized data
|
|
123
|
-
def self._deserialize(type, value)
|
|
124
|
-
case type.to_sym
|
|
125
|
-
when :Time
|
|
126
|
-
Time.parse(value)
|
|
127
|
-
when :Date
|
|
128
|
-
Date.parse(value)
|
|
129
|
-
when :String
|
|
130
|
-
value.to_s
|
|
131
|
-
when :Integer
|
|
132
|
-
value.to_i
|
|
133
|
-
when :Float
|
|
134
|
-
value.to_f
|
|
135
|
-
when :Boolean
|
|
136
|
-
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
137
|
-
true
|
|
138
|
-
else
|
|
139
|
-
false
|
|
140
|
-
end
|
|
141
|
-
when :Object
|
|
142
|
-
# generic object (usually a Hash), return directly
|
|
143
|
-
value
|
|
144
|
-
when /\AArray<(?<inner_type>.+)>\z/
|
|
145
|
-
inner_type = Regexp.last_match[:inner_type]
|
|
146
|
-
value.map { |v| _deserialize(inner_type, v) }
|
|
147
|
-
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
148
|
-
k_type = Regexp.last_match[:k_type]
|
|
149
|
-
v_type = Regexp.last_match[:v_type]
|
|
150
|
-
{}.tap do |hash|
|
|
151
|
-
value.each do |k, v|
|
|
152
|
-
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
else # model
|
|
156
|
-
# models (e.g. Pet) or oneOf
|
|
157
|
-
klass = YNAB.const_get(type)
|
|
158
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
# Returns the string representation of the object
|
|
163
|
-
# @return [String] String presentation of the object
|
|
164
|
-
def to_s
|
|
165
|
-
to_hash.to_s
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
# to_body is an alias to to_hash (backward compatibility)
|
|
169
|
-
# @return [Hash] Returns the object in the form of hash
|
|
170
|
-
def to_body
|
|
171
|
-
to_hash
|
|
172
|
-
end
|
|
173
|
-
|
|
174
119
|
# Returns the object in the form of hash
|
|
175
120
|
# @return [Hash] Returns the object in the form of hash
|
|
176
121
|
def to_hash
|
|
@@ -186,25 +131,6 @@ module YNAB
|
|
|
186
131
|
end
|
|
187
132
|
hash
|
|
188
133
|
end
|
|
189
|
-
|
|
190
|
-
# Outputs non-array value in the form of hash
|
|
191
|
-
# For object, use to_hash. Otherwise, just return the value
|
|
192
|
-
# @param [Object] value Any valid value
|
|
193
|
-
# @return [Hash] Returns the value in the form of hash
|
|
194
|
-
def _to_hash(value)
|
|
195
|
-
if value.is_a?(Array)
|
|
196
|
-
value.compact.map { |v| _to_hash(v) }
|
|
197
|
-
elsif value.is_a?(Hash)
|
|
198
|
-
{}.tap do |hash|
|
|
199
|
-
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
200
|
-
end
|
|
201
|
-
elsif value.respond_to? :to_hash
|
|
202
|
-
value.to_hash
|
|
203
|
-
else
|
|
204
|
-
value
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
|
|
208
134
|
end
|
|
209
135
|
|
|
210
136
|
end
|
|
@@ -11,7 +11,7 @@ require 'date'
|
|
|
11
11
|
require 'time'
|
|
12
12
|
|
|
13
13
|
module YNAB
|
|
14
|
-
class CategoryResponseData
|
|
14
|
+
class CategoryResponseData < ApiModelBase
|
|
15
15
|
attr_accessor :category
|
|
16
16
|
|
|
17
17
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -116,61 +116,6 @@ module YNAB
|
|
|
116
116
|
new(transformed_hash)
|
|
117
117
|
end
|
|
118
118
|
|
|
119
|
-
# Deserializes the data based on type
|
|
120
|
-
# @param string type Data type
|
|
121
|
-
# @param string value Value to be deserialized
|
|
122
|
-
# @return [Object] Deserialized data
|
|
123
|
-
def self._deserialize(type, value)
|
|
124
|
-
case type.to_sym
|
|
125
|
-
when :Time
|
|
126
|
-
Time.parse(value)
|
|
127
|
-
when :Date
|
|
128
|
-
Date.parse(value)
|
|
129
|
-
when :String
|
|
130
|
-
value.to_s
|
|
131
|
-
when :Integer
|
|
132
|
-
value.to_i
|
|
133
|
-
when :Float
|
|
134
|
-
value.to_f
|
|
135
|
-
when :Boolean
|
|
136
|
-
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
137
|
-
true
|
|
138
|
-
else
|
|
139
|
-
false
|
|
140
|
-
end
|
|
141
|
-
when :Object
|
|
142
|
-
# generic object (usually a Hash), return directly
|
|
143
|
-
value
|
|
144
|
-
when /\AArray<(?<inner_type>.+)>\z/
|
|
145
|
-
inner_type = Regexp.last_match[:inner_type]
|
|
146
|
-
value.map { |v| _deserialize(inner_type, v) }
|
|
147
|
-
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
148
|
-
k_type = Regexp.last_match[:k_type]
|
|
149
|
-
v_type = Regexp.last_match[:v_type]
|
|
150
|
-
{}.tap do |hash|
|
|
151
|
-
value.each do |k, v|
|
|
152
|
-
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
else # model
|
|
156
|
-
# models (e.g. Pet) or oneOf
|
|
157
|
-
klass = YNAB.const_get(type)
|
|
158
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
# Returns the string representation of the object
|
|
163
|
-
# @return [String] String presentation of the object
|
|
164
|
-
def to_s
|
|
165
|
-
to_hash.to_s
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
# to_body is an alias to to_hash (backward compatibility)
|
|
169
|
-
# @return [Hash] Returns the object in the form of hash
|
|
170
|
-
def to_body
|
|
171
|
-
to_hash
|
|
172
|
-
end
|
|
173
|
-
|
|
174
119
|
# Returns the object in the form of hash
|
|
175
120
|
# @return [Hash] Returns the object in the form of hash
|
|
176
121
|
def to_hash
|
|
@@ -186,25 +131,6 @@ module YNAB
|
|
|
186
131
|
end
|
|
187
132
|
hash
|
|
188
133
|
end
|
|
189
|
-
|
|
190
|
-
# Outputs non-array value in the form of hash
|
|
191
|
-
# For object, use to_hash. Otherwise, just return the value
|
|
192
|
-
# @param [Object] value Any valid value
|
|
193
|
-
# @return [Hash] Returns the value in the form of hash
|
|
194
|
-
def _to_hash(value)
|
|
195
|
-
if value.is_a?(Array)
|
|
196
|
-
value.compact.map { |v| _to_hash(v) }
|
|
197
|
-
elsif value.is_a?(Hash)
|
|
198
|
-
{}.tap do |hash|
|
|
199
|
-
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
200
|
-
end
|
|
201
|
-
elsif value.respond_to? :to_hash
|
|
202
|
-
value.to_hash
|
|
203
|
-
else
|
|
204
|
-
value
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
|
|
208
134
|
end
|
|
209
135
|
|
|
210
136
|
end
|