lunchmoney 0.10.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish_gem.yml +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +41 -4
  5. data/lib/lunchmoney/api.rb +34 -34
  6. data/lib/lunchmoney/calls/assets.rb +98 -0
  7. data/lib/lunchmoney/calls/base.rb +112 -0
  8. data/lib/lunchmoney/calls/budgets.rb +84 -0
  9. data/lib/lunchmoney/calls/categories.rb +196 -0
  10. data/lib/lunchmoney/calls/crypto.rb +50 -0
  11. data/lib/lunchmoney/calls/plaid_accounts.rb +40 -0
  12. data/lib/lunchmoney/calls/recurring_expenses.rb +29 -0
  13. data/lib/lunchmoney/calls/tags.rb +21 -0
  14. data/lib/lunchmoney/calls/transactions.rb +220 -0
  15. data/lib/lunchmoney/calls/users.rb +21 -0
  16. data/lib/lunchmoney/objects/asset.rb +91 -0
  17. data/lib/lunchmoney/objects/budget.rb +76 -0
  18. data/lib/lunchmoney/objects/category.rb +55 -0
  19. data/lib/lunchmoney/objects/child_category.rb +44 -0
  20. data/lib/lunchmoney/objects/child_transaction.rb +35 -0
  21. data/lib/lunchmoney/objects/config.rb +40 -0
  22. data/lib/lunchmoney/objects/crypto.rb +46 -0
  23. data/lib/lunchmoney/objects/crypto_base.rb +67 -0
  24. data/lib/lunchmoney/objects/data.rb +44 -0
  25. data/lib/lunchmoney/objects/object.rb +28 -0
  26. data/lib/lunchmoney/objects/plaid_account.rb +75 -0
  27. data/lib/lunchmoney/objects/recurring_expense.rb +68 -0
  28. data/lib/lunchmoney/objects/recurring_expense_base.rb +31 -0
  29. data/lib/lunchmoney/objects/split.rb +28 -0
  30. data/lib/lunchmoney/objects/tag.rb +24 -0
  31. data/lib/lunchmoney/objects/tag_base.rb +23 -0
  32. data/lib/lunchmoney/objects/transaction.rb +160 -0
  33. data/lib/lunchmoney/objects/transaction_base.rb +54 -0
  34. data/lib/lunchmoney/objects/transaction_modification_base.rb +32 -0
  35. data/lib/lunchmoney/objects/update_transaction.rb +47 -0
  36. data/lib/lunchmoney/objects/user.rb +38 -0
  37. data/lib/lunchmoney/version.rb +1 -1
  38. data/lunchmoney.gemspec +1 -0
  39. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +122 -22
  40. metadata +33 -32
  41. data/lib/lunchmoney/api_call.rb +0 -109
  42. data/lib/lunchmoney/assets/asset.rb +0 -89
  43. data/lib/lunchmoney/assets/asset_calls.rb +0 -96
  44. data/lib/lunchmoney/budget/budget.rb +0 -74
  45. data/lib/lunchmoney/budget/budget_calls.rb +0 -82
  46. data/lib/lunchmoney/budget/config.rb +0 -38
  47. data/lib/lunchmoney/budget/data.rb +0 -42
  48. data/lib/lunchmoney/categories/category/category.rb +0 -52
  49. data/lib/lunchmoney/categories/category/child_category.rb +0 -42
  50. data/lib/lunchmoney/categories/category_calls.rb +0 -195
  51. data/lib/lunchmoney/crypto/crypto/crypto.rb +0 -43
  52. data/lib/lunchmoney/crypto/crypto/crypto_base.rb +0 -65
  53. data/lib/lunchmoney/crypto/crypto_calls.rb +0 -49
  54. data/lib/lunchmoney/data_object.rb +0 -25
  55. data/lib/lunchmoney/plaid_accounts/plaid_account.rb +0 -73
  56. data/lib/lunchmoney/plaid_accounts/plaid_account_calls.rb +0 -38
  57. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense.rb +0 -65
  58. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense_base.rb +0 -29
  59. data/lib/lunchmoney/recurring_expenses/recurring_expense_calls.rb +0 -28
  60. data/lib/lunchmoney/tags/tag/tag.rb +0 -20
  61. data/lib/lunchmoney/tags/tag/tag_base.rb +0 -21
  62. data/lib/lunchmoney/tags/tag_calls.rb +0 -20
  63. data/lib/lunchmoney/transactions/transaction/child_transaction.rb +0 -31
  64. data/lib/lunchmoney/transactions/transaction/split.rb +0 -24
  65. data/lib/lunchmoney/transactions/transaction/transaction.rb +0 -156
  66. data/lib/lunchmoney/transactions/transaction/transaction_base.rb +0 -52
  67. data/lib/lunchmoney/transactions/transaction/transaction_modification_base.rb +0 -30
  68. data/lib/lunchmoney/transactions/transaction/update_transaction.rb +0 -43
  69. data/lib/lunchmoney/transactions/transaction_calls.rb +0 -218
  70. data/lib/lunchmoney/user/user.rb +0 -36
  71. data/lib/lunchmoney/user/user_calls.rb +0 -19
