data_model 0.0.1 → 0.2.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +6 -2
  3. data/.rubocop.yml +11 -2
  4. data/.ruby-version +2 -0
  5. data/Gemfile.lock +91 -54
  6. data/Guardfile +20 -0
  7. data/Rakefile +32 -0
  8. data/data_model.gemspec +52 -0
  9. data/lib/data_model/boolean.rb +7 -0
  10. data/lib/data_model/builtin/array.rb +73 -0
  11. data/lib/data_model/builtin/big_decimal.rb +64 -0
  12. data/lib/data_model/builtin/boolean.rb +37 -0
  13. data/lib/data_model/builtin/date.rb +60 -0
  14. data/lib/data_model/builtin/float.rb +64 -0
  15. data/lib/data_model/builtin/hash.rb +119 -0
  16. data/lib/data_model/builtin/integer.rb +64 -0
  17. data/lib/data_model/builtin/string.rb +88 -0
  18. data/lib/data_model/builtin/symbol.rb +64 -0
  19. data/lib/data_model/builtin/time.rb +60 -0
  20. data/lib/data_model/builtin.rb +23 -0
  21. data/lib/data_model/error.rb +107 -0
  22. data/lib/data_model/errors.rb +296 -0
  23. data/lib/data_model/fixtures/array.rb +61 -0
  24. data/lib/data_model/fixtures/big_decimal.rb +55 -0
  25. data/lib/data_model/fixtures/boolean.rb +35 -0
  26. data/lib/data_model/fixtures/date.rb +53 -0
  27. data/lib/data_model/fixtures/example.rb +29 -0
  28. data/lib/data_model/fixtures/float.rb +53 -0
  29. data/lib/data_model/fixtures/hash.rb +66 -0
  30. data/lib/data_model/fixtures/integer.rb +53 -0
  31. data/lib/data_model/fixtures/string.rb +110 -0
  32. data/lib/data_model/fixtures/symbol.rb +56 -0
  33. data/lib/data_model/fixtures/time.rb +53 -0
  34. data/lib/data_model/logging.rb +23 -0
  35. data/lib/data_model/model.rb +21 -44
  36. data/lib/data_model/scanner.rb +92 -56
  37. data/lib/data_model/testing/minitest.rb +79 -0
  38. data/lib/data_model/testing.rb +6 -0
  39. data/lib/data_model/type.rb +41 -39
  40. data/lib/data_model/type_registry.rb +68 -0
  41. data/lib/data_model/version.rb +3 -1
  42. data/lib/data_model.rb +32 -16
  43. data/sorbet/config +4 -0
  44. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  45. data/sorbet/rbi/gems/minitest@5.18.0.rbi +1491 -0
  46. data/sorbet/rbi/gems/zeitwerk.rbi +196 -0
  47. data/sorbet/rbi/gems/zeitwerk@2.6.7.rbi +966 -0
  48. data/sorbet/rbi/todo.rbi +5 -0
  49. data/sorbet/tapioca/config.yml +13 -0
  50. data/sorbet/tapioca/require.rb +4 -0
  51. metadata +139 -17
  52. data/config/sus.rb +0 -2
  53. data/fixtures/schema.rb +0 -14
  54. data/lib/data_model/registry.rb +0 -44
