sorbet-schema 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -0
  3. data/.standard.yml +6 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +24 -0
  6. data/CODE_OF_CONDUCT.md +84 -0
  7. data/Gemfile +25 -0
  8. data/Gemfile.lock +147 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +43 -0
  11. data/Rakefile +22 -0
  12. data/lib/sorbet-schema/hash_transformer.rb +22 -0
  13. data/lib/sorbet-schema/struct_ext.rb +37 -0
  14. data/lib/sorbet-schema/version.rb +5 -0
  15. data/lib/sorbet-schema.rb +27 -0
  16. data/lib/typed/coercion/coercer.rb +18 -0
  17. data/lib/typed/coercion/coercion_error.rb +7 -0
  18. data/lib/typed/coercion/coercion_not_supported_error.rb +7 -0
  19. data/lib/typed/coercion/float_coercer.rb +21 -0
  20. data/lib/typed/coercion/integer_coercer.rb +21 -0
  21. data/lib/typed/coercion/string_coercer.rb +19 -0
  22. data/lib/typed/coercion/struct_coercer.rb +26 -0
  23. data/lib/typed/coercion.rb +26 -0
  24. data/lib/typed/deserialize_error.rb +6 -0
  25. data/lib/typed/field.rb +28 -0
  26. data/lib/typed/hash_serializer.rb +21 -0
  27. data/lib/typed/json_serializer.rb +28 -0
  28. data/lib/typed/parse_error.rb +12 -0
  29. data/lib/typed/schema.rb +10 -0
  30. data/lib/typed/serializer.rb +61 -0
  31. data/lib/typed/validations/field_type_validator.rb +24 -0
  32. data/lib/typed/validations/field_validator.rb +15 -0
  33. data/lib/typed/validations/multiple_validation_error.rb +16 -0
  34. data/lib/typed/validations/required_field_error.rb +14 -0
  35. data/lib/typed/validations/type_mismatch_error.rb +14 -0
  36. data/lib/typed/validations/validated_value.rb +12 -0
  37. data/lib/typed/validations/validation_error.rb +8 -0
  38. data/lib/typed/validations/validation_results.rb +29 -0
  39. data/lib/typed/validations.rb +8 -0
  40. data/sorbet/config +5 -0
  41. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  42. data/sorbet/rbi/gems/.gitattributes +1 -0
  43. data/sorbet/rbi/gems/ansi@1.5.0.rbi +687 -0
  44. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  45. data/sorbet/rbi/gems/builder@3.2.4.rbi +504 -0
  46. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  47. data/sorbet/rbi/gems/io-console@0.7.2.rbi +8 -0
  48. data/sorbet/rbi/gems/json@2.7.1.rbi +1553 -0
  49. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  50. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +239 -0
  51. data/sorbet/rbi/gems/minitest-focus@1.4.0.rbi +91 -0
  52. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +1010 -0
  53. data/sorbet/rbi/gems/minitest@5.22.2.rbi +2233 -0
  54. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  55. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  56. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  57. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  58. data/sorbet/rbi/gems/prism@0.24.0.rbi +31040 -0
  59. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  60. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  61. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  62. data/sorbet/rbi/gems/rake@13.1.0.rbi +3027 -0
  63. data/sorbet/rbi/gems/rbi@0.1.9.rbi +3006 -0
  64. data/sorbet/rbi/gems/regexp_parser@2.9.0.rbi +3771 -0
  65. data/sorbet/rbi/gems/reline@0.4.3.rbi +8 -0
  66. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  67. data/sorbet/rbi/gems/rubocop-ast@1.31.1.rbi +7014 -0
  68. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +8 -0
  69. data/sorbet/rbi/gems/rubocop-sorbet@0.7.7.rbi +8 -0
  70. data/sorbet/rbi/gems/rubocop@1.61.0.rbi +57499 -0
  71. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  72. data/sorbet/rbi/gems/sorbet-result@1.1.0.rbi +519 -0
  73. data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +34 -0
  74. data/sorbet/rbi/gems/spoom@1.2.4.rbi +3777 -0
  75. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +8 -0
  76. data/sorbet/rbi/gems/standard-performance@1.3.1.rbi +80 -0
  77. data/sorbet/rbi/gems/standard-sorbet@0.0.2.rbi +52 -0
  78. data/sorbet/rbi/gems/standard@1.34.0.rbi +850 -0
  79. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  80. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23133 -0
  81. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +3499 -0
  82. data/sorbet/rbi/gems/thor@1.3.1.rbi +4351 -0
  83. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +65 -0
  84. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  85. data/sorbet/rbi/gems/yard@0.9.36.rbi +18220 -0
  86. data/sorbet/rbi/gems/zeitwerk@2.6.13.rbi +1003 -0
  87. data/sorbet/tapioca/config.yml +4 -0
  88. data/sorbet/tapioca/require.rb +12 -0
  89. metadata +191 -0