@@ -0,0 +1,160 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "transaction_base"
5
+
6
+ module LunchMoney
7
+ module Objects
8
+ # https://lunchmoney.dev/#transaction-object
9
+ class Transaction < TransactionBase
10
+ sig { returns(T.nilable(Integer)) }
11
+ attr_accessor :category_id,
12
+ :category_group_id,
13
+ :recurring_id,
14
+ :parent_id,
15
+ :group_id,
16
+ :external_id
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :created_at,
20
+ :updated_at,
21
+ :status,
22
+ :source,
23
+ :display_name,
24
+ :account_display_name
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :category_name,
28
+ :category_group_name,
29
+ :original_name,
30
+ :recurring_payee,
31
+ :recurring_description,
32
+ :recurring_cadence,
33
+ :recurring_type,
34
+ :recurring_amount,
35
+ :recurring_currency,
36
+ :asset_institution_name,
37
+ :asset_name,
38
+ :asset_display_name,
39
+ :asset_status,
40
+ :plaid_account_name,
41
+ :plaid_account_mask,
42
+ :institution_name,
43
+ :plaid_account_display_name,
44
+ :plaid_metadata,
45
+ :display_notes
46
+
47
+ sig { returns(T::Boolean) }
48
+ attr_accessor :is_income, :exclude_from_budget, :exclude_from_totals, :is_pending, :has_children, :is_group
49
+
50
+ sig { returns(T::Array[LunchMoney::Objects::TagBase]) }
51
+ attr_accessor :tags
52
+
53
+ sig { returns(T.nilable(T::Array[LunchMoney::Objects::ChildTransaction])) }
54
+ attr_accessor :children
55
+
56
+ sig do
57
+ params(
58
+ id: Integer,
59
+ date: String,
60
+ amount: String,
61
+ currency: String,
62
+ to_base: Number,
63
+ payee: String,
64
+ is_income: T::Boolean,
65
+ exclude_from_budget: T::Boolean,
66
+ exclude_from_totals: T::Boolean,
67
+ created_at: String,
68
+ updated_at: String,
69
+ status: String,
70
+ is_pending: T::Boolean,
71
+ has_children: T::Boolean,
72
+ is_group: T::Boolean,
73
+ source: String,
74
+ display_name: String,
75
+ account_display_name: String,
76
+ tags: T::Array[LunchMoney::Objects::TagBase],
77
+ category_id: T.nilable(Integer),
78
+ category_name: T.nilable(String),
79
+ category_group_id: T.nilable(Integer),
80
+ category_group_name: T.nilable(String),
81
+ notes: T.nilable(String),
82
+ original_name: T.nilable(String),
83
+ recurring_id: T.nilable(Integer),
84
+ recurring_payee: T.nilable(String),
85
+ recurring_description: T.nilable(String),
86
+ recurring_cadence: T.nilable(String),
87
+ recurring_type: T.nilable(String),
88
+ recurring_amount: T.nilable(String),
89
+ recurring_currency: T.nilable(String),
90
+ parent_id: T.nilable(Integer),
91
+ group_id: T.nilable(Integer),
92
+ asset_id: T.nilable(Integer),
93
+ asset_institution_name: T.nilable(String),
94
+ asset_name: T.nilable(String),
95
+ asset_display_name: T.nilable(String),
96
+ asset_status: T.nilable(String),
97
+ plaid_account_id: T.nilable(Integer),
98
+ plaid_account_name: T.nilable(String),
99
+ plaid_account_mask: T.nilable(String),
100
+ institution_name: T.nilable(String),
101
+ plaid_account_display_name: T.nilable(String),
102
+ plaid_metadata: T.nilable(String),
103
+ display_notes: T.nilable(String),
104
+ external_id: T.nilable(Integer),
105
+ children: T.nilable(T::Array[LunchMoney::Objects::ChildTransaction]),
106
+ ).void
107
+ end
108
+ def initialize(id:, date:, amount:, currency:, to_base:, payee:, is_income:, exclude_from_budget:,
109
+ exclude_from_totals:, created_at:, updated_at:, status:, is_pending:, has_children:, is_group:, source:,
110
+ display_name:, account_display_name:, tags:, category_id: nil, category_name: nil, category_group_id: nil,
111
+ category_group_name: nil, notes: nil, original_name: nil, recurring_id: nil, recurring_payee: nil,
112
+ recurring_description: nil, recurring_cadence: nil, recurring_type: nil, recurring_amount: nil,
113
+ recurring_currency: nil, parent_id: nil, group_id: nil, asset_id: nil, asset_institution_name: nil,
114
+ asset_name: nil, asset_display_name: nil, asset_status: nil, plaid_account_id: nil, plaid_account_name: nil,
115
+ plaid_account_mask: nil, institution_name: nil, plaid_account_display_name: nil, plaid_metadata: nil,
116
+ display_notes: nil, external_id: nil, children: nil)
117
+ super(id:, date:, amount:, currency:, to_base:, payee:, notes:, asset_id:, plaid_account_id:)
118
+ @is_income = is_income
119
+ @exclude_from_budget = exclude_from_budget
120
+ @exclude_from_totals = exclude_from_totals
121
+ @created_at = created_at
122
+ @updated_at = updated_at
123
+ @status = status
124
+ @is_pending = is_pending
125
+ @has_children = has_children
126
+ @is_group = is_group
127
+ @source = source
128
+ @display_name = display_name
129
+ @account_display_name = account_display_name
130
+ @tags = tags
131
+ @category_id = category_id
132
+ @category_name = category_name
133
+ @category_group_id = category_group_id
134
+ @category_group_name = category_group_name
135
+ @original_name = original_name
136
+ @recurring_id = recurring_id
137
+ @recurring_payee = recurring_payee
138
+ @recurring_description = recurring_description
139
+ @recurring_cadence = recurring_cadence
140
+ @recurring_type = recurring_type
141
+ @recurring_amount = recurring_amount
142
+ @recurring_currency = recurring_currency
143
+ @parent_id = parent_id
144
+ @group_id = group_id
145
+ @asset_institution_name = asset_institution_name
146
+ @asset_name = asset_name
147
+ @asset_display_name = asset_display_name
148
+ @asset_status = asset_status
149
+ @plaid_account_name = plaid_account_name
150
+ @plaid_account_mask = plaid_account_mask
151
+ @institution_name = institution_name
152
+ @plaid_account_display_name = plaid_account_display_name
153
+ @plaid_metadata = plaid_metadata
154
+ @display_notes = display_notes
155
+ @children = children
156
+ @external_id = external_id
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,54 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module LunchMoney
5
+ module Objects
6
+ # Slimmed down version of https://lunchmoney.dev/#transaction-object used as a base for other transaction objects
7
+ class TransactionBase < LunchMoney::Objects::Object
8
+ sig { returns(Integer) }
9
+ attr_accessor :id
10
+
11
+ sig { returns(Number) }
12
+ attr_accessor :to_base
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_accessor :asset_id, :plaid_account_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :date,
19
+ :amount,
20
+ :currency,
21
+ :payee
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :notes
25
+
26
+ sig do
27
+ params(
28
+ id: Integer,
29
+ date: String,
30
+ amount: String,
31
+ currency: String,
32
+ to_base: Number,
33
+ payee: String,
34
+ notes: T.nilable(String),
35
+ asset_id: T.nilable(Integer),
36
+ plaid_account_id: T.nilable(Integer),
37
+ ).void
38
+ end
39
+ def initialize(id:, date:, amount:, currency:, to_base:, payee:, notes: nil, asset_id: nil,
40
+ plaid_account_id: nil)
41
+ super()
42
+ @id = id
43
+ @date = date
44
+ @amount = amount
45
+ @currency = currency
46
+ @to_base = to_base
47
+ @payee = payee
48
+ @notes = notes
49
+ @asset_id = asset_id
50
+ @plaid_account_id = plaid_account_id
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module LunchMoney
5
+ module Objects
6
+ # Base object used for transaction objects that are used to update
7
+ # transactions https://lunchmoney.dev/#update-transaction
8
+ class TransactionModificationBase < LunchMoney::Objects::Object
9
+ sig { returns(T.nilable(String)) }
10
+ attr_accessor :payee, :date, :notes
11
+
12
+ sig { returns(T.nilable(Integer)) }
13
+ attr_accessor :category_id
14
+
15
+ sig do
16
+ params(
17
+ payee: T.nilable(String),
18
+ date: T.nilable(String),
19
+ category_id: T.nilable(Integer),
20
+ notes: T.nilable(String),
21
+ ).void
22
+ end
23
+ def initialize(payee: nil, date: nil, category_id: nil, notes: nil)
24
+ super()
25
+ @payee = payee
26
+ @date = date
27
+ @category_id = category_id
28
+ @notes = notes
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,47 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require_relative "transaction_modification_base"
5
+
6
+ module LunchMoney
7
+ module Objects
8
+ # object used when updating a transaction https://lunchmoney.dev/#update-transaction
9
+ class UpdateTransaction < TransactionModificationBase
10
+ sig { returns(T.nilable(String)) }
11
+ attr_accessor :amount, :currency, :status, :external_id
12
+
13
+ sig { returns(T.nilable(Integer)) }
14
+ attr_accessor :asset_id, :recurring_id
15
+
16
+ sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
17
+ attr_accessor :tags
18
+
19
+ sig do
20
+ params(
21
+ tags: T.nilable(T::Array[T.any(String, Integer)]),
22
+ category_id: T.nilable(Integer),
23
+ payee: T.nilable(String),
24
+ amount: T.nilable(String),
25
+ currency: T.nilable(String),
26
+ asset_id: T.nilable(Integer),
27
+ recurring_id: T.nilable(Integer),
28
+ notes: T.nilable(String),
29
+ status: T.nilable(String),
30
+ external_id: T.nilable(String),
31
+ date: T.nilable(String),
32
+ ).void
33
+ end
34
+ def initialize(tags: nil, category_id: nil, payee: nil, amount: nil, currency: nil, asset_id: nil,
35
+ recurring_id: nil, notes: nil, status: nil, external_id: nil, date: nil)
36
+ super(payee:, date:, category_id:, notes:)
37
+ @amount = amount
38
+ @tags = tags
39
+ @currency = currency
40
+ @asset_id = asset_id
41
+ @recurring_id = recurring_id
42
+ @status = status
43
+ @external_id = external_id
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module LunchMoney
5
+ module Objects
6
+ # https://lunchmoney.dev/#user-object
7
+ class User < LunchMoney::Objects::Object
8
+ sig { returns(Integer) }
9
+ attr_accessor :user_id, :account_id
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :user_name, :user_email, :budget_name
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_accessor :api_key_label
16
+
17
+ sig do
18
+ params(
19
+ user_id: Integer,
20
+ user_name: String,
21
+ user_email: String,
22
+ account_id: Integer,
23
+ budget_name: String,
24
+ api_key_label: T.nilable(String),
25
+ ).void
26
+ end
27
+ def initialize(user_id:, user_name:, user_email:, account_id:, budget_name:, api_key_label: nil)
28
+ super()
29
+ @user_id = user_id
30
+ @user_name = user_name
31
+ @user_email = user_email
32
+ @account_id = account_id
33
+ @budget_name = budget_name
34
+ @api_key_label = api_key_label
35
+ end
36
+ end
37
+ end
38
+ end
@@ -3,5 +3,5 @@
3
3
 