@@ -0,0 +1,196 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: false
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/zeitwerk/all/zeitwerk.rbi
9
+ #
10
+ # zeitwerk-2.6.7
11
+
12
+ module Zeitwerk::RealModName
13
+ def real_mod_name(mod); end
14
+ end
15
+ module Zeitwerk::Internal
16
+ def internal(method_name); end
17
+ end
18
+ module Zeitwerk::Loader::Helpers
19
+ def cdef?(parent, cname); end
20
+ def cget(parent, cname); end
21
+ def cpath(parent, cname); end
22
+ def crem(parent, cname); end
23
+ def dir?(path); end
24
+ def has_at_least_one_ruby_file?(dir); end
25
+ def hidden?(basename); end
26
+ def log(message); end
27
+ def ls(dir); end
28
+ def ruby?(path); end
29
+ def strict_autoload_path(parent, cname); end
30
+ def walk_up(abspath); end
31
+ end
32
+ module Zeitwerk::Loader::Callbacks
33
+ def on_dir_autoloaded(dir); end
34
+ def on_file_autoloaded(file); end
35
+ def on_namespace_loaded(namespace); end
36
+ def run_on_load_callbacks(cpath, value, abspath); end
37
+ include Zeitwerk::RealModName
38
+ end
39
+ module Zeitwerk::Loader::Config
40
+ def __ignores?(abspath); end
41
+ def __roots; end
42
+ def actual_roots; end
43
+ def collapse(*glob_patterns); end
44
+ def collapse?(dir); end
45
+ def collapse_dirs; end
46
+ def collapse_glob_patterns; end
47
+ def dirs(namespaces: nil, ignored: nil); end
48
+ def do_not_eager_load(*paths); end
49
+ def eager_load_exclusions; end
50
+ def enable_reloading; end
51
+ def excluded_from_eager_load?(abspath); end
52
+ def expand_glob_patterns(glob_patterns); end
53
+ def expand_paths(paths); end
54
+ def ignore(*glob_patterns); end
55
+ def ignored_glob_patterns; end
56
+ def ignored_path?(abspath); end
57
+ def ignored_paths; end
58
+ def ignores?(abspath); end
59
+ def inflector; end
60
+ def inflector=(arg0); end
61
+ def initialize; end
62
+ def log!; end
63
+ def logger; end
64
+ def logger=(arg0); end
65
+ def on_load(cpath = nil, &block); end
66
+ def on_load_callbacks; end
67
+ def on_setup(&block); end
68
+ def on_setup_callbacks; end
69
+ def on_unload(cpath = nil, &block); end
70
+ def on_unload_callbacks; end
71
+ def push_dir(path, namespace: nil); end
72
+ def recompute_collapse_dirs; end
73
+ def recompute_ignored_paths; end
74
+ def reloading_enabled?; end
75
+ def root_dir?(dir); end
76
+ def roots; end
77
+ def tag; end
78
+ def tag=(tag); end
79
+ extend Zeitwerk::Internal
80
+ include Zeitwerk::RealModName
81
+ end
82
+ module Zeitwerk::Loader::EagerLoad
83
+ def actual_eager_load_dir(dir, namespace, force: nil); end
84
+ def eager_load(force: nil); end
85
+ def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end
86
+ def eager_load_dir(path); end
87
+ def eager_load_namespace(mod); end
88
+ def load_file(path); end
89
+ end
90
+ module Zeitwerk
91
+ def self.with_loader; end
92
+ end
93
+ class Zeitwerk::Loader
94
+ def __autoloaded_dirs; end
95
+ def __autoloads; end
96
+ def __namespace_dirs; end
97
+ def __shadowed_file?(file); end
98
+ def __shadowed_files; end
99
+ def __to_unload; end
100
+ def autoload_file(parent, cname, file); end
101
+ def autoload_path_set_by_me_for?(parent, cname); end
102
+ def autoload_subdir(parent, cname, subdir); end
103
+ def autoloaded_dirs; end
104
+ def autoloads; end
105
+ def initialize; end
106
+ def mutex2; end
107
+ def mutex; end
108
+ def namespace_dirs; end
109
+ def promote_namespace_from_implicit_to_explicit(dir:, file:, parent:, cname:); end
110
+ def raise_if_conflicting_directory(dir); end
111
+ def register_explicit_namespace(cpath); end
112
+ def reload; end
113
+ def run_on_unload_callbacks(cpath, value, abspath); end
114
+ def self.all_dirs; end
115
+ def self.default_logger; end
116
+ def self.default_logger=(arg0); end
117
+ def self.eager_load_all; end
118
+ def self.eager_load_namespace(mod); end
119
+ def self.for_gem(warn_on_extra_files: nil); end
120
+ def set_autoload(parent, cname, abspath); end
121
+ def set_autoloads_in_dir(dir, parent); end
122
+ def setup; end
123
+ def shadowed_file?(file); end
124
+ def shadowed_files; end
125
+ def to_unload; end
126
+ def unload; end
127
+ def unload_autoload(parent, cname); end
128
+ def unload_cref(parent, cname); end
129
+ def unloadable_cpath?(cpath); end
130
+ def unloadable_cpaths; end
131
+ def unregister; end
132
+ extend Zeitwerk::Internal
133
+ include Zeitwerk::Loader::Callbacks
134
+ include Zeitwerk::Loader::Config
135
+ include Zeitwerk::Loader::EagerLoad
136
+ include Zeitwerk::Loader::Helpers
137
+ include Zeitwerk::RealModName
138
+ end
139
+ class Zeitwerk::GemLoader < Zeitwerk::Loader
140
+ def initialize(root_file, warn_on_extra_files:); end
141
+ def self._new(root_file, warn_on_extra_files:); end
142
+ def self.new(*, **); end
143
+ def setup; end
144
+ def warn_on_extra_files; end
145
+ end
146
+ module Zeitwerk::Registry
147
+ def self.autoloads; end
148
+ def self.gem_loaders_by_root_file; end
149
+ def self.inception?(cpath); end
150
+ def self.inceptions; end
151
+ def self.loader_for(path); end
152
+ def self.loader_for_gem(root_file, warn_on_extra_files:); end
153
+ def self.loaders; end
154
+ def self.on_unload(loader); end
155
+ def self.register_autoload(loader, abspath); end
156
+ def self.register_inception(cpath, abspath, loader); end
157
+ def self.register_loader(loader); end
158
+ def self.unregister_autoload(abspath); end
159
+ def self.unregister_loader(loader); end
160
+ end
161
+ module Zeitwerk::ExplicitNamespace
162
+ def self.__register(cpath, loader); end
163
+ def self.__registered?(cpath); end
164
+ def self.__unregister_loader(loader); end
165
+ def self.cpaths; end
166
+ def self.disable_tracer_if_unneeded; end
167
+ def self.mutex; end
168
+ def self.register(cpath, loader); end
169
+ def self.registered?(cpath); end
170
+ def self.tracepoint_class_callback(event); end
171
+ def self.tracer; end
172
+ def self.unregister_loader(loader); end
173
+ end
174
+ class Zeitwerk::Inflector
175
+ def camelize(basename, _abspath); end
176
+ def inflect(inflections); end
177
+ def overrides; end
178
+ end
179
+ class Zeitwerk::GemInflector < Zeitwerk::Inflector
180
+ def camelize(basename, abspath); end
181
+ def initialize(root_file); end
182
+ end
183
+ module Kernel
184
+ def self.zeitwerk_original_require(arg0); end
185
+ def zeitwerk_original_require(path); end
186
+ end
187
+ class Zeitwerk::Error < StandardError
188
+ end
189
+ class Zeitwerk::ReloadingDisabledError < Zeitwerk::Error
190
+ def initialize; end
191
+ end
192
+ class Zeitwerk::NameError < NameError
193
+ end
194
+ class Zeitwerk::SetupRequired < Zeitwerk::Error
195
+ def initialize; end
196
+ end