konstruo 1.0.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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +21 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +35 -0
  8. data/Rakefile +10 -0
  9. data/lib/konstruo/mapper.rb +120 -0
  10. data/lib/konstruo/version.rb +6 -0
  11. data/lib/konstruo.rb +18 -0
  12. data/sorbet/config +4 -0
  13. data/sorbet/rbi/annotations/.gitattributes +1 -0
  14. data/sorbet/rbi/annotations/actionmailer.rbi +10 -0
  15. data/sorbet/rbi/annotations/actionpack.rbi +430 -0
  16. data/sorbet/rbi/annotations/actionview.rbi +75 -0
  17. data/sorbet/rbi/annotations/activejob.rbi +44 -0
  18. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  19. data/sorbet/rbi/annotations/activerecord.rbi +92 -0
  20. data/sorbet/rbi/annotations/activesupport.rbi +454 -0
  21. data/sorbet/rbi/annotations/globalid.rbi +30 -0
  22. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  23. data/sorbet/rbi/annotations/railties.rbi +61 -0
  24. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  25. data/sorbet/rbi/dsl/.gitattributes +1 -0
  26. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  27. data/sorbet/rbi/gems/.gitattributes +1 -0
  28. data/sorbet/rbi/gems/actioncable@7.2.1.rbi +3096 -0
  29. data/sorbet/rbi/gems/actionmailbox@7.2.1.rbi +1832 -0
  30. data/sorbet/rbi/gems/actionmailer@7.2.1.rbi +2664 -0
  31. data/sorbet/rbi/gems/actionpack@7.2.1.rbi +20536 -0
  32. data/sorbet/rbi/gems/actiontext@7.2.1.rbi +1697 -0
  33. data/sorbet/rbi/gems/actionview@7.2.1.rbi +15752 -0
  34. data/sorbet/rbi/gems/activejob@7.2.1.rbi +2828 -0
  35. data/sorbet/rbi/gems/activemodel@7.2.1.rbi +6762 -0
  36. data/sorbet/rbi/gems/activerecord@7.2.1.rbi +41433 -0
  37. data/sorbet/rbi/gems/activestorage@7.2.1.rbi +3247 -0
  38. data/sorbet/rbi/gems/activesupport@7.2.1.rbi +21142 -0
  39. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  40. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  41. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +78 -0
  42. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  43. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
  44. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  45. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  46. data/sorbet/rbi/gems/dashbrains-rubocop-config@1.0.4.rbi +9 -0
  47. data/sorbet/rbi/gems/date@3.3.4.rbi +75 -0
  48. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  49. data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
  50. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  51. data/sorbet/rbi/gems/globalid@1.2.1.rbi +749 -0
  52. data/sorbet/rbi/gems/i18n@1.14.5.rbi +2359 -0
  53. data/sorbet/rbi/gems/io-console@0.7.2.rbi +9 -0
  54. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  55. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  56. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  57. data/sorbet/rbi/gems/loofah@2.22.0.rbi +1081 -0
  58. data/sorbet/rbi/gems/mail@2.8.1.rbi +8658 -0
  59. data/sorbet/rbi/gems/marcel@1.0.4.rbi +239 -0
  60. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +173 -0
  61. data/sorbet/rbi/gems/minitest@5.25.1.rbi +1546 -0
  62. data/sorbet/rbi/gems/net-imap@0.4.16.rbi +10845 -0
  63. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +927 -0
  64. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  65. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +1228 -0
  66. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  67. data/sorbet/rbi/gems/nio4r@2.7.3.rbi +293 -0
  68. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  69. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  70. data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
  71. data/sorbet/rbi/gems/prism@1.0.0.rbi +35493 -0
  72. data/sorbet/rbi/gems/psych@5.1.2.rbi +1769 -0
  73. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  74. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +727 -0
  75. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +747 -0
  76. data/sorbet/rbi/gems/rack@3.1.7.rbi +4902 -0
  77. data/sorbet/rbi/gems/rackup@2.1.0.rbi +390 -0
  78. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +758 -0
  79. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +785 -0
  80. data/sorbet/rbi/gems/rails@7.2.1.rbi +9 -0
  81. data/sorbet/rbi/gems/railties@7.2.1.rbi +3824 -0
  82. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  83. data/sorbet/rbi/gems/rake@13.2.1.rbi +3046 -0
  84. data/sorbet/rbi/gems/rbi@0.2.0.rbi +4105 -0
  85. data/sorbet/rbi/gems/rdoc@6.7.0.rbi +12721 -0
  86. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  87. data/sorbet/rbi/gems/reline@0.5.10.rbi +9 -0
  88. data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11012 -0
  89. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  90. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  91. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  92. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  93. data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7446 -0
  94. data/sorbet/rbi/gems/rubocop-capybara@2.21.0.rbi +9 -0
  95. data/sorbet/rbi/gems/rubocop-factory_bot@2.26.1.rbi +9 -0
  96. data/sorbet/rbi/gems/rubocop-graphql@1.5.4.rbi +9 -0
  97. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +9 -0
  98. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  99. data/sorbet/rbi/gems/rubocop-rails@2.26.1.rbi +9 -0
  100. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  101. data/sorbet/rbi/gems/rubocop-rspec@3.0.5.rbi +9 -0
  102. data/sorbet/rbi/gems/rubocop-rspec_rails@2.30.0.rbi +9 -0
  103. data/sorbet/rbi/gems/rubocop-sorbet@0.8.5.rbi +9 -0
  104. data/sorbet/rbi/gems/rubocop@1.66.1.rbi +58268 -0
  105. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  106. data/sorbet/rbi/gems/securerandom@0.3.1.rbi +396 -0
  107. data/sorbet/rbi/gems/spoom@1.4.2.rbi +4932 -0
  108. data/sorbet/rbi/gems/stringio@3.1.1.rbi +9 -0
  109. data/sorbet/rbi/gems/tapioca@0.16.2.rbi +3581 -0
  110. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  111. data/sorbet/rbi/gems/timeout@0.4.1.rbi +149 -0
  112. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  113. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  114. data/sorbet/rbi/gems/useragent@0.16.10.rbi +9 -0
  115. data/sorbet/rbi/gems/webrick@1.8.1.rbi +2607 -0
  116. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +993 -0
  117. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +121 -0
  118. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  119. data/sorbet/rbi/gems/yard@0.9.37.rbi +18570 -0
  120. data/sorbet/rbi/gems/zeitwerk@2.6.18.rbi +1051 -0
  121. data/sorbet/rbi/todo.rbi +6 -0
  122. data/sorbet/tapioca/config.yml +13 -0
  123. data/sorbet/tapioca/require.rb +9 -0
  124. data/tasks/bundle_update.rake +14 -0
  125. data/tasks/sorbet.rake +26 -0
  126. metadata +216 -0