4
4
  module LunchMoney
5
5
  # Current version of the gem
6
- VERSION = "0.10.0"
6
+ VERSION = "1.1.0"
7
7
  end
data/lunchmoney.gemspec CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["documentation_uri"] = "https://halorrr.github.io/lunchmoney/"
19
20
  spec.metadata["changelog_uri"] = "#{spec.homepage}/releases"
20
21
 
21
22
  # Specify which files should be added to the gem when it is released.
@@ -10908,43 +10908,43 @@ class ActiveSupport::TestCase < ::Minitest::Test
10908
10908
  # source://activesupport//lib/active_support/callbacks.rb#963
10909
10909
  def _teardown_callbacks; end
10910
10910
 
10911
- # source://minitest/5.21.1/lib/minitest/assertions.rb#736
10911
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#736
10912
10912
  def assert_no_match(matcher, obj, msg = T.unsafe(nil)); end
10913
10913
 
10914
- # source://minitest/5.21.1/lib/minitest/assertions.rb#665
10914
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#665
10915
10915
  def assert_not_empty(obj, msg = T.unsafe(nil)); end
10916
10916
 
10917
- # source://minitest/5.21.1/lib/minitest/assertions.rb#676
10917
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#676
10918
10918
  def assert_not_equal(exp, act, msg = T.unsafe(nil)); end