@@ -0,0 +1,4 @@
1
+ gem:
2
+ exclude:
3
+ - rdoc
4
+ workers: 5
@@ -0,0 +1,12 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ require "debug"
5
+ require "json"
6
+ require "minitest/autorun"
7
+ require "minitest/reporters"
8
+ require "minitest/result_assertions"
9
+ require "sorbet-result"
10
+ require "sorbet-runtime"
11
+ require "sorbet-struct-comparable"
12
+ require "zeitwerk"
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sorbet-schema
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Max VelDink
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sorbet-result
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sorbet-runtime
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sorbet-struct-comparable
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: zeitwerk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.6'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.6'
69
+ description:
70
+ email:
71
+ - maxveldink@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".ruby-version"
77
+ - ".standard.yml"
78
+ - ".tool-versions"
79
+ - CHANGELOG.md
80
+ - CODE_OF_CONDUCT.md
81
+ - Gemfile
82
+ - Gemfile.lock
83
+ - LICENSE.txt
84
+ - README.md
85
+ - Rakefile
86
+ - lib/sorbet-schema.rb
87
+ - lib/sorbet-schema/hash_transformer.rb
88
+ - lib/sorbet-schema/struct_ext.rb
89
+ - lib/sorbet-schema/version.rb
90
+ - lib/typed/coercion.rb
91
+ - lib/typed/coercion/coercer.rb
92
+ - lib/typed/coercion/coercion_error.rb
93
+ - lib/typed/coercion/coercion_not_supported_error.rb
94
+ - lib/typed/coercion/float_coercer.rb
95
+ - lib/typed/coercion/integer_coercer.rb
96
+ - lib/typed/coercion/string_coercer.rb
97
+ - lib/typed/coercion/struct_coercer.rb
98
+ - lib/typed/deserialize_error.rb
99
+ - lib/typed/field.rb
100
+ - lib/typed/hash_serializer.rb
101
+ - lib/typed/json_serializer.rb
102
+ - lib/typed/parse_error.rb
103
+ - lib/typed/schema.rb
104
+ - lib/typed/serializer.rb
105
+ - lib/typed/validations.rb
106
+ - lib/typed/validations/field_type_validator.rb
107
+ - lib/typed/validations/field_validator.rb
108
+ - lib/typed/validations/multiple_validation_error.rb
109
+ - lib/typed/validations/required_field_error.rb
110
+ - lib/typed/validations/type_mismatch_error.rb
111
+ - lib/typed/validations/validated_value.rb
112
+ - lib/typed/validations/validation_error.rb
113
+ - lib/typed/validations/validation_results.rb
114
+ - sorbet/config
115
+ - sorbet/rbi/annotations/rainbow.rbi
116
+ - sorbet/rbi/gems/.gitattributes
117
+ - sorbet/rbi/gems/ansi@1.5.0.rbi
118
+ - sorbet/rbi/gems/ast@2.4.2.rbi
119
+ - sorbet/rbi/gems/builder@3.2.4.rbi
120
+ - sorbet/rbi/gems/erubi@1.12.0.rbi
121
+ - sorbet/rbi/gems/io-console@0.7.2.rbi
122
+ - sorbet/rbi/gems/json@2.7.1.rbi
123
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
124
+ - sorbet/rbi/gems/lint_roller@1.1.0.rbi
125
+ - sorbet/rbi/gems/minitest-focus@1.4.0.rbi
126
+ - sorbet/rbi/gems/minitest-reporters@1.6.1.rbi
127
+ - sorbet/rbi/gems/minitest@5.22.2.rbi
128
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
129
+ - sorbet/rbi/gems/parallel@1.24.0.rbi
130
+ - sorbet/rbi/gems/parser@3.3.0.5.rbi
131
+ - sorbet/rbi/gems/prettier_print@1.2.1.rbi
132
+ - sorbet/rbi/gems/prism@0.24.0.rbi
133
+ - sorbet/rbi/gems/psych@5.1.2.rbi
134
+ - sorbet/rbi/gems/racc@1.7.3.rbi
135
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
136
+ - sorbet/rbi/gems/rake@13.1.0.rbi
137
+ - sorbet/rbi/gems/rbi@0.1.9.rbi
138
+ - sorbet/rbi/gems/regexp_parser@2.9.0.rbi
139
+ - sorbet/rbi/gems/reline@0.4.3.rbi
140
+ - sorbet/rbi/gems/rexml@3.2.6.rbi
141
+ - sorbet/rbi/gems/rubocop-ast@1.31.1.rbi
142
+ - sorbet/rbi/gems/rubocop-performance@1.20.2.rbi
143
+ - sorbet/rbi/gems/rubocop-sorbet@0.7.7.rbi
144
+ - sorbet/rbi/gems/rubocop@1.61.0.rbi
145
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
146
+ - sorbet/rbi/gems/sorbet-result@1.1.0.rbi
147
+ - sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi
148
+ - sorbet/rbi/gems/spoom@1.2.4.rbi
149
+ - sorbet/rbi/gems/standard-custom@1.0.2.rbi
150
+ - sorbet/rbi/gems/standard-performance@1.3.1.rbi
151
+ - sorbet/rbi/gems/standard-sorbet@0.0.2.rbi
152
+ - sorbet/rbi/gems/standard@1.34.0.rbi
153
+ - sorbet/rbi/gems/stringio@3.1.0.rbi
154
+ - sorbet/rbi/gems/syntax_tree@6.2.0.rbi
155
+ - sorbet/rbi/gems/tapioca@0.12.0.rbi
156
+ - sorbet/rbi/gems/thor@1.3.1.rbi
157
+ - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
158
+ - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
159
+ - sorbet/rbi/gems/yard@0.9.36.rbi
160
+ - sorbet/rbi/gems/zeitwerk@2.6.13.rbi
161
+ - sorbet/tapioca/config.yml
162
+ - sorbet/tapioca/require.rb
163
+ homepage: https://github.com/maxveldink/sorbet-schema
164
+ licenses:
165
+ - MIT
166
+ metadata:
167
+ allowed_push_host: https://rubygems.org
168
+ rubygems_mfa_required: 'true'
169
+ homepage_uri: https://github.com/maxveldink/sorbet-schema
170
+ source_code_uri: https://github.com/maxveldink/sorbet-schema
171
+ changelog_uri: https://github.com/maxveldink/sorbet-schema/blob/main/CHANGELOG.md
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '3.0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubygems_version: 3.5.6
188
+ signing_key:
189
+ specification_version: 4
190
+ summary: Serialization and deserialization library into Sorbet structs.
191
+ test_files: []