@@ -0,0 +1,6 @@
1
+ # typed: false
2
+ # DO NOT EDIT MANUALLY
3
+ # This is an autogenerated file for unresolved constants.
4
+ # Please instead update this file by running `bin/tapioca todo`.
5
+ # frozen_string_literal: true
6
+
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,9 @@
1
+ # typed: strong
2
+ # frozen_string_literal: true
3
+
4
+ require 'action_controller'
5
+ require 'action_controller/metal/strong_parameters'
6
+ require 'active_support/all'
7
+ require 'konstruo/mapper'
8
+ require 'rails/all'
9
+ require 'sorbet-runtime'
@@ -0,0 +1,14 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ namespace :bundle do
5
+ desc 'Update all gems'
6
+ task :update do
7
+ Bundler.with_unbundled_env do
8
+ # Update bundler version
9
+ system('bundle update --bundler')
10
+ # Update bundle gems
11
+ system('bundle update')
12
+ end
13
+ end
14
+ end
data/tasks/sorbet.rake ADDED
@@ -0,0 +1,26 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ namespace :sorbet do
5
+ namespace :update do
6
+ desc 'Update Sorbet and RBIs.'
7
+ task :all do
8
+ Bundler.with_unbundled_env do
9
+ # Generate requires
10
+ system('bundle exec tapioca require')
11
+ # Fetch remotes sources
12
+ system('bundle exec tapioca annotations')
13
+ # Generate gems' RBIs
14
+ system('bundle exec tapioca gems')
15
+ # Generate DSL' RBIs
16
+ system('bundle exec tapioca dsl')
17
+ # Bump typed: false to true
18
+ system('bundle exec spoom srb bump')
19
+ # Bump typed: true to strict
20
+ system('bundle exec spoom srb bump --from true --to strict')
21
+ # Bump typed: strict to strong
22
+ system('bundle exec spoom srb bump --from strict --to strong')
23
+ end
24
+ end
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: konstruo
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - DashBrains
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-09-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actionpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sorbet-static-and-runtime
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.5.11087
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.11087
55
+ description: A gem that seamlessly converts JSON or hashes into Ruby objects with
56
+ customizable field validation, type safety, and nested object support.
57
+ email:
58
+ - contact@dashbrains.dev
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".rspec"
64
+ - ".rubocop.yml"
65
+ - ".tool-versions"
66
+ - CHANGELOG.md
67
+ - LICENSE.txt
68
+ - README.md
69
+ - Rakefile
70
+ - lib/konstruo.rb
71
+ - lib/konstruo/mapper.rb
72
+ - lib/konstruo/version.rb
73
+ - sorbet/config
74
+ - sorbet/rbi/annotations/.gitattributes
75
+ - sorbet/rbi/annotations/actionmailer.rbi
76
+ - sorbet/rbi/annotations/actionpack.rbi
77
+ - sorbet/rbi/annotations/actionview.rbi
78
+ - sorbet/rbi/annotations/activejob.rbi
79
+ - sorbet/rbi/annotations/activemodel.rbi
80
+ - sorbet/rbi/annotations/activerecord.rbi
81
+ - sorbet/rbi/annotations/activesupport.rbi
82
+ - sorbet/rbi/annotations/globalid.rbi
83
+ - sorbet/rbi/annotations/minitest.rbi
84
+ - sorbet/rbi/annotations/railties.rbi
85
+ - sorbet/rbi/annotations/rainbow.rbi
86
+ - sorbet/rbi/dsl/.gitattributes
87
+ - sorbet/rbi/dsl/active_support/callbacks.rbi
88
+ - sorbet/rbi/gems/.gitattributes
89
+ - sorbet/rbi/gems/actioncable@7.2.1.rbi
90
+ - sorbet/rbi/gems/actionmailbox@7.2.1.rbi
91
+ - sorbet/rbi/gems/actionmailer@7.2.1.rbi
92
+ - sorbet/rbi/gems/actionpack@7.2.1.rbi
93
+ - sorbet/rbi/gems/actiontext@7.2.1.rbi
94
+ - sorbet/rbi/gems/actionview@7.2.1.rbi
95
+ - sorbet/rbi/gems/activejob@7.2.1.rbi
96
+ - sorbet/rbi/gems/activemodel@7.2.1.rbi
97
+ - sorbet/rbi/gems/activerecord@7.2.1.rbi
98
+ - sorbet/rbi/gems/activestorage@7.2.1.rbi
99
+ - sorbet/rbi/gems/activesupport@7.2.1.rbi
100
+ - sorbet/rbi/gems/ast@2.4.2.rbi
101
+ - sorbet/rbi/gems/base64@0.2.0.rbi
102
+ - sorbet/rbi/gems/bigdecimal@3.1.8.rbi
103
+ - sorbet/rbi/gems/builder@3.3.0.rbi
104
+ - sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi
105
+ - sorbet/rbi/gems/connection_pool@2.4.1.rbi
106
+ - sorbet/rbi/gems/crass@1.0.6.rbi
107
+ - sorbet/rbi/gems/dashbrains-rubocop-config@1.0.4.rbi
108
+ - sorbet/rbi/gems/date@3.3.4.rbi
109
+ - sorbet/rbi/gems/diff-lcs@1.5.1.rbi
110
+ - sorbet/rbi/gems/drb@2.2.1.rbi
111
+ - sorbet/rbi/gems/erubi@1.13.0.rbi
112
+ - sorbet/rbi/gems/globalid@1.2.1.rbi
113
+ - sorbet/rbi/gems/i18n@1.14.5.rbi
114
+ - sorbet/rbi/gems/io-console@0.7.2.rbi
115
+ - sorbet/rbi/gems/json@2.7.2.rbi
116
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
117
+ - sorbet/rbi/gems/logger@1.6.1.rbi
118
+ - sorbet/rbi/gems/loofah@2.22.0.rbi
119
+ - sorbet/rbi/gems/mail@2.8.1.rbi
120
+ - sorbet/rbi/gems/marcel@1.0.4.rbi
121
+ - sorbet/rbi/gems/mini_mime@1.1.5.rbi
122
+ - sorbet/rbi/gems/minitest@5.25.1.rbi
123
+ - sorbet/rbi/gems/net-imap@0.4.16.rbi
124
+ - sorbet/rbi/gems/net-pop@0.1.2.rbi
125
+ - sorbet/rbi/gems/net-protocol@0.2.2.rbi
126
+ - sorbet/rbi/gems/net-smtp@0.5.0.rbi
127
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
128
+ - sorbet/rbi/gems/nio4r@2.7.3.rbi
129
+ - sorbet/rbi/gems/nokogiri@1.16.7.rbi
130
+ - sorbet/rbi/gems/parallel@1.26.3.rbi
131
+ - sorbet/rbi/gems/parser@3.3.5.0.rbi
132
+ - sorbet/rbi/gems/prism@1.0.0.rbi
133
+ - sorbet/rbi/gems/psych@5.1.2.rbi
134
+ - sorbet/rbi/gems/racc@1.8.1.rbi
135
+ - sorbet/rbi/gems/rack-session@2.0.0.rbi
136
+ - sorbet/rbi/gems/rack-test@2.1.0.rbi
137
+ - sorbet/rbi/gems/rack@3.1.7.rbi
138
+ - sorbet/rbi/gems/rackup@2.1.0.rbi
139
+ - sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi
140
+ - sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi
141
+ - sorbet/rbi/gems/rails@7.2.1.rbi
142
+ - sorbet/rbi/gems/railties@7.2.1.rbi
143
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
144
+ - sorbet/rbi/gems/rake@13.2.1.rbi
145
+ - sorbet/rbi/gems/rbi@0.2.0.rbi
146
+ - sorbet/rbi/gems/rdoc@6.7.0.rbi
147
+ - sorbet/rbi/gems/regexp_parser@2.9.2.rbi
148
+ - sorbet/rbi/gems/reline@0.5.10.rbi
149
+ - sorbet/rbi/gems/rspec-core@3.13.1.rbi
150
+ - sorbet/rbi/gems/rspec-expectations@3.13.3.rbi
151
+ - sorbet/rbi/gems/rspec-mocks@3.13.1.rbi
152
+ - sorbet/rbi/gems/rspec-support@3.13.1.rbi
153
+ - sorbet/rbi/gems/rspec@3.13.0.rbi
154
+ - sorbet/rbi/gems/rubocop-ast@1.32.3.rbi
155
+ - sorbet/rbi/gems/rubocop-capybara@2.21.0.rbi
156
+ - sorbet/rbi/gems/rubocop-factory_bot@2.26.1.rbi
157
+ - sorbet/rbi/gems/rubocop-graphql@1.5.4.rbi
158
+ - sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi
159
+ - sorbet/rbi/gems/rubocop-performance@1.21.1.rbi
160
+ - sorbet/rbi/gems/rubocop-rails@2.26.1.rbi
161
+ - sorbet/rbi/gems/rubocop-rake@0.6.0.rbi
162
+ - sorbet/rbi/gems/rubocop-rspec@3.0.5.rbi
163
+ - sorbet/rbi/gems/rubocop-rspec_rails@2.30.0.rbi
164
+ - sorbet/rbi/gems/rubocop-sorbet@0.8.5.rbi
165
+ - sorbet/rbi/gems/rubocop@1.66.1.rbi
166
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
167
+ - sorbet/rbi/gems/securerandom@0.3.1.rbi
168
+ - sorbet/rbi/gems/spoom@1.4.2.rbi
169
+ - sorbet/rbi/gems/stringio@3.1.1.rbi
170
+ - sorbet/rbi/gems/tapioca@0.16.2.rbi
171
+ - sorbet/rbi/gems/thor@1.3.2.rbi
172
+ - sorbet/rbi/gems/timeout@0.4.1.rbi
173
+ - sorbet/rbi/gems/tzinfo@2.0.6.rbi
174
+ - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
175
+ - sorbet/rbi/gems/useragent@0.16.10.rbi
176
+ - sorbet/rbi/gems/webrick@1.8.1.rbi
177
+ - sorbet/rbi/gems/websocket-driver@0.7.6.rbi
178
+ - sorbet/rbi/gems/websocket-extensions@0.1.5.rbi
179
+ - sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
180
+ - sorbet/rbi/gems/yard@0.9.37.rbi
181
+ - sorbet/rbi/gems/zeitwerk@2.6.18.rbi
182
+ - sorbet/rbi/todo.rbi
183
+ - sorbet/tapioca/config.yml
184
+ - sorbet/tapioca/require.rb
185
+ - tasks/bundle_update.rake
186
+ - tasks/sorbet.rake
187
+ homepage: https://github.com/DashBrains/konstruo
188
+ licenses:
189
+ - MIT
190
+ metadata:
191
+ allowed_push_host: https://rubygems.org
192
+ homepage_uri: https://github.com/DashBrains/konstruo
193
+ source_code_uri: https://github.com/DashBrains/konstruo
194
+ changelog_uri: https://github.com/DashBrains/konstruo/blob/main/CHANGELOG.md
195
+ rubygems_mfa_required: 'true'
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 3.1.0
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubygems_version: 3.5.16
212
+ signing_key:
213
+ specification_version: 4
214
+ summary: A gem that seamlessly converts JSON or hashes into Ruby objects with customizable
215
+ field validation, type safety, and nested object support.
216
+ test_files: []