10919
10919
 
10920
- # source://minitest/5.21.1/lib/minitest/assertions.rb#688
10920
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#688
10921
10921
  def assert_not_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
10922
10922
 
10923
- # source://minitest/5.21.1/lib/minitest/assertions.rb#700
10923
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#700
10924
10924
  def assert_not_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
10925
10925
 
10926
- # source://minitest/5.21.1/lib/minitest/assertions.rb#707
10926
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#707
10927
10927
  def assert_not_includes(collection, obj, msg = T.unsafe(nil)); end
10928
10928
 
10929
- # source://minitest/5.21.1/lib/minitest/assertions.rb#718
10929
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#718
10930
10930
  def assert_not_instance_of(cls, obj, msg = T.unsafe(nil)); end
10931
10931
 
10932
- # source://minitest/5.21.1/lib/minitest/assertions.rb#728
10932
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#728
10933
10933
  def assert_not_kind_of(cls, obj, msg = T.unsafe(nil)); end
10934
10934
 
10935
- # source://minitest/5.21.1/lib/minitest/assertions.rb#746
10935
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#746
10936
10936
  def assert_not_nil(obj, msg = T.unsafe(nil)); end
10937
10937
 
10938
- # source://minitest/5.21.1/lib/minitest/assertions.rb#781
10938
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#781
10939
10939
  def assert_not_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
10940
10940
 
10941
- # source://minitest/5.21.1/lib/minitest/assertions.rb#804
10941
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#804
10942
10942
  def assert_not_predicate(o1, op, msg = T.unsafe(nil)); end
10943
10943
 
10944
- # source://minitest/5.21.1/lib/minitest/assertions.rb#813
10944
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#813
10945
10945
  def assert_not_respond_to(obj, meth, msg = T.unsafe(nil), include_all: T.unsafe(nil)); end
10946
10946
 
10947
- # source://minitest/5.21.1/lib/minitest/assertions.rb#822
10947
+ # source://minitest/5.21.2/lib/minitest/assertions.rb#822
10948
10948
  def assert_not_same(exp, act, msg = T.unsafe(nil)); end
10949
10949
 
10950
10950
  # source://activesupport//lib/active_support/testing/file_fixtures.rb#20
@@ -10956,7 +10956,7 @@ class ActiveSupport::TestCase < ::Minitest::Test
10956
10956
  # source://activesupport//lib/active_support/test_case.rb#298
10957
10957
  def inspect; end
10958
10958
 
10959
- # source://minitest/5.21.1/lib/minitest.rb#311
10959
+ # source://minitest/5.21.2/lib/minitest.rb#311
10960
10960
  def method_name; end
10961
10961
 
10962
10962
  class << self
@@ -13364,7 +13364,7 @@ end
13364
13364
  # source://activesupport//lib/active_support/xml_mini/rexml.rb#11
13365
13365
  ActiveSupport::XmlMini_REXML::CONTENT_KEY = T.let(T.unsafe(nil), String)
13366
13366
 
13367
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#83
13367
+ # source://activesupport//lib/active_support/core_ext/object/to_query.rb#39
13368
13368
  class Array
13369
13369
  include ::Enumerable
13370
13370
 
@@ -13699,6 +13699,13 @@ class Date
13699
13699
  # source://activesupport//lib/active_support/core_ext/date/calculations.rb#152
13700
13700
  def <=>(other); end
13701
13701
 
13702
+ # Duck-types as a Date-like class. See Object#acts_like?.
13703
+ #
13704
+ # @return [Boolean]
13705
+ #
13706
+ # source://activesupport//lib/active_support/core_ext/date/acts_like.rb#7
13707
+ def acts_like_date?; end
13708
+
13702
13709
  # Provides precise Date calculations for years, months, and days. The +options+ parameter takes a hash with
13703
13710
  # any of these keys: <tt>:years</tt>, <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>.
13704
13711
  #
@@ -15253,7 +15260,7 @@ class Exception
15253
15260
  def as_json(options = T.unsafe(nil)); end
15254
15261
  end
15255
15262
 
15256
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#61
15263
+ # source://activesupport//lib/active_support/core_ext/object/to_query.rb#32
15257
15264
  class FalseClass
15258
15265
  # source://activesupport//lib/active_support/core_ext/object/json.rb#89
15259
15266
  def as_json(options = T.unsafe(nil)); end
@@ -16397,7 +16404,7 @@ class NameError < ::StandardError
16397
16404
  include ::DidYouMean::Correctable
16398
16405
  end
16399
16406
 
16400
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#50
16407
+ # source://activesupport//lib/active_support/core_ext/object/to_query.rb#18
16401
16408
  class NilClass
16402
16409
  # source://activesupport//lib/active_support/core_ext/object/json.rb#95
16403
16410
  def as_json(options = T.unsafe(nil)); end
@@ -16438,7 +16445,7 @@ class NilClass
16438
16445
  def try!(*_arg0); end
16439
16446
  end
16440
16447
 
16441
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#134
16448
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#9
16442
16449
  class Numeric
16443
16450
  include ::Comparable
16444
16451
 
@@ -16469,6 +16476,20 @@ class Numeric
16469
16476
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#15
16470
16477
  def bytes; end
16471
16478
 
16479
+ # Returns a Duration instance matching the number of days provided.
16480
+ #
16481
+ # 2.days # => 2 days
16482
+ #
16483
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#37
16484
+ def day; end
16485
+
16486
+ # Returns a Duration instance matching the number of days provided.
16487
+ #
16488
+ # 2.days # => 2 days
16489
+ #
16490
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#37
16491
+ def days; end
16492
+
16472
16493
  # Returns the number of bytes equivalent to the exabytes provided.
16473
16494
  #
16474
16495
  # 2.exabytes # => 2_305_843_009_213_693_952
@@ -16483,6 +16504,20 @@ class Numeric
16483
16504
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#63
16484
16505
  def exabytes; end
16485
16506
 
16507
+ # Returns a Duration instance matching the number of fortnights provided.
16508
+ #
16509
+ # 2.fortnights # => 4 weeks
16510
+ #
16511
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#53
16512
+ def fortnight; end
16513
+
16514
+ # Returns a Duration instance matching the number of fortnights provided.
16515
+ #
16516
+ # 2.fortnights # => 4 weeks
16517
+ #
16518
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#53
16519
+ def fortnights; end
16520
+
16486
16521
  # Returns the number of bytes equivalent to the gigabytes provided.
16487
16522
  #
16488
16523
  # 2.gigabytes # => 2_147_483_648
@@ -16497,11 +16532,34 @@ class Numeric
16497
16532
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#39
16498
16533
  def gigabytes; end
16499
16534
 
16535
+ # Returns a Duration instance matching the number of hours provided.
16536
+ #
16537
+ # 2.hours # => 2 hours
16538
+ #
16539
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#29
16540
+ def hour; end
16541
+
16542
+ # Returns a Duration instance matching the number of hours provided.
16543
+ #
16544
+ # 2.hours # => 2 hours
16545
+ #
16546
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#29
16547
+ def hours; end
16548
+
16500
16549
  # @return [Boolean]
16501
16550
  #
16502
16551
  # source://activesupport//lib/active_support/core_ext/string/output_safety.rb#13
16503
16552
  def html_safe?; end
16504
16553
 
16554
+ # Returns the number of milliseconds equivalent to the seconds provided.
16555
+ # Used with the standard time durations.
16556
+ #
16557
+ # 2.in_milliseconds # => 2000
16558
+ # 1.hour.in_milliseconds # => 3600000
16559
+ #
16560
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#63
16561
+ def in_milliseconds; end
16562
+
16505
16563
  # Returns the number of bytes equivalent to the kilobytes provided.
16506
16564
  #
16507
16565
  # 2.kilobytes # => 2048
@@ -16530,6 +16588,20 @@ class Numeric
16530
16588
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#31
16531
16589
  def megabytes; end
16532
16590
 
16591
+ # Returns a Duration instance matching the number of minutes provided.
16592
+ #
16593
+ # 2.minutes # => 2 minutes
16594
+ #
16595
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#21
16596
+ def minute; end
16597
+
16598
+ # Returns a Duration instance matching the number of minutes provided.
16599
+ #
16600
+ # 2.minutes # => 2 minutes
16601
+ #
16602
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#21
16603
+ def minutes; end
16604
+
16533
16605
  # Returns the number of bytes equivalent to the petabytes provided.
16534
16606
  #
16535
16607
  # 2.petabytes # => 2_251_799_813_685_248
@@ -16544,6 +16616,20 @@ class Numeric
16544
16616
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#55
16545
16617
  def petabytes; end
16546
16618
 
16619
+ # Returns a Duration instance matching the number of seconds provided.
16620
+ #
16621
+ # 2.seconds # => 2 seconds
16622
+ #
16623
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#13
16624
+ def second; end
16625
+
16626
+ # Returns a Duration instance matching the number of seconds provided.
16627
+ #
16628
+ # 2.seconds # => 2 seconds
16629
+ #
16630
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#13
16631
+ def seconds; end
16632
+
16547
16633
  # Returns the number of bytes equivalent to the terabytes provided.
16548
16634
  #
16549
16635
  # 2.terabytes # => 2_199_023_255_552
@@ -16558,6 +16644,20 @@ class Numeric
16558
16644
  # source://activesupport//lib/active_support/core_ext/numeric/bytes.rb#47
16559
16645
  def terabytes; end
16560
16646
 
16647
+ # Returns a Duration instance matching the number of weeks provided.
16648
+ #
16649
+ # 2.weeks # => 2 weeks
16650
+ #
16651
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#45
16652
+ def week; end
16653
+
16654
+ # Returns a Duration instance matching the number of weeks provided.
16655
+ #
16656
+ # 2.weeks # => 2 weeks
16657
+ #
16658
+ # source://activesupport//lib/active_support/core_ext/numeric/time.rb#45
16659
+ def weeks; end
16660
+
16561
16661
  # Returns the number of bytes equivalent to the zettabytes provided.
16562
16662
  #
16563
16663
  # 2.zettabytes # => 2_361_183_241_434_822_606_848
@@ -16613,7 +16713,7 @@ Numeric::ZETTABYTE = T.let(T.unsafe(nil), Integer)
16613
16713
  # using that rescue idiom.
16614
16714
  # ++
16615
16715
  #
16616
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#5
16716
+ # source://activesupport//lib/active_support/core_ext/object/to_query.rb#5
16617
16717
  class Object < ::BasicObject
16618
16718
  include ::ActiveSupport::ToJsonWithActiveSupportEncoder
16619
16719
  include ::ActiveSupport::Dependencies::RequireDependency
@@ -16820,7 +16920,7 @@ end
16820
16920
  #
16821
16921
  # 'ScaleScore'.tableize # => "scale_scores"
16822
16922
  #
16823
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#103
16923
+ # source://activesupport//lib/active_support/core_ext/string/multibyte.rb#5
16824
16924
  class String
16825
16925
  include ::Comparable
16826
16926
 
@@ -17477,7 +17577,7 @@ class Thread
17477
17577
  def active_support_execution_state=(_arg0); end
17478
17578
  end
17479
17579
 
17480
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#146
17580
+ # source://activesupport//lib/active_support/core_ext/time/conversions.rb#7
17481
17581
  class Time
17482
17582
  include ::Comparable
17483
17583
  include ::DateAndTime::Zones
@@ -17974,7 +18074,7 @@ Time::COMMON_YEAR_DAYS_IN_MONTH = T.let(T.unsafe(nil), Array)
17974
18074
  # source://activesupport//lib/active_support/core_ext/time/conversions.rb#8
17975
18075
  Time::DATE_FORMATS = T.let(T.unsafe(nil), Hash)
17976
18076
 
17977
- # source://activesupport//lib/active_support/core_ext/object/blank.rb#72
18077
+ # source://activesupport//lib/active_support/core_ext/object/to_query.rb#25
17978
18078
  class TrueClass
17979
18079
  # source://activesupport//lib/active_support/core_ext/object/json.rb#83
17980
18080
  def as_json(options = T.unsafe(nil)